PHP und HTML-Code gemischt

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

  • PHP und HTML-Code gemischt

    Hallo,

    ich glaube, ich stehe gerade ziemlich auf dem Schlauch. Und zwar möchte ich PHP- und HTML-Code mischen:
    Code:
    <?php
    $cookie = $_COOKIE["ovl_dvdwissen"];
    if (strcmp($cookie, "1") == 0) {
    ?>
       Cookie bereits gesetzt<br>
    <?php
    } else {
       setcookie("ovl_dvdwissen","1",time()+(30)); // 3600 * 24 * 30: 30 Tage Lebenszeit
    ?>
       Cookie noch nicht gesetzt<br>
    <?php
    }
    ?>
    Meines Erachtens müsste ich eine der beiden Ausgaben bekommen, bekomme aber leider beide, also:
    Cookie bereits gesetzt
    Cookie noch nicht gesetzt

    Bin für jeden Hinweis dankbar!

    Grüße
    Stephan

  • #2
    Meinst du das?
    PHP-Code:
    <?php
    $cookie 
    $_COOKIE["ovl_dvdwissen"];
    if (
    strcmp($cookie"1") == 0) {
      echo 
    'Cookie bereits gesetzt<br>';

    else {
      echo 
    'Cookie noch nicht gesetzt<br>';
      
    setcookie("ovl_dvdwissen","1",time() + (30));
    }
    ?>
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von beginner123 Beitrag anzeigen
      Meines Erachtens müsste ich eine der beiden Ausgaben bekommen, bekomme aber leider beide
      Mit dem gezeigten Code kommt entweder die eine oder die andere.

      Das ist wohl nicht dein original Code, sondern ein verkürztes Beispiel?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Das ist genau das, warum ich gerade meine, ich bin völlig plemplem.

        Mein Code ist jetzt:

        Code:
        <?php
        $cookie = $_COOKIE["ovl_dvdwissen"];
        if (strcmp($cookie, "1") == 0) {
           echo 'Cookie bereits gesetzt<br>';
        } else {
           setcookie("ovl_dvdwissen","1",time()+(30)); // 3600 * 24 * 30: 30 Tage Lebenszeit
           echo 'Cookie noch nicht gesetzt<br>';
        }
        ?>
        und die Ausgabe:
        Cookie bereits gesetzt
        Cookie noch nicht gesetzt

        Also ihr meint auch, ich mache alles richtig?! Dann verstehe ich jetzt leider gar nix mehr.

        Kommentar


        • #5
          Kann es sein, dass du das irgendwo zweimal(!) machts? Das würde das Verhalten erklären.

          Peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Hallo Peter,

            nein, meine ganze Datei ist ziemlich minimal, nur für den Test mit den Cookies mal geschrieben:

            Code:
            <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
            <html>
            <head>
            <title>Mein Titel</title>
            </head>
            <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" alink="#FF0000" vlink="#FF00FF">
            
            <?php
            $cookie = $_COOKIE["ovl_dvdwissen"];
            if (strcmp($cookie, "1") == 0) {
               echo 'Cookie bereits gesetzt<br>';
            } else {
               setcookie("ovl_dvdwissen","1",time()+(30)); // 3600 * 24 * 30: 30 Tage Lebenszeit
               echo 'Cookie noch nicht gesetzt<br>';
            }
            ?>
            
            </body>
            </html>

            Kommentar


            • #7
              Du solltest zuerst mal dein error_reporting hochdrehen. Dann bekommst du auch schon einen Fehler angezeigt. Denn bei setcookie darf es vorher KEINE Ausgabe geben. Siehe dazu auch hier.

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Sorry, da habe ich "Ausgabe" tatsächlich als "echo" o.ä. interpretiert. Aber ist ja klar, alles andere ist natürlich auch eine Ausgabe für den Browser

                Ich hab´s also anders versucht:
                Code:
                <?php
                error_reporting (E_STRICT);
                $cookie = $_COOKIE["ovl_dvdwissen"];
                if (strcmp($cookie, "1") != 0) {
                   setcookie("ovl_dvdwissen", "1", time() + 30);
                ?>
                <!doctype html public "-//W3C//DTD HTML 4.0 //EN"><html><head><title>Mein Titel</title></head>
                <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" alink="#FF0000" vlink="#FF00FF">
                   Cookie war noch nicht gesetzt<br>
                <?php
                } else {
                ?>
                <!doctype html public "-//W3C//DTD HTML 4.0 //EN"><html><head><title>Mein Titel</title></head><body text="#000000" bgcolor="#FFFFFF" link="#0000FF" alink="#FF0000" vlink="#FF00FF">
                   Cookie bereits gesetzt<br>
                <?php
                }
                ?>
                </body>
                </html>
                Und bekomme leider wieder die beiden Ausgaben:
                Cookie war noch nicht gesetzt
                Cookie bereits gesetzt

                Kommentar


                • #9
                  Das ist nicht nachvollziehbar. Der Fehler muss woanders liegen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X