PHP: Probleme beim setzen von Cookies

Blackbenji

Lieutenant
Registriert
Nov. 2009
Beiträge
557
Hallo zusammen,

ich möchte für meine Seite ein wenig mit Cookies arbeiten.
Auf der Frontseite gibt es die Möglichkeit Kommentare zu schreiben, das geht aber nur wenn man eingeloggt ist.

Dafür Rufe ich eine Funktion auf, die den Cookie setzt:
PHP:
            setcookie("id", '1234', time()+(3600*24*100));
            setcookie("login", '12345', time()+(3600*24*100));
            setcookie("username", 'xxx', time()+(3600*24*100));

das Problem ist nun, dass man die Login-Funktion auf unterschiedlichen Seiten aufrufen kann, zb /content/ ... /dashboard/ usw.
Entsprechend wird der Cookie doppelt angelegt und bekommt eine URL übergeben:
Bildschirmfoto 2013-02-24 um 10.09.58 | 24.02.2013.png

gibt es die Möglichkeit einen cookie so zu setzen, dass er auf nur auf domain-ebene gesetzt wird und nicht auf Unterordner setzt?
 
Niemals in Cookies das Passwort und den Benutzernamen speichern. Dann handle es lieber mit einer Session. Das ist sogar empfehlenswerter für dein vorhaben.
 
es wird doch garkein passwort als cookie gespeichert?
und die session ist nach dem browser schließen weg.
 
Session-ID im Cookie speichern, dann hast die Session auch nach dem Browser-schließen wieder...

aber zu deinem problem:
bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

$path ist hier die Lösung!
 
Wie wäre es denn wenn du das mit einer Session kombinierst? Und dann prüfst du einfach vorher mit "isset" ob die Session schon existiert. Eventuell geht das auch mit deinen cookies. ( http://php.net/manual/en/function.isset.php )

Wenn sie schon existiert dann tue gar nichts und wenn sie noch nicht existiert dann setze deine Cookies.
 
Zurück
Oben