Nie mogę używać zmiennych sesji na stronie innej niż ta, w której są ustawione, IOW działają jak zmienne niesesyjne. Znalazłem podobne pytanie na pół tuzinie innych podobnych forów, ale odpowiedź w tych innych przypadkach zawsze okazuje się nie mieć zastosowania.Zmienne sesji PHP nie są przechowywane
Oto moje pliki:
sess1.php
<?php
session_start();
session_register("userid");
session_register("textvar");
$_SESSION['userid'] = 10333 ;
$_SESSION['textvar'] = TextVariable ;
echo "<p>User ID is: " . $_SESSION['userid'] . "</p>" ;
echo "<p>Another variable is: " . $_SESSION['textvar'] . "</p>" ;
?>
<p>Go to the <a href="sess2.php">next page</a>.</p>
i sess2.php
<?php
session_start();
echo "<p>The userid session variable is: " . $_SESSION['userid'] . "</p>";
echo "<p>The other session variable is: " . $_SESSION['newvar']. "</p> ";
?>
Wyjście przeglądarka jest w każdym przypadku:
sess1.php
ID użytkownika jest: 10333
Inną zmienną jest: TextVariable
Przejdź do następnej strony [].
i sess2.php
Zmienna sesja userid jest:
Druga sesja jest zmienna:
Przejdź do ostatniej strony [].
Kilka rzeczy nie jest:
- muszę session_start() w górnej części obu plików.
- Katalog zmiennych jest zapisywalny, a zmienne sesji są tam wyświetlane. (Mam około stu małych plików o nazwie sess_b62, które mają to w środku: 'userid | i: 10333; textvar | s: 12: "TextVariable";'.)
- phpinfo() mówi mi, że plik php.ini jest poprawnie odczytywany, a czas życia jest ustawiony na wartość domyślną, 0, tj. dopóki przeglądarka nie zostanie zamknięta.
Jestem na końcu mojego dowcipu. Jakieś sugestie?
Dziękuję bardzo.
Czy sprawdziłeś, czy używany jest ten sam identyfikator sesji? – Gumbo
Czy jedna ze stron korzysta z protokołu SSL? –
Jaką wersję PHP używasz? (również z phpinfo()) –