2014-05-18 7 views
7

Pracuję z Laravel przez dłuższy czas i napotkałem problem z MAMP dzisiaj. Nie mogę wyśledzić jego korzeni, ponieważ nie zrobiłem aktualizacji dla kompozytora ani żadnej innej zmiany oprogramowania, która mogłaby spowodować to. W każdym razie problem zepsuł formularz logowania na mojej stronie na localhost (nie ma problemu z produkcją lub w tym samym projekcie na WAMP, który używa mój przyjaciel). Problem jest widoczny po wydrukowaniu komunikatów "przekierowanie do ..." na ekranie, gdy przekierowanie dzieje się w aplikacji. po przesłaniu mojego formularza logowania otrzymuję tę wiadomość i przekierowuję z powrotem na stronę logowania. Z tego, co znalazłem w Internecie, może wynikać, że wykonywanie przekierowań w jakiś sposób zabija moje dane postów, które powinny zostać sprawdzone za pomocą akcji logowania, w związku z czym próba uwierzytelnienia nie powiedzie się i nastąpi przekierowanie z powrotem do formularza logowania. Najwyraźniej komunikat o błędzie z auth :: attempt jest również zagubiony na drodze przekierowań. Spotkałem się z someone z tym samym problemem i naprawieniem go z nginx, ale ponieważ używam mampa z apache2, nie mogłem znaleźć sposobu na wykonanie tej samej sztuczki. W tym wydaniu nie są rejestrowane żadne błędy. Jakieś pomysły na to, jak można to naprawić?Przekierowanie laravel z białym ekranem i komunikat "przekierowanie do ..." łamie posty

+0

Witam! Mam ten sam problem i nigdzie nie mogę znaleźć odpowiedniego rozwiązania. Czy możesz to naprawić? – ecairol

Odpowiedz

4

miałem dokładnie ten sam błąd, a ja próbowałem wszystkie rodzaje rozwiązań: nginx, filtrowanie, przestrzenie pod koniec plików.

Po kilku godzinach postanowiłem ponownie wyszukać spacje na końcu plików, i to było to: Zaraz po próbie Auth :: ustawiłem zmienną Sesji, używając Modelu, który miał przerwę w linii po ?>

to było przyczyną laravel aby pokazać komunikat „Przekierowanie do ...”, a ponieważ wykazano, sesja została utracona, tak aby użytkownik nie był zalogowany.

to był błąd serwera tylko, na moim Localhostu zawsze działało dobrze ze spacjami.

Nadzieja pomaga

+0

Dzięki za wgląd, starannie się przyjrzałem, ale żaden z moich modeli nie ma na końcu znaku zamykającego php (?>). Mój kod jest taki: '$ remember = (Input :: has ('remember'))? prawda fałsz; if (Input :: has ('from')) $ from = Input :: get ('from'); else $ from = ''; if (Auth :: attempt (array ('email' => Input :: get ('email'), 'password' => Input :: get ('password'), 'confirmed' => true), $ remember)) {if ($ from == 'start') {Redirect :: action ("HomeController @ getStart"); } return Redirect :: action ('HomeController @ getIndex'); } else {return Redirect :: action ('UsersController @ getLogin') -> withInput(); } ' – InGWeT

0

można przekierować bez utraty wejście z withInput():

Redirect::to('form')->withInput(Input::except('password')); 
+0

to właśnie robiłem - i działa dobrze wszędzie, z wyjątkiem mojego mac. Działało tu już dziś. Wygląda na to, że robi podwójne przekierowanie i traci dane na drugim – InGWeT

0

miałem dokładnie ten sam błąd i próbował wszystkich rozwiązań podanych w innych odpowiedzi, ale bez rezultatu. Po pewnym czasie dokonałem odkrycia, że ​​problem wystąpił, ponieważ musiałem dużo logiki w moim filtrze App::before.

Próbowałem przenieść logikę, ale to też nie działało dobrze, więc jedynymi opcjami, jakie mi pozostały, było wykonanie logiki po wczytaniu strony lub po prostu jej usunięcie i próba znalezienia innej metody.