PHP Cookie Login Script meldet bei Ordner ab

Pfandfinder

Lieutenant
Registriert
Nov. 2020
Beiträge
619
ich habe auf meiner Seite einen login wie hier erklärt : https://www.php-einfach.de/experte/php-codebeispiele/loginscript/

auf jeder .php seite wird überprüft ob der User eingeloggt ist. auf der index.php im Hauptverzeichnis klappt das auch, Cookies werden richtig gesetzt, ich bleibe immer eingeloggt. Zum debuggen habe ich mir immer beim Aufrufen den Cookie "identifier" darstellen lassen, derzeit:
Code:
098ece54dcbb15f84ccdb7aec883b2d4

Wenn ich nun auf example.com/ordner1 gehe wo ebenfalls die .php mit Script liegt, werde ich direkt abgemeldet da etwas nicht stimmt. Wenn ich den Cookie "identifier" ausgebe sehe ich nämlich direkt den Fehler:
Code:
c319628e894630b312027c89a7b392fc

doch wo kommt dieser Wert her ? Wenn ich mich dann neu anmelde kommt auf der Startseite ein neuer Wert. Gehe ich erneut zu /ordner1 ist der Cookie immer noch der Wert:
Code:
c319628e894630b312027c89a7b392fc

So setze ich die Cookies beim Login :
PHP:
setcookie('identifier', $identifier, 2147483647, '/');
setcookie('securitytoken', $securitytoken, 2147483647, '/');

Logout:
PHP:
session_destroy();
setcookie('identifier','', time()-(3600*24*7));
setcookie('securitytoken','', time()-(3600*24*7));
setcookie('cookiesDecision', '', time() -1, '/');
header('Location: /');


Was ist da falsch ?
 
Versuchs mal so: https://www.php.net/manual/en/function.setcookie
Just an example to clarify the use of the array options, especially since Mozilla is going to deprecate / penalise the use of SameSite = none, which is used by default if not using array options.
PHP:
<?php
$arr_cookie_options = array (
'expires' => time() + 60*60*24*30,
'path' => '/',
'domain' => '.example.com', // leading dot for compatibility or use subdomain
'secure' => true,     // or false
'httponly' => true,    // or false
'samesite' => 'None' // None || Lax  || Strict
);
setcookie('TestCookie', 'The Cookie Value', $arr_cookie_options);   
?>
 

Ähnliche Themen

Zurück
Oben