heiko: Cookies erlaubt?

Hallo zusammen,
ich müsste für ein Spiel auf meiner HP wissen, ob
COOKIES erlaubt sind oder nicht.

Das Beispiel in SELFHTML:
-------------------------
<html><head><title>Test</title>
</head><body>

<script type="text/javascript">
if (navigator.cookieEnabled == true) {
  document.write("Cookies erlaubt");
} else if (navigator.cookieEnabled == false) {
  document.write("Cookies verboten.");
} else {
  document.write("Verrate ich nicht.");
}
</script>
</body></html>

Leider kann ich javascript nicht. Wie bekomme ich die Antworten
in einer Variable, die ich mit PHP auslesen kann? Und meines Wissens, darf ich doch nach '<html>...' keine Cookies mehr setzen, oder?

LG Heiko

  1. echo $begrüßung;

    ich müsste für ein Spiel auf meiner HP wissen, ob COOKIES erlaubt sind oder nicht.

    Das Einfachste ist, wenn du dir nicht solche pauschal unbeantwortbaren Fragen stellst. Clients sind in ihrem Cookie-Handling so flexibel, dass sie einzelne Cookies ablehnen können, andere jedoch annehmen.

    Wenn du einen Request mit Cookie bekommst, dann freu dich und mach was immer du damit machen willst. Sendet der Client einen Request ohne Cookie, dann reagiere so, wie du es für angemessen hältst. Zeige dem Anwender eine Login-Seite; weise ihn darauf hin, dass du Cookies verwendest und wofür; bitte den Anwender, deine Cookies zuzulassen; usw. usf.

    Du musst die Information des mitgesendeten Cookies sowieso in jedem Request neu auswerten. Es bringt dir keine Punkte, wenn du dir Pauschal irgendwo merkst: "Dieser Client mag Cookies". Da stellt sich nämlich gleich die nächste Frage, wie der Client eindeutig zu erkennen sei.

    Leider kann ich javascript nicht. Wie bekomme ich die Antworten in einer Variable, die ich mit PHP auslesen kann? Und meines Wissens, darf ich doch nach '<html>...' keine Cookies mehr setzen, oder?

    Javascript läuft auf dem Client, nachdem dieser eine Ressouce vom Server geladen hat. Es kann nun während der kompletten Laufzeit versuchen, dem Browser in dem es läuft, Cookies zu übergeben.

    PHP läuft auf dem Server und erzeugt ein Dokument bevor es an den Client ausgeliefert wird. Dabei können Cookie-Setz-Wünsche nur im HTTP-Header übertragen werden, der vor dem Inhalt der Ressource gesendet wird.
    Das Dokument mit dem Cookie-Setz-Wunsch ist nun beim Client. Wie kommt die Information, dass der Client diesen speziellen Cookie angenommen hat zurück zum Server? Nicht ohne einen erneuten Request seitens des Clients, bei dem er den Cookie mitsenden muss.

    echo "$verabschiedung $name";

    1. hi dedlfix
      und wie bitte sieht so ein "Request" aus?

      Etwa so:
      $antwort = file_get_contents('http://www.google.de');

      Na ich werde mir das mal in ruhigem anschauen, danke für deine hilfreichen Info's

      LG Heiko

      1. Hi Heiko!

        Du solltest die mal im Manual die Seiten über setcookie() und $_COOKIE anschauen.
        Es ist alles verständlich erklärt und nicht schwer anzuwenden. Solltest du trotzdem noch Fragen haben, kannst du die gerne stellen.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  2. Hallo,

    warum dem einen Problem (wird mein Cookie angenommen?) noch ein weiteres hinzufügen (Ist JavasScript eingeschaltet?)

    Du kannst die Akzeptanz von Cookies besser mit einem Redirect testen.

    Wenn jemand auf Deine Anmeldeseite klickt

    http://example.com/login/?stat=0

    dann setze den Cookie und leite ihn weiter auf

    http://example.com/login/?stat=1

    Kommt der Cookie an, bietest Du das Login (oder auch nur das Weiterarbeiten) mit einer "ganz normalen" Session an

    Wenn der Cookie dort nicht ankommt, kannst Du immer noch ohne Cookies arbeiten und die Erkennung mit Basic Auth anbieten. Dann ist aber die Anmeldung unumgänglich.

    LG
    Der Chris