PHP: prüfen, ob Cookie gesetzt werden konnte
Geizhals » Forum » Programmierung » PHP: prüfen, ob Cookie gesetzt werden konnte (27 Beiträge, 252 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
PHP: prüfen, ob Cookie gesetzt werden konnte
21.03.2004, 17:39:28
Hi,

ich beschäftige mich erst seit ca. 2 Wochen mit PHP, daher bin ich noch nicht sehr sattelfest ...

Folgendes Testscript funktioniert ja schon ganz nett, hat aber noch einen Haken:
<?php
if(!isset($_COOKIE ['cookSession'])) {
  // wenn kein Cookie vorhanden, dann setzt einen!
  setcookie ('cookSession', uniqid (''), time () + 60 * 5);
}
if(isset($_POST ['frm_send']) and !isset($_COOKIE ['cookSession'])) {
  // wenn Formular gesendet und kein Cookie vorhanden ->
  // Cookie konnte nicht gesetzt werden -> Meldung!

  echo '<p><font color="red">Entweder unterstützt Ihr Browser ',
       'keine Cookies oder Sie haben diese Funktion deaktiviert.';
}
if(isset($_POST ['frm_send']) and isset($_COOKIE ['cookSession'])) {
  // zu Testzwecken SessionID aus Cookie ausgeben
  echo '<p><font color="green">',
       htmlspecialchars ($_POST ['frm_name']),
       ' hat die SessionID: ',
       $_COOKIE ['cookSession'],
       ' bekomen</font></p>';
  // später beispielsweise ein redirect
  // header('Location: http: //www.example.com/');

  exit;
}
?>
<form method="post" action="<?php echo $_SERVER ['PHP_SELF']; ?>">
<input name="frm_name" type="text" size="20"
value="<?php if(isset ($_POST ['frm_name']))
  echo htmlspecialchars ($_POST ['frm_name']); ?>"><br>
<input name="frm_send" type="submit" value=" Senden ">
</form>
// Nicht über die eigenwillige Klammersetzung wundern,
// ging hier nicht anders

Wird das Cookie vom Benutzer abgelehnt, erscheint nicht sofort die Meldung, das Cookies vom Browser nicht unterstützt werden und bla, bla ..., sondern das Formular muß zumindest einmal abgeschickt werden (klar, das frag ich ja auch ab).
Lass ich allerdings die "Formular gesendet"-Abfrage weg, kommt die Meldung immer, auch wenn der User das Cookie angenommen hat (auch klar).

Warum dieses "Problem" auftritt, weiß ich ja schon: das Cookie wird beim Anzeigen der Seite gesetzt; der Client kann die, im Cookie gespeicherten, Daten erst bei darauf folgenden Requests an den Server senden.

Schön und gut, aber wie umgehe ich diesen Umstand, damit mein Script funktioniert?

Jemand eine Idee?
 
NubsiHalte dir jeden Tag dreissig Minuten für deine Sorgen frei,
und in dieser Zeit mache ein Nickerchen.Abraham Lincoln
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.....  Re(5): HTML Syntax Highlighting mit PHP  (Nubsi am 23.03.2004, 17:50:47)
......  Re(6): HTML Syntax Highlighting mit PHP  (Xane am 23.03.2004, 18:04:01)
.......  Re(7): HTML Syntax Highlighting mit PHP  (Nubsi am 23.03.2004, 20:03:30)
........  Re(8): HTML Syntax Highlighting mit PHP  (Xane am 23.03.2004, 20:05:43)
.........  Re(9): HTML Syntax Highlighting mit PHP  (Nubsi am 24.03.2004, 15:08:03)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung