Ich benutze Facebook PHP SDK für die Validierung von Benutzern Kommentare zu hinterlassen und es funktioniert ganz gut. Einmal validiert, speichere ich die Benutzerinformationen in einer Sitzungsvariablen, aber rufen Sie zuerst session_regenerate_id()
und dann laden Sie die Seite neu. Wenn die Seite neu geladen wird, sind die alten Sitzungsdaten weiterhin verfügbar, einschließlich der Facebook SDK-Statusvariable. Die von mir hinzugefügte Sitzungsvariable ist jedoch nicht verfügbar. Im Folgenden ist ein Ausschnitt aus dem Code:Probleme mit session_regenerate_id()
session_regenerate_id();
$_SESSION[...] = ...;
header('Location: ...');
die();
Wenn ich die session_regenerate_id()
nehmen dann alles perfekt funktioniert. Irgendwelche Ideen, was ich falsch mache?
EDIT
Wenn ich session_id()
jede Seite zu laden einzuloggen, sehe ich, dass session_regenerate_id()
eine neue ID generiert und die Sitzung enthält alles, was ich erwarte. Wenn die Seite neu geladen wird, ist die Sitzungs-ID jedoch die vorherige Sitzungs-ID und nicht die neue, daher kann ich nicht auf die neuen Sitzungsvariablen zugreifen. Warum würde das passieren?
' Php session_start(); session_regenerate_id(); $ new_sessionid = Sitzungs_ID(); echo "Neue Sitzung: $ new_sessionid
"; print_r ($ _ SESSION); ?> ' –
Warum machst du die' session_regenerate_id(); 'Wenn Sie eine Sitzung haben, verwenden Sie es – RiggsFolly
@Anant Ich habe das getan und alles sieht gut aus. Beim erneuten Testen habe ich jedoch festgestellt, dass die Sitzungs-ID, die nach dem 'session_regenerate_id()' gemeldet wurde, nicht identisch ist, wenn ich die Seite neu lade, was immer noch die alte Sitzung ist. Also, ich denke, die Frage wird, warum verändert sich die Session ID nicht wirklich? – steveo225