Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


Immer die gleiche Session-ID ??

Fragen oder Probleme mit HTML, PHP oder CSS?

Immer die gleiche Session-ID ??

Beitragvon 00Hugo am 28.12.2007, 07:03

Code: Alles auswählen
<?php
session_start();
echo session_id();
session_destroy ();
echo '<a href="'.$PHPSELF.'">Nochmal</a>';
?>


Warum gibt der mir dann immer die gleiche Session_ID ?? Is das normal ?? Was kann i tun, damit diese variiert ??

Ich hat es später auch mal anders ausprobiert. Die ersten Versuche waren vielversprechend, doch kamen gleich mit der ersten ID Fehlermeldungen in Zeile 9 (session_start()) hinzu. Ich hab sie leider nich mehr im Kopf.

Code: Alles auswählen
<?php
if ($_POST[wert])
{

echo $_POST[wert].' mal wird die Session generiert<br>';
$x=0;
while ($x<$_POST[wert])
{
session_start();
echo session_id().'<br>';
session_destroy();
$x++;
}

}
else
{
echo '<form action="'.$PHPSELF.'" method="post"><input type="text" name="wert"><br><input type="submit" value="Los"></form>';
}
?>
00Hugo
 
Beiträge: 32
Registriert: 30.04.2004, 06:29


Beitragvon FireFoxFan am 28.12.2007, 11:54

Ich habe gerade dein oberes Codebeispiel mal ausprobiert. Das interessante ist, dass sich bei deaktivierten Cookies die Session-ID sehr wohl ändert, nur eben nicht, wenn man sie an hat.

Wenn ich herausgefunden habe, warum das so ist, melde ich mich wieder...

LG
FireFoxFan
FireFoxFan
 
Beiträge: 172
Registriert: 23.04.2006, 10:40

Beitragvon dragonl am 28.12.2007, 14:51

Maoin ihrs,

...ich behaupte mal das es daran liegt weil die Session-Id in dem Cookie gespeichert wird und der Cookie zur Domain "meinde.de" gehört.
Wird die Session nun zerstört, weden zwar die Daten (die Serverseitig gespeichert werden) glöscht, das Cookie besteht aber weiterhin.
Wenn nun die Seite erneut besucht wird, wird geguckt ob bereits ein Session-Cookie existiert, ist das der Fall, wird die darin enthaltene Session-Id verwended.

Vieleicht wird dieses Cookie erst gelöscht wenn der Browser (nicht das Tab) geschloßen wird.


Gruß Dragonl

Edit1:
Achja, bei deinem zweitem Beispiel bekommst du wohl ein Fehlermelden ähnlich wie diese: "can not start 'session_start()' header allready send" (habe sie jetzt auch nicht im Kopf)
Session_start muss das erste sein das an den Browser geschickt wird, daher am einfachsten GANZ oben im Script positionieren !
Bei dir funktioniert es nicht weil du vorher noch mindestens ein ECHO stehen hast das bereits eine Ausgabe gemacht hat.

Edit2:
Ohha :shock: du hast im zweitem Script das session_start() ja in einer while-Schleife stehen, das geht gar nicht !
Erstmal wegen siehe mein Edit1 und sobald ein session_start() gemacht wurde auch eine Ausgabe an den Browser gemacht wurde (ihm wird gesagt das wir Sessions verwenden möchten).
Und weil wir ja wissen, das ein session_start() nur funktioniert wenn noch KEINE Ausgabe gemacht wurde, wissen wir auch, das session_start() nur einmal ausgeführt werden darf, jedes weiter zwangsläufig zu einer Fehlermeldung führt.
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon FireFoxFan am 28.12.2007, 18:49

So, da mich das Thema irgendwie interessiert habe ich noch ein wenig weiter probiert, und bin zu einer Teillösung gekommen:
Code: Alles auswählen
<?php

  session_start();   // Session starten
  session_regenerate_id();   // Neue Session-ID generieren
 
  echo session_id();
 
  session_destroy();   // Session beenden (Hier kommt die Warnung...)
 
  echo '<a href="'.$PHPSELF.'">Nochmal</a>';

?>

Damit wird bei jedem Aufruf eine neue Session-ID generiert, egal ob Cookies an oder aus sind. Leider bringt die Zeile, in der die Session beendet werden soll, folgende Warnung mit sich:
Warning: session_destroy() [function.session-destroy]: Session object destruction failed

Über Google kam ich zum Ergebnis, dass wohl irgendein Bug in PHP schuld sein soll, der auftritt, wenn session_regenerate_id und session_destroy verwendet wird.

Weiß jemand was über diesen Bug, oder wie man ihn behebt ?
FireFoxFan
 
Beiträge: 172
Registriert: 23.04.2006, 10:40

Beitragvon gipsy111 am 29.12.2007, 00:26

Hallo,

also bei mir kommt keine Fehlermeldung

http://www.gipsy-computer.de/test/

http://gipsy111.gi.funpic.de/test1/

Gruß

Gipsy111
gipsy111
Moderator
 
Beiträge: 1616
Registriert: 26.12.2005, 18:02
Wohnort: Baden - Württemberg

Beitragvon FireFoxFan am 29.12.2007, 11:54

@gipsy111
Vielen Dank fürs Hochladen ! Warum auf meinem lokalen Apache der Fehler auftaucht, weiß ich jetzt zwar auch nicht mehr, aber das ist ja nicht so wichtig. Also, nochmals Danke.

@00Hugo
Ich denke, wir haben jetzt eine Lösung dafür. Hätte sich damit dein Problem gelöst ?
FireFoxFan
 
Beiträge: 172
Registriert: 23.04.2006, 10:40



Ähnliche Themen


Zurück zu HTML, PHP & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste