2013-05-29 14 views
5

Załóżmy, że mamy index.php, który wywołuje session_start() i zapełnia dane $_SESSION.
Gdy użytkownik znajduje się na stronie, klika przycisk, a zapytanie AJAX jest wywoływane w pliku ajax.php. ajax.php nie wywołuje session_start(), ale z powodzeniem odczytuje dane w $_SESSION.

Czy to oczekiwane zachowanie?

+0

Nie spodziewałbym się tego, ale wygląda na to, że Niles ma pomysł. –

+0

Jeśli masz '$ _SESSION' z zapełnionymi danymi, sesja została uruchomiona przez ciebie lub inny kod/config. – MatRt

+0

Żądania ajax są po prostu żądaniami, takimi jak metoda $ _REQUEST, nie zawierają kodu scalającego, więc zachowanie jest nieoczekiwane, ale wydaje się, że istnieje sposób na to, wspomniany w pierwszej odpowiedzi. Szczerze mówiąc, nie znałem tej dyrektywy. –

Odpowiedz

7

Jeśli spojrzeć na wyjściu phpinfo(); rozmowy prawdopodobnie będzie zauważyć, że zmienna session.auto_start konfiguracja jest ustawiona na 1.

Zobacz documentation for further reference. Dopóki ta flaga nie zostanie ustawiona, zdecydowanie nie jest oczekiwanym zachowaniem i prawdopodobnie zawierasz kod gdzieś, który jawnie wywołuje session_start().

+1

O dziwo - nie, wyłącza się – davidkomer

+0

ładuje się d'oh, yeah, session_start();) – davidkomer

Powiązane problemy