Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
unset bei sessions funzt net... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
unset bei sessions funzt net...


 
lx-club
26-03-2004, 13:36 
 
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?

 
meikel
26-03-2004, 13:48 
 
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...

 
lx-club
26-03-2004, 13:53 
 
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?

 
asp2php
26-03-2004, 13:58 
 
glaube mal gelesen zu haben, dass es eventuell mit register_globals
zusammen hängt, bin jetzt aber zu faul nachzugucken, mach mal selbst :D

 
lx-club
26-03-2004, 14:11 
 
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

 
meikel
26-03-2004, 14:36 
 
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.

 
lx-club
26-03-2004, 14:54 
 
ok werd ich machen.... ich habs aber jetzt erstmal so gemacht wie du zum anfang gesagt hast...das funzt

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:44 Uhr.