Sönke Tesch: cookies funktionieren nicht auf der ganzen Site...

Beitrag lesen

<? if (isset($check))
{
setcookie ("name", $form_name,time()+1209600);
setcookie ("mail", $form_e_mail,time()+1209600);
setcookie ("www", $form_website,time()+1209600);
}

Dir ist schon klar, daß Du damit drei verschiedene Cookies erzeugst und denn werten Besucher dementsprechend möglicherweise mit dreimaliger Nachfrage "Soll dieser Cookie gespeichert werden?" nervst?

Speichere Deine Daten lieber in einem Feld und benutze die Funktion serialize() (http://www.php.net/manual/de/function.serialize.php), um aus dem Feld einen Text zu machen, der dann in _einem_ Cookie gespeichert werden kann.

Wenn nun ein Benutzer auf die Seite, auf der er die Formulareingaben getätigt hat, zurückkehrt, werden seine Eingaben korrekt aus den Cookies ausgelesen

Bist Du Dir sicher? Sowohl Mozilla als auch der IE füllen an diesem Ende der Leitung die Daten unter Umständen automatisch ein (beim Benutzen der "Zurück"-Funktion).

  • wenn er allerdings auf anderen Seiten (speziell in einem anderen Verzeichnis der Site) das Formular aufruft, bleiben die "cookie"-Felder leer.

Möglicherweise hast Du übersehen, daß per setcookies() gesendete Cookies standardmäßig nur für das aktuelle Verzeichnis des HTML-Objekts (hier: Deine Formularseite) und seine Unterverzeichnisse gelten. Setzt Du Deine Cookies in /anmelden/name.php, tauchen sie beispielsweise nur in /anmelden oder /anmelden/noch/tiefer auf, aber nicht in /forum/bla.

Problemlösung: Bitte konsultiere die entsprechende Seite der PHP-Anleitung, http://www.php.net/manual/de/function.setcookie.php, und informiere Dich über die Argumente zu setcookies().

Gruß,
  soenk.e