Cookie gesetzt aber if isset Abfrage läuft nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cookie gesetzt aber if isset Abfrage läuft nicht

    Hallo,

    ich glaube ich sehe den Wald vor lauter Bäume nicht. Seit Stunden probiere ich an dem kleinen Script.

    Das Cookie wird zwar gespeichert, aber die Abfrage funktioniert nicht. Egal was ich probiere, entweder das IFRAME wird IMMER oder GAR NIE angezeigt. Es soll aber wie beim Cookie üblich nur beim ersten Seitenaufruf angezeigt werden.

    PHP-Code:
    <?php
       setcookie
    ('hidediv''1'time() + (3*24*60*60), '/');
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <head>
    und später:

    PHP-Code:
    <?php
    if(!isset($_COOKIE['hidediv'])) { 
    echo 
    '';        
        } else {
    echo 
    '<iframe src="bla bla blubb" width="250" height="250" scrolling="no" border="0" marginwidth="0" frameborder="0"></iframe>';    
    }
    ?>
    Angeblich soll auch if (isset($_COOKIE['hidediv'])) funktionieren aber tut es nicht.

    Hier wurde es komischerweise umgedreht gemacht, bringt aber keine Änderung:
    https://forum.bplaced.net/t/div-nur-...ber-wie/4315/4

    Das als Beispiel funktioniert auch nicht: https://www.w3schools.com/php/php_cookies.asp
    Zuletzt geändert von einserpirelli; 08.03.2017, 10:52.

  • #2
    Doku lesen hilft manchmal:
    Sind die Cookies einmal gesetzt, können Sie beim nächsten Seitenaufruf anhand des $_COOKIE Arrays auf diese zugreifen.

    Kommentar


    • #3
      Das hab ich doch geschrieben. Beim ersten Aufruf der Seite soll der IFRAME
      angezeigt werden, beim nächsten nicht mehr. Funktioniert aber nicht.

      Beim NÄCHSTEN SEITENAUFRUF müsste ja die isset abfrage greifen und
      das IFRAME nicht mehr angezeigt werden.

      entweder das IFRAME wird IMMER oder GAR NIE angezeigt. Es soll aber wie beim Cookie üblich nur beim ersten Seitenaufruf angezeigt werden.

      Kommentar


      • #4
        Zitat von einserpirelli Beitrag anzeigen
        Das als Beispiel funktioniert auch nicht: https://www.w3schools.com/php/php_cookies.asp
        Dort ist auch ein Fehler drin, denn die Zeile

        <!DOCTYPE html>

        vor setcookie stört, hier die funktionierende Version:

        PHP-Code:
        <?php
        $cookie_name 
        "user";
        $cookie_value "John Doe";
        setcookie($cookie_name$cookie_valuetime() + (86400 30), "/"); // 86400 = 1 day
        ?>
        <!DOCTYPE html>
        <html>
        <body>

        <?php
        if(!isset($_COOKIE[$cookie_name])) {
             echo 
        "Cookie named '" $cookie_name "' is not set!";
        } else {
             echo 
        "Cookie '" $cookie_name "' is set!<br>";
             echo 
        "Value is: " $_COOKIE[$cookie_name];
        }
        ?>

        <p><strong>Note:</strong> You might have to reload the page to see the value of the cookie.</p>

        </body>
        </html>

        Kommentar


        • #5
          Ok. Jetzt weiss ich warum das Beispiel w3schools nicht funktioniert.

          Aber was ist an meinem Code oben falsch? Der IFRAME wird nie angezeigt
          auch nicht beim ersten Aufruf, wo der Cookie ja erst gesetzt wird.

          Kommentar


          • #6
            Poste mal den vollständigen Quellcode

            Kommentar


            • #7
              Ich habe das jetzt mal so gelöst. Scheint zu funktionieren.

              PHP-Code:
              <?php
                  
              if(!isset($_COOKIE['hidediv'])) {
                  
              setcookie('hidediv''1'time() + (3*24*60*60), '/');
                  echo 
              'bla bla bla'; }
              ?>
              ist das richtig, dass die "else"-Schleife entfallen kann?

              Kommentar

              Lädt...
              X