konto usunięte

Temat: '1' nie wiadomo skąd

mam w UsersController rozbudowaną trochę funkcję login, żeby nie dało się logować będąc zalogowanym:

function login() {
if ($this->Session->read('Auth.User')) {
$this->Session->setFlash('Jesteś zalogowany!');
$this->redirect('/', null, false);
}


ot taka piedółka.
tylko po przekierowaniu(także po przekierowaniu przy wylogowaniu wyświetla mi:

Jesteś zalogowany!
1


albo po wylogowaniu:
wyświetla mi:

Zostałeś poprawnie wylogowany!
1


Widok:

<?=$session->flash();?>
<?=$session->flash('auth');?>
<?=$html->div(null,$html->div(null,$content_for_layout,array('id'=>'content')),array('id'=>'containter'));?>


skąd się bierze ta denerwująca jedynka i jak się jej pozbyć?
Tobiasz Glazar

Tobiasz Glazar Front-End Developer

Temat: '1' nie wiadomo skąd

Gdzie ustawiasz wiadomość flash z kluczem 'auth'?

konto usunięte

Temat: '1' nie wiadomo skąd

nie ustawiam. ona jest dodana bo jak komponent Auth ma coś do powiedzenia to wyświetla.
nie session->flash('auth') jest przyczyną bo nawet po usunięciu go jest ta jedynka przy komunikacie.

konto usunięte

Temat: '1' nie wiadomo skąd

Może ktoś pomóc? męczę się z tym i męczę i pozbyć się nie mogę
Tobiasz Glazar

Tobiasz Glazar Front-End Developer

Temat: '1' nie wiadomo skąd

Trochę za mało danych. Próbowałeś wykomentować każdą linijkę w widoku po kolei?

konto usunięte

Temat: '1' nie wiadomo skąd

próbowałem.
w końcu znalazłem rozwiązanie :)

na internecie ktoś miał podobny problem i gość po prostu usunął
return true;

z views/session helper
nie wiedzieć czemu cake to renderuje i stąd ta jedynka..

Temat: '1' nie wiadomo skąd

Widok:

<?=$session->flash();?>
<?=$session->flash('auth');?>
<?=$html->div(null,$html->div(null,$content_for_layout,array('id'=>'content')),array('id'=>'containter'));?>


skąd się bierze ta denerwująca jedynka i jak się jej pozbyć?

Grzebanie w CakePHP nie jest zbyt dobrym pomysłem. Metoda session::flash wysyła tekst bezpośrednio na ekran nie ma potrzeby wyświetlania tego co zwróci.

powinieneś mieć:

<?php $session->flash(); ?>

dodatkowo nie jestem fanem krótkich znaczników PHP bo na bardziej "wymyślnych" serwerach generują one problemy.Krzysztof Chudzik edytował(a) ten post dnia 30.11.09 o godzinie 09:16
Marcin B.

Marcin B. Webdirector,
Wspólwłasciciel
Contip.net

Temat: '1' nie wiadomo skąd

Uzupełnię wypowiedź Krzysztofa - jeśli ktoś pisze w rozwojowej wersji 1.3 to metoda SessionComponent ::setFlash() została zmieniona i nie używa już layoutów, a zwykłe elementy.

Natomiast metoda flash() z SessionHelper nie robi już "auto-echo".

Czyli podsumowując w 1.2 robimy:
<?php $session->flash(); ?>


W 1.3 robimy:
<?php echo $session->flash(); ?>

lub:
<?php echo $this->Session->flash(); ?>
Marcin Busza edytował(a) ten post dnia 30.11.09 o godzinie 10:20



Wyślij zaproszenie do