Zum Inhalt springen

PHP: nach session_destroy gleiche id???


Empfohlene Beiträge

Mein Session-Code lautet folgendermassen!


session_start();
echo session_id();
if(session_is_registered("time")) {

$curtime = time();
if($curtime-$_SESSION[time] > 20) {

session_destroy();
if(session_id()) {
echo "Session_id noch vorhanden!";
} else echo "keine Session_id mehr vorhanden!$PHPSESSID";
die("Ihre Session ist abgelaufen!<a href='tip.php'>weiter</a>");
} else {
echo $curtime-$_SESSION[time];
$time = time();
}
} else {
$time=time();
}
session_register("time");
[/PHP]

Hierbei gibt er mir nach 20 Sekunden aus (nach drücken F5):

[code] fd486e9c6de93922bf64f6e0b97c4820 keine Session_id mehr vorhanden! fd486e9c6de93922bf64f6e0b97c4820 Ihre Session ist abgelaufen!weiter[/code]

Das darf doch eigentlich nicht sein, oder?

Kann mir jemand helfen? Ich bräuchte das dringend!

Link zu diesem Kommentar
Auf anderen Seiten teilen

zu 1.

Das macht doch beides genau das gleiche!

zu 2.

$_SESSION[time]

funktioniert so - probier es aus!

zu 3.


$time = time();
session_register("time"); [/PHP]

Dieses Statement funktioniert ebenfalls - Probiers mal!

Das löst allerdings immer noch nicht mein Problem, dass ich nach einem session_destroy immer noch die gleiche session_id habe!

Nach einem [session_destroy - session_start] - Ablauf muss doch eine neue session_id kreiert werden!?

Link zu diesem Kommentar
Auf anderen Seiten teilen

zu 1.

Das macht doch beides genau das gleiche!

zu 2.

$_SESSION[time]

funktioniert so - probier es aus!

zu 3.


$time = time();
session_register("time"); [/PHP]

Dieses Statement funktioniert ebenfalls - Probiers mal!

Das löst allerdings immer noch nicht mein Problem, dass ich nach einem session_destroy immer noch die gleiche session_id habe!

Nach einem [session_destroy - session_start] - Ablauf muss doch eine neue session_id kreiert werden!?

Ja, das zweite funktioniert genauso... ist aber die "alte" Version.

If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.

[...ausserdem:]

Use of $_SESSION (or $HTTP_SESSION_VARS with PHP 4.0.6 or less) is recommended for improved security and code readability.

[/Quote]

und auch hier (http://de2.php.net/manual/en/ref.session.php) wird in den Beispielen

$_SESSION['count']

genutzt.

EDIT:

[PHP]
<?PHP
if(session_start())echo"Session wurde erstellt!";
echo "<br>";
if(session_id())echo session_id();
echo "<br>";
session_destroy();
if(!session_id())echo "Session-ID wurde zerstört";


if(session_start())echo"Session wurde erstellt!";
echo "<br>";
if(session_id())echo session_id();
echo "<br>";
session_destroy();
if(!session_id())echo "Session-ID wurde zerstört";
?>


Das ist ein Beispiel aus SelfPHP (nur 2 mal hier). Geht das?

Nochne Anmerkung:

Mir session_unset() kannst du alle variablen in der aktuellen Session löschen, damit würde auch dieselbe Session_id nix mehr nützen, so als Workaraound.

Noch ein Edit:

PHP löscht die Sessiondata nicht sofort beim session_destroy(). also im session Pfad die Datei in der die Inhalte der Sessionvariablen gespeichert sind. Die werden je nach Einstellung der PHP.ini ab und zu mal beim Aufruf von session_start() gelöscht. Sprich, wenn der Cookie der session noch da ist, und du nicht sehr viel Glück hast (ich glaub standard ist 1% Chance, dass alle Sessiondaten die älter sind als 40 min (glaub ich) gelöscht werden) sollte damit die Session wieder aufgenommen werden... schau mal nach deinen Cookies ob sich da was tut.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...