Cookie gesetzt aber if isset Abfrage läuft nicht

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by einserpirelli; 08-03-2017, 09: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.

    Comment


    • #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.

      Comment


      • #4
        Originally posted by einserpirelli View Post
        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>

        Comment


        • #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.

          Comment


          • #6
            Poste mal den vollständigen Quellcode

            Comment


            • #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?

              Comment

              Working...
              X