Autor Zpráva
suvel
Profil
Mám dva skripty

s1.php:
<?php
session_start();
$_SESSION['test'] = "hodnota";
unset($_SESSION['test']);
Header("Location: s2.php");
exit;
?>

s2.php:
<
<?php
  session_start();
  echo $_SESSION['test'];
?>

Když spustím s1.php, vypíše se mi v s2.php "hodnota". Proč, když proběhlo unset($_SESSION['test']) a případný kontrolní výpis v s1.php ukáže, že SESSION['test'] už není? K jejímu obnovení dojde až po přesměrování na s2.php. Prosím pomozte, nejde mi to na rozum.
PS: Spouštím to na localu, kde je ještě php 4.1.1, tak jestli není problém ve verzi? Teď momentálně nemám možnost spustit to pod php5.
ShiraNai7
Profil
suvel:

To mi nedělá. Po spuštění prvního skriptu se dostanu na druhý a tam dostanu očekávanou chybu:
Notice: Undefined index: test in ---\s2.php on line 3

Teď momentálně nemám možnost spustit to pod php5.
Jakto? XAMPP rozjedeš i s konfigurací za 10 minut a v nejnovější verzi je PHP 5.4.4.
suvel
Profil
ShiraNai7:
Dík za reakci, asi to bude tou starou verzí php, zkusím to pod php5.
Ale stejně, i když to tak asi je, to musím vyřešit, aby to chodilo i pod php4. A tomu jsem se chtěl vyhnout, tak jsem zkusil, jestli se s tím už někdo nesetkal, abych to kdyžtak nedělal univerzální zbytečně. Ono stačí, když musí člověk vždycky extra odlaďovat stránky, aby se korektně zobrazovaly i v IE :-(
Alphard
Profil
Tak na 4 verzi možná i session_unregister(), ale rozhodně nedoporučuji zabývat se historickými verzemi.
suvel
Profil
Tak už jsem na to přišel: Souvisí to s nastavením globals - když je "on", je nutné ještě unset($test);
<?php
session_start();
$_SESSION['test'] = "hodnota";
unset($_SESSION['test']);
unset($test);
Header("Location: s2.php");
exit;
?>
ShiraNai7
Profil
suvel:
Ale stejně, i když to tak asi je, to musím vyřešit, aby to chodilo i pod php4.

Na verzi starší než 5 nemůže běžet žádný webhosting, který to myslí alespoň trochu vážně. PHP 5 je k dispozici už 8 let.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0