hi...
ich habe nach dem login meine sessionvariable $_SESSION['user']....
wenn ich nun unset($_SESSION['user']) mache, dann ist die variable jedoch immer noch da.
setzte ich die variable jedoch leer also
$_SESSION['user'] = "", dann prüfe ich auf leer und alles geht.
prüfe ich auf (isset($_SESSION['user'])) gehts nicht, aber die variable ist auch nochda wenn ich mir den inhalt mit print_r($_SESSION) ausgeben lasse
weis jemand woran das liegen könnte?
Original geschrieben von lx-club
ich habe nach dem login meine sessionvariable $_SESSION['user']....
wenn ich nun unset($_SESSION['user']) mache, dann ist die variable jedoch immer noch da.
Verwundert etwas, da alle Superglobals les- und beschreibbar sind. Da aber das Session Array aus dem Session File restauriert wird, ist hier zu beachten, daß das Script auch die Gelegenheit haben muß, das Session File neu zu schreiben. session_write_close() ist dann vor header ('Location: ...) oder exit angebracht
setzte ich die variable jedoch leer also
$_SESSION['user'] = "", dann prüfe ich auf leer und alles geht.
prüfe ich auf (isset($_SESSION['user'])) gehts nicht, aber die variable ist auch nochda wenn ich mir den inhalt mit print_r($_SESSION) ausgeben lasse
Hier verstehe ich Dich absolut nicht. Wenn Du ein Verfahren weißt, das bei Dir funktioniert, wieso verwendest Du es dann nicht? Es ist eh besser, wenn man mit initialisierten Variablen arbeitet.
if (isset($_SESSION['user']) AND ! empty($_SESSION['user'])) reicht doch dann völlig...
hmm...ich dachte mit unset die methode ist besser...
ausserdem hatte ich noch vergessen zu sagen, das meine lösung mit unset beim provider funktioniert aber lokal gehts nur nicht.
gibt es denn da noch irgendwelche einstellungen zu beachten?
glaube mal gelesen zu haben, dass es eventuell mit register_globals
zusammen hängt, bin jetzt aber zu faul nachzugucken, mach mal selbst :D
hab grad mal geschaut, also beim provider sind register globals auf on gestellt und dort wo ich teste auch. kann in beiden fällen nicht in die einstellungen eingreifen.
aber wie gesagt lokal gehts nicht jedoch beim provider.
hab das jetzt erstmal so gelöst, das ich wie schon geschrieben meine variablen vorher belegt habe
Original geschrieben von lx-club
hab grad mal geschaut, also beim provider sind register globals auf on gestellt
Dann solltest Du dem mal dafür auf die Hufe latschen.
mod_php:
in Deinen Virtualhost rein:
php_admin_value register_globals Off
Falls PHP als CGI:
einfach eine lokale php.ini erstellen, dort reintippern:
register_globals = Off
und in Dein Scriptverzeichnis.
Letzteres kannste selber machen.
ok werd ich machen.... ich habs aber jetzt erstmal so gemacht wie du zum anfang gesagt hast...das funzt