Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje nie zachowują danych
Forum PHP.pl > Forum > PHP
jedrzejewski
Witam,
mam problem z użyciem sesji. Ten sam kod działa na localhoście a na serwerze nie daje rady. Po każdym przeładowaniu zawartość sesji jest pusta, chociaż phpsessid to samo. Zrobiłem nawet prosty test:

  1. <?php
  2.  
  3.  
  4. echo 'sessid: '.session_id().'<br />';
  5.  
  6. if(!isset($_SESSION['test'])) $_SESSION['test']=1;
  7. else $_SESSION['test']++;
  8.  
  9. echo 'test='.$_SESSION['test'];
  10.  
  11.  
  12. ?>


Na localhoście zmienna test rośnie, na serwerze stale =1.
Wywołana po session_start() funkcja session_status() zwraca PHP_SESSION_ACTIVE.
Skończyły mi się pomysły, co może być nie tak, bo konfiguracja wydaje się być ok.
Załączam konfig z phpinfo():

  1. session
  2.  
  3. Session Support enabled
  4. Registered save handlers files user
  5. Registered serializer handlers php php_binary wddx
  6.  
  7. Directive Local Value Master Value
  8. session.auto_start Off Off
  9. session.cache_expire 180 180
  10. session.cache_limiter nocache nocache
  11. session.cookie_domain no value no value
  12. session.cookie_httponly Off Off
  13. session.cookie_lifetime 0 0
  14. session.cookie_path / /
  15. session.cookie_secure Off Off
  16. session.entropy_file /dev/urandom /dev/urandom
  17. session.entropy_length 32 32
  18. session.gc_divisor 1000 1000
  19. session.gc_maxlifetime 1440 1440
  20. session.gc_probability 1 1
  21. session.hash_bits_per_character 5 5
  22. session.hash_function 0 0
  23. session.name PHPSESSID PHPSESSID
  24. session.referer_check no value no value
  25. session.save_handler files files
  26. session.save_path /var/lib/php/session /var/lib/php/session
  27. session.serialize_handler php php
  28. session.upload_progress.cleanup On On
  29. session.upload_progress.enabled On On
  30. session.upload_progress.freq 1% 1%
  31. session.upload_progress.min_freq 1 1
  32. session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
  33. session.upload_progress.prefix upload_progress_ upload_progress_
  34. session.use_cookies On On
  35. session.use_only_cookies On On
  36. session.use_trans_sid 0 0
  37.  
  38. wddx
  39.  
  40. WDDX Support enabled
  41. WDDX Session Serializer enabled


Co jeszcze powinienem sprawdzić?
Wazniak96
session_start() powinno być na początku skryptu, zanim użyjesz jakiejkolwiek sesji.
jedrzejewski
Tak też było, nic to nie daje.

EDIT:
Może to są istotne informacje?
Uprawnienia /var/lib/php/session: 0770
uid=0
gid=48

getmyuid()=48
getmygid()=48

EDIT 2:

Nawet taki kod:
  1.  
  2. if(!isset($_SESSION['test'])) $_SESSION['test']=1;
  3. else $_SESSION['test']++;
  4. echo 'test='.$_SESSION['test'].'<br />';
  5.  
  6.  
  7. if(!isset($_SESSION['test'])) $_SESSION['test']=1;
  8. else $_SESSION['test']++;
  9. echo 'test='.$_SESSION['test'].'<br />';


Zwraca dwa razy test=1 (na localhoscie test=1, test=2; dalej test=3, test=4; itd.)
Czy is_writable(session_save_path()) powinien zwracać TRUE?
in5ane
Kombinujesz. Sprawdź taki skrypt.
  1.  
  2. echo isset($_SESSION['nowytest']) ? $_SESSION['nowytest'] : 'BRAK SESJI!';
  3.  
  4. $_SESSION['nowytest'] = 'SESJA DZIALA!';
Za pierwszym razem powinieneś mieć napis BRAK SESJI!, a za każdym następnym razem napis SESJA DZIALA!. Daj znać.
jedrzejewski
Permanentny BRAK SESJI, nie mogło być inaczej, skoro tamten kod działał tak jak opisałem, a nie różnił się praktycznie niczym, co do zasady działania.

Ponawiam pytanie czy:
w normalnych warunkach powinno zwracać TRUE czy FALSE? Czy TRUE w tym wypadku nie będzie stwarzało jakiegoś zagrożenia bezpieczeństwa? Na serwerze, na którym występuje problem kod zwraca FALSE, co wydaje mi się być również objawem problemu, zaś jego przyczyny, w tym wypadku, upatrywałbym właśnie w uprawnieniach katalogu. Proszę, poprawcie mnie jeśli się mylę.
Pyton_000
u mnie to:

zwraca to:
Kod
bool(false)
string(0) ""

więc tak, może być false smile.gif
nospor
Wlacz wyswietlanie wszystkich bledow, przed session_start, a zapewne zobaczysz bardzo czesty blad. Tu masz napisane jak:
Temat: Jak poprawnie zada pytanie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.