FreddyS
20. Oktober 2009 um 14:46
1
Noch ein prob bei session
Ich lasse den user sich wie folgt abmelden:
[php]
<?PHP
session_unset();
//$_SESSION=array();
?>
[/code]
Trotzdem ist danach die session beim erneuten aufruf noch vorhanden (also user angemeldet)
Wie kann ich das verhindern
Tomm
20. Oktober 2009 um 14:55
2
So müßte es funktionieren
[PHP]<?
ob_start ();
session_start ();
session_unset ();
session_destroy ();
ob_end_flush ();
?> [/PHP]
FreddyS
20. Oktober 2009 um 15:09
3
danke, aber ich bin anfänger
was ist ob_start() und ob_end_flush();
habe ich so noch nie gesehen
danke, aber ich bin anfänger
was ist ob_start() und ob_end_flush();
habe ich so noch nie gesehen
Kurz gesagt: Das „schluckt“ die Ausgaben.
Statdessen kannst du aber auch ein „@“ verwenden.
Fals es dir hilft, zum ausloggen mache ich:
[PHP] setcookie(„userid“, „“, -1000);
setcookie(„pwdhash“, „“, -1000);
@session_unset ();
@session_destroy ();
header(„Location: index.php“);[/PHP]
Mfg
FreddyS
20. Oktober 2009 um 15:32
5
habe diesen code eingebaut und bekomme folgende fehler/Warnings:
Warning : Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\ub222unset.php:1) in C:\Programme\xampp\htdocs\ub222unset.php on line 2
Warning : Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\ub222unset.php:1) in C:\Programme\xampp\htdocs\ub222unset.php on line 3
Warning : Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\ub222unset.php:1) in C:\Programme\xampp\htdocs\ub222unset.php on line 6
Tomm
20. Oktober 2009 um 15:58
6
Ich hab den Code in einer eigenen Datei logout.php gespeichert, den ich dann über das Formular aufrufe, das funktioniert
headers already sent by bedeutet, dass vorher schon eine Ausgabe war.Der Code muß ganz am Anfang stehn, keine Leerzeichen dazwischen, sonst gibts solche Meldungen
FreddyS
20. Oktober 2009 um 17:10
7
ich habe den code auch in einer eigenen datei gespeichert (unset.php), die ich zum ausloggen von verschiedenen formularen aufrufe.
Funktioniert aber ledier nicht.
Wenn ich sofort nach dem ausloggen das formular wieder aufrufe, ist keine neuanmeldung erforderlich, der user ist noch aktiv.
Tomm
20. Oktober 2009 um 17:45
8
ich habe den code auch in einer eigenen datei gespeichert (unset.php), die ich zum ausloggen von verschiedenen formularen aufrufe.
Funktioniert aber ledier nicht.
Wenn ich sofort nach dem ausloggen das formular wieder aufrufe, ist keine neuanmeldung erforderlich, der user ist noch aktiv.
Hast du vielleicht noch eine Variable, in der das Einloggen gespeichert ist
[PHP]
<?
$angemeldet="";
?>
[/PHP]
Die mußt du dann auch löschen
Wie schon gesagt ein Leerzeichen genügt und das funktioniert nicht
Hier steht was darüber
http://webdesignblog.de/sonstiges/cannot-modify-header-information-headers-already-sent-gehasster-php-fehler/
FreddyS
21. Oktober 2009 um 08:00
9
habe keine leerzeichen (mehr), habe m. E. alles gelöscht
[php]
<?PHP
$_SESSION['angemeldet'] = false;
$_SESSION['angemeldet'] = "";
$_SESSION['anbnr']="";
setcookie("userid", "", -1000);
setcookie("pwdhash", "", -1000);
@session_unset();
@session_destroy();
header("Location: ub222home.php");
?>
[/php]
Session bleibt trotzdem erhalten
Tomm
21. Oktober 2009 um 08:22
10
Ich hab diesen Code, damit funktioniert es bei mir
logout.php
[PHP]<?
ob_start ();
session_start ();
session_unset ();
session_destroy ();
header("Location: ub222home.php");
ob_end_flush ();
?> [/PHP]
FreddyS
21. Oktober 2009 um 08:41
11
Danke tomm, damit funktioniert es jetzt auch bei mir