• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

session_unset greift nicht

FreddyS

Neues Mitglied
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
 
So müßte es funktionieren

PHP:
<?  
ob_start ();  
session_start ();  
session_unset ();  
session_destroy ();  
 
ob_end_flush ();  
?>
 
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");

Mfg
 
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
 
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
 
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.
 
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="";
?>
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/c...on-headers-already-sent-gehasster-php-fehler/
 
Zuletzt bearbeitet:
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");  
?>

Session bleibt trotzdem erhalten
 
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 ();  
?>
 
Zurück
Oben