Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 15.01.2009 Skąd: Łódź Ostrzeżenie: (0%)
|
Cześć,
Pytanie od nowicjusza w Cake... Aby użytkownik mógł edytować rekord musi się zalogować. Wykorzystuję Auth i standardową funkcję login (w kontrolerze UsersController).
Po wpisaniu loginu i hasła aplikacja zachowuje się tak jakby udało się zalogować. Przechodzi do strony głównej, ale... Mam też zrobiony app_controller w folderze głównym i tam sprawdzam funkcją czy użytkownik jest zalogowany (uprawnienia nie mają znaczenia, chodzi o to by o ogóle był zalogowany).
I wrzucam wynik funkcji do zmiennej $logged_in:
Oczywiście we wszystkich kontrolerach mam funkcję beforeFiler() o treści parent::beforeFilter(). Na stronie głównej index.ctp sprawdzam status zmiennej $logged_in i wyświetlam lub nie link do edycji rekordu.
Rzecz w tym, że zmienne sesyjne są puste i żadne "Edytuj" nie chce się wyświetlić. Co ciekawe, gdy pisałem aplikację to działała - ale tylko na moim kompie (sprawdzałem na IE i Firefox). Od wczoraj przestała działać i u mnie. CakePHP 1.3.7, serwer IIS bez mod-rewrite, CGI/FastCGI. Dodatkowo musiałem odkomentować i dopisać do jednej linijki kodu w pliku config/core.php
Bez tego "url" w ogóle linki nie działały. Ale teraz mam mało przyjazne dla oka linki np. .../app/index.php?url=/rounds Ale to zupełnie inna historia ;-) Sprawdziłem czy aplikacja działa na innym serwerze (Apache) i jest ok. Co zatem jest nie tak w tym wypadku? |
|
|
|
![]() |
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 77 Pomógł: 10 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
"Zmienne sesyjne są puste"? Czyli aplikacja zachowuje się tak, jakby użytkownik był zalogowany (jest dostęp do akcji chronionych z poziomu Auth), ale nie zapisuje zmiennej logged_in, czy w ogóle traci wszystkie informacje sesyjne?
Jeśli to ten drugi przypadek, sprawdź czy nie masz w swoich kontrolerach i modelach jakichkolwiek znaków po ?> https://trac.cakephp.org/ticket/5031 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 15.01.2009 Skąd: Łódź Ostrzeżenie: (0%)
|
Po licznych testach wygląda na to, że nie załącza się Auth. U mnie znowu zaczęło działać, gdy skopiowałem aplikację do innego katalogu, ale nie działa u nikogo innego.
print_r($_SESSION) w moim przypadku wygląda tak (bez zalogowania): U innych wygląda to tak: ===========Epilog======================== Gdy już straciłem nadzieję, gdy już dałem za wygraną, w trakcie prac nad innym projektem ... Rozwiązanie przyszło niespodziewanie. Wystarczyło pogrzebać w pliku app/config/core.php. Domyślną konfigurację:
Należało zmienić na
I po kłopocie... Ten post edytował Neverhunted 25.02.2011, 16:33:57 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 01:37 |