cookies erstellen und überprüfen

Fassbrause

Grünschnabel
Hallo,
wie kann ich mit php Cookies erstellen, sodass sie nach sagen wir mal 24 std nicht mehr gültig sind.

Dann soll ein script überprüfen, ob das Cookie noch gültig ist wenn
-> JA dann soll die Hauptseite angezeigt werden
-> NEIN dann soll eine andere Seite angezeigt werden.

Das ganze soll ein login Script werden.

Auf der Login Seite muss der User seinen Benutzernamen und Passowrt eingeben. Dann wird meine MySQL Datenbank nach dem User durchsucht und wenn der User existiert und das Passwort stimmt, dann erst soll das Cookie erstellt werden. Ich brauch eeigendlich nur die Cookie sache.

Thx Fassbrause
 
Cookie setzen via:
PHP:
setcookie ("TestCookie", $value, time()+86400); //löscht sich selbst in 24h
dann via
PHP:
isset($_COOKIE['TestCookie']) //testen ob er noch da ist
 
Zuletzt bearbeitet:
Danke,
und wie kann ich das jetzt in eine if schleife einbinden?
If cookie=vorhanden {
weiter
} else {
stop
}
 
Zuletzt bearbeitet:
Wie leuchte schon sagte!
PHP:
if (isset($_COOKIE['TestCookie'])) { // Wenn Cookie gesetzt
 ..
} else { // Wenn Cookie nicht gesetzt
 ..
}

snuu
 
ok, danke

Doch nun habe ich ein Problem:
erstmal mein Quelltext:
PHP:
$sql = "SELECT password FROM accounts WHERE username = '$username' ";

if ($password_vom_formular==$password_von_datenbank) { 
echo "eingeloggt";
setcookie ("TestCookie", $value, time()+86400); 
}else{
echo "Error";
}
Da kommt dann diese schicke Errormeldung:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web395/html/mysql/login/login.php:13) in /home/www/web395/html/mysql/login/login.php on line 14

So in Zeile 13 Steht:
PHP:
echo "eingeloggt";
und in Zeile 14 steht:
PHP:
setcookie ("TestCookie", $value, time()+86400);

wie kann ich diese "nette" Meldung verhindern?

Und das Cookie wird leider nicht gesetzt, ich kann es in dem Ordner nicht finden und die abfrage liefert das selbe ergebnis, dass das Cookie nicht existiert. Der Quelltext für mein Cookie sieht jetzt so aus:
PHP:
if (id=='1') {
setcookie ("TestCookie", $value, time()+86400);
}
und ich habe folgendes in die Adressenleiste eingegeben: http://www.meine-domain.de/cookie_setzen.php?id=1

Thx Fassbrause
 
Zuletzt bearbeitet:
Tausch zeile 13 und 14 aus.

setCookie sendet Header und vor diesen Header darf nichts an den Browser gesendet werden (alsoo kein echo!)
 
Du solltest dir ausserdem mal Gedanken darüber machen, ob dein Cookie wirklich TestCookie heissen soll und ob die Variable $value, welche du in das Cookie schreibst, überhaupt gesetzt ist.
 
Zurück