session_destroy(); funktioniert nicht.
Michael
- php
hallo!
ich armer muss einen admin-bereich, den bei mir zuhause mit linux/apache entwickelt habe, auf einem Microsoft-IIS/4.0/PHP Version 4.0.3pl1 (ich kann nichts dafür!) server zum laufen kriegen.
neben anderen problemen habe ich ein problem mit der funktion session_destroy();:
<?php
session_start();
session_unset();
session_destroy();
?>
liefert immer nur:
Warning: Session object destruction failed in x:\xxx\xxx\xxx\xxx.php on line xx
hier noch, was phpinfo zum thema sessions ausspuckt:
session
Session Support enabled
Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 10 10
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_maxlifetime 240 240
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path d:\temp\ d:\temp\
session.serialize_handler php php
session.use_cookies On On
kann jemand helfen?
mfg, michael
Hi!
neben anderen problemen habe ich ein problem mit der funktion session_destroy();:
<?php
session_start();
session_unset();
session_destroy();
?>
Das ist ja auch Quatsch! Die Session-Datei die mit Session-Start nach Scriptende angelegt wird, versuchst Du bevor das Script beendet ist zu löschen - wie soll das gehen?
Lies mal:
http://www.dclp-faq.de/ch/ch-version4_session.html
http://www.php3.de/manual/de/ref.session.php
und probiere die dort angegebenen Beispiele aus.
Grüße
Andreas
neben anderen problemen habe ich ein problem mit der funktion session_destroy();:
<?php
session_start();
session_unset();
session_destroy();
?>Das ist ja auch Quatsch! Die Session-Datei die mit Session-Start nach Scriptende angelegt wird, versuchst Du bevor das Script beendet ist zu löschen - wie soll das gehen?
das ist quatsch? das ist 1:1 aus dem php-manual übernommen:
Beispiel 1. Löschen einer Session
<?php
// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();
// Löschen aller Session-Variablen.
session_unset();
// Zum Schluß, löschen der Session.
session_destroy();
?>
mfg
Hi!
das ist quatsch? das ist 1:1 aus dem php-manual übernommen:
Beispiel 1. Löschen einer Session
<?php
// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();
// Löschen aller Session-Variablen.
session_unset();
// Zum Schluß, löschen der Session.
session_destroy();
?>
Das ist auch richtig - aber nur wenn man vorher schonmal eine Session gestartet hat. Das Script alleien so wie es ist ist Quatsch. Das beispiel ist so gedachtm das es eine bereits bestehende Session löscht. Wie sieht das Script aus mit dem Du eine Session gestartet hast?
Grüße
Andreas
das ist quatsch? das ist 1:1 aus dem php-manual übernommen:
Beispiel 1. Löschen einer Session
<?php
// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();
// Löschen aller Session-Variablen.
session_unset();
// Zum Schluß, löschen der Session.
session_destroy();
?>Das ist auch richtig - aber nur wenn man vorher schonmal eine Session gestartet hat. Das Script alleien so wie es ist ist Quatsch. Das beispiel ist so gedachtm das es eine bereits bestehende Session löscht. Wie sieht das Script aus mit dem Du eine Session gestartet hast?
das war wohl ein missverständnis. natürlich hab ich vorher schon einmal eine session geöffnet, und zwar so:
if(($pass==$passwort) && ($user==$username))
{
session_start();
session_register("eingeloggt");
header("Location: index.php?".SID);
}
mfg, michael
Hallo Michael,
Dein Problem sehe ich ganz wo anders.
Es handelt sich ja um ein Windows-System und da musst Du ggf. noch explizit Schreib- und Leserechte für den Apachen auf das Temp-Verzeichnis legen. Bei Unix sind die automatisch mit der Ownerkennung versehen, bei Windows geht das nicht. Da würde ich deshalb auf jeden Fall ein eigenes Verzeichnis für die Sessiondateien anlegen und den SessionSavePath richtig einstellen in der php.ini. Nur nicht tiefer als \temp\sessions\sess_1234556768, also Dateien inerhalb der zweiten Verzeichnisebene. Bei der dritten kommen schon wider neue Probleme.
Und ich glaube, der GC funktioniert bei Windows auch nicht, da er nicht in der Lage ist, den letzten Zugriff auf die Datei festzustellen.
Liebe Grüße aus http://www.braunschweig.de
Tom