Frage

In meiner PHP-Anwendung habe ich Benutzername & Pwd verwendet und die Benutzertabelle in der Datenbank überprüft, um die Gültigkeit der Benutzer zu überprüfen.Nachdem die Anmeldung erfolgreich war, habe ich die Anmeldeinformationen wie folgt in der Serversitzung gespeichert:

$_SESSION['username'] = $username;
$_SESSION['pwd'] = $pwd;

Und ich habe die Sitzung überprüft, um sicherzustellen, dass sich der Benutzer bereits angemeldet hat.Sie können den Code unten sehen:

if (empty($_SESSION['userId']))
    header("Location: login.php");

Das Problem ist, wenn ich das Cookie im Browser deaktiviert habe, konnte ich keine andere Seite aufrufen, obwohl die Anmeldung erfolgreich war.Ich habe herausgefunden, dass die PHP-Sitzung das Cookie verwendet, um einige Werte im Browser zu speichern.Gibt es überhaupt eine cookielose Sitzung in PHP5?

War es hilfreich?

Lösung

Ja, aber Sie müssen das anhängen sessid oder sid zu jedem Link.

Es wird hier ausführlich beschrieben:http://myles.eftos.id.au/blog/2005/11/26/cookie-less-sessions-in-php/

Sie müssen sich auch ändern php.ini wie so: php_value session.use_trans_sid = 1.

Andere Tipps

ja, aber Sie wollen nicht.In der Tat sollten Sie nur Cookie-basierte Sitzungen verwenden.Dies ist die Standardkonfiguration wie von PHP 5.3.Bitte lesen Sie auf Sitzungsfixierung für weitere Informationen.

Welche Umstände haben Sie, um zu zwingen, dass Benutzer Ihre Website ohne Cookies verwenden können?

ja, Sie können, indem Sie den generationspflichtigen Teilen ermöglichen.Es gibt jedoch dabei Sicherheitsbedenken.

Es ist allgemein angenommen, dass man, um sich anzumelden, ein Cookie akzeptieren muss.

Die andere Alternative besteht darin, die HTTP-Autorisierung anstelle von Sitzungen zu verwenden, obwohl dies auch Nachteile hat.

siehe Sitzungs-ID ().

Sie könnten eine Sitzungs-ID generieren und zu Ihren Links wie diesem hinzufügen

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top