[php] Nie działają u mnie sesje ?

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
cwiru
Nowy
Nowy
Posty: 41
Rejestracja: pt lut 27, 2004 1:47 pm
Lokalizacja: ze Śródziemia

[php] Nie działają u mnie sesje ?

Post autor: cwiru »

Mam 2 takie przykładowe pliki . W jednym z nich rejestruje zmienną i przekierowuję się na drugą stronę. Na drugiej chcę odczytać tą zarejestrowaną zmienną.

Kody PHP:

plik zapis.php
[php]<?php
session_start();
$_SESSION['name'] = "byleco" ;
header("Location : http://localhost/odczyt.php");
exit();
?>[/php]

plik odczyt.php
[php]<?php
session_start();
if(!isset($_SESSION['name']))
{
print("brak sesji");
}
else
{
echo "<p> Witaj {$_SESSION['name']} </p>";
}
?>[/php]

Po odpaleniu pliku zapis.php przekierowuje mnie i pokazuje komunikat brak sesji. Nie wiem jak sobie z tym poradzić. Katalog na sesje mam ustawiony na /tmp i widzę tam że w jednym pliku rejestruje mi tą zmienną , ale po przejściu na tą drugą stronę już jej nie pamięta.
To już zaczyna być dla mnie denerwujące bo nie mam pojęcia co jest nie tak. Wygląda na to , że zamiast "kontynuować" sesję w pliku odczyt.php skrypt tworzy nową sesję. Może ktoś pomóc ?
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] Nie działają u mnie sesje ?

Post autor: the_foe »

sprawdz php.ini. wlacz wrzucanie identyfikatora sesji do GETa, sprawdz tez czy masz wlaczone cookiesy.
cwiru
Nowy
Nowy
Posty: 41
Rejestracja: pt lut 27, 2004 1:47 pm
Lokalizacja: ze Śródziemia

Re: [php] Nie działają u mnie sesje ?

Post autor: cwiru »

Podam moje bieżące (niektóre) ustawienia dotyczące sesji :

  • session.save_path = /tmp
    session.use_cookies = 1
    session.name = PHPSESSID
    session.auto_start = 0
    session.cookie_lifetime = 0
    session.cookie_path = c:/Documents and Settings/Administrator/Cookies
    session.cookie_domain = c:/Documents and Settings/Administrator/Cookies
    session.use_trans_sid = 0
Czy takie ustawienia w pliku php.ini są przyczyną nieprawidłowości ?
Może ścieżka określająca lokalizację cookies ma być inna ?
W tej lokalizacji znajdują się moje wszystkie cookies, natomiast strony odpalam z Apache/../htdocs/
Poza tym chciałbym się obejść bez identyfikatora sesji. Po prostu żeby obsługa sesji działała tak jak to widzę w manualu do PHP
wixor
Przelotem
Przelotem
Posty: 336
Rejestracja: śr gru 31, 2003 10:18 pm
Lokalizacja: Wrocław

Re: [php] Nie działają u mnie sesje ?

Post autor: wixor »

[php]<?php
session_start();
/* !!! */ session_register('name'); /* !!! */
$_SESSION['name'] = "byleco" ;
header("Location : http://localhost/odczyt.php");
exit();
?>[/php]
Wojciech Kocjan
Zaczyna działać
Zaczyna działać
Posty: 427
Rejestracja: sob gru 14, 2002 10:51 am

Re: [php] Nie działają u mnie sesje ?

Post autor: Wojciech Kocjan »

Sprobuj dac tak:

Kod: Zaznacz cały

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =
Zenobi
Nowy
Nowy
Posty: 37
Rejestracja: wt sie 03, 2004 3:13 am

Mam chyba IDENTYCZNY problem

Post autor: Zenobi »

Mam chyba IDENTYCZNY problem więc pewnie to jakaś bardziej powszechna sprawa…

Mam kłopot z przekazywaniem zarejestrowanych poprzez mechanizm sesji zmiennych - session_register(„zmienna”). Gdy usiłuję ja odczytać poprzez (PHP 4.3x) $zmienna=$_SESSION[„zmienna”]; zawsze otrzymuję zmienną o wartości NULL.

Problem występuje tylko na moim domowo-roboczym serwerze. Na komercyjnych serwerach wszystko jest OK!
Czy ktoś wie jak rozwiązać ten problem? Grzebałem w różnych ustawieniach i nic…
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] Nie działają u mnie sesje ?

Post autor: the_foe »

wixor pisze:[php]<?php
session_start();
/* !!! */ session_register('name'); /* !!! */
$_SESSION['name'] = "byleco" ;
header("Location : http://localhost/odczyt.php");
exit();
?>[/php]
a po co 3 linia? skoro czwarta robi to samo, i lepiej, bo przy register_globals=off funkcja session_register() nie dziala.
wixor
Przelotem
Przelotem
Posty: 336
Rejestracja: śr gru 31, 2003 10:18 pm
Lokalizacja: Wrocław

Re: [php] Nie działają u mnie sesje ?

Post autor: wixor »

Po to, żeby zaczęło działać! wiem, bo sam miałem daawno temu ten problem - nie wystarczy zapisać zmienną do tablicy, trzeba najpierw powiedzieć php, że taka zmienna ma w obóle w sesji występować... odsyłam do manuala
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] Nie działają u mnie sesje ?

Post autor: the_foe »

wixor pisze:Po to, żeby zaczęło działać! wiem, bo sam miałem daawno temu ten problem - nie wystarczy zapisać zmienną do tablicy, trzeba najpierw powiedzieć php, że taka zmienna ma w obóle w sesji występować... odsyłam do manuala
niestety, gadasz bzdury. session_register(), zostawiono wylacznie dla zgodnosci skryptow. Od PHP 4.1.0 uzywa sie po prostu wpisu do superglobalnej $_SESSION. Zreszta masz tu wyciag z manulala:
Przy użyciu $_SESSION (lub $HTTP_SESSION_VARS) nie powinno się używać session_register(), session_is_registered() i session_unregister().
cytat oczywiscie z oficjalnego manula : [manual]session_register[/manual]
wixor
Przelotem
Przelotem
Posty: 336
Rejestracja: śr gru 31, 2003 10:18 pm
Lokalizacja: Wrocław

Re: [php] Nie działają u mnie sesje ?

Post autor: wixor »

Cóż, może i bzdury, ale wiem, że jak dodałem kiedyś tam dawno temu to ruszyło, a jak wywaliłem to spowrotem przestało działać... A php było 4.3.x ......
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: [php] Nie działają u mnie sesje ?

Post autor: the_foe »

wixor pisze:Cóż, może i bzdury, ale wiem, że jak dodałem kiedyś tam dawno temu to ruszyło, a jak wywaliłem to spowrotem przestało działać... A php było 4.3.x ......
hmm, ciekawe rzeczy opowiadasz, tylko szkoda ze absolutnie niemozliwe. Zrozum ze register_session to nie ta bajka. W zyciu nie uzylem tej funkcji, a sesje dzialaja mi bez zarzutu.
ODPOWIEDZ