Sp33dy G0nz4l3s: empty()

Hi,
ich habe ein Problem mit diesem Code:

  
//Counter  
if (empty($_COOKIE["hits"])){  
setcookie("hits");  
$sql = "UPDATE cocktails SET hits = hits + 1 WHERE name='".mysql_real_escape_string(str_replace("_", " ", $_GET['cocktail'])).  
"'";  
$result = mysql_query($sql);  
}  
///Counter

Das Problem ist, das PHP nicht erkennt wenn der Cookie gesetzt wurde.
Mir der Funktion empty() versuche ich zu prüfen ob der cookie existiert oder nicht.

Hoffe das ihr mir helfen könnt.

Danke

  1. Hallo Sp33dy.

    Mir der Funktion empty() versuche ich zu prüfen ob der cookie existiert oder nicht.

    Mit Cookies habe ich noch nie gearbeitet, aber vielleicht ist isset eher das, was du suchst.

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hallo Sp33dy.

      Mir der Funktion empty() versuche ich zu prüfen ob der cookie existiert oder nicht.

      Mit Cookies habe ich noch nie gearbeitet, aber vielleicht ist isset eher das, was du suchst.

      Einen schönen Samstag noch.

      Gruß, Mathias

      Danke für eure Antworten.

      Ich habe es jetzt einmal mit isset verscucht. Es geht allerdings auch nicht. Stimmt der Code so?

      //Counter  
      if (isset($_COOKIE["hits"]) && $_COOKIE["hits"] != "yes"){  
      setcookie("hits", "yes");  
      $sql = "UPDATE cocktails SET hits = hits + 1 WHERE name='".mysql_real_escape_string(str_replace("_", " ", $_GET['cocktail'])).  
      "'";  
      $result = mysql_query($sql);  
      }  
      ///Counter
      
  2. Hi!

    //Counter
    if (empty($COOKIE["hits"])){
    setcookie("hits");
    $sql = "UPDATE cocktails SET hits = hits + 1 WHERE name='".mysql_real_escape_string(str_replace("
    ", " ", $_GET['cocktail'])).
    "'";
    $result = mysql_query($sql);
    }
    ///Counter

    
    >   
    > Das Problem ist, das PHP nicht erkennt wenn der Cookie gesetzt wurde.  
    > Mir der Funktion empty() versuche ich zu prüfen ob der cookie existiert oder nicht.  
      
    Wenn die Annahme von Cookies zugelassen ist, dann existiert dein Cookie nach der Ausführung dieses Codes wohl, aber vermutlich steht in $\_COOKIE["hits"] nichts drin...  
    Du schreibst ja gar keinen Wert in das Cookie. Oder tust du das irgendwo anders?  
    Ich sehe nur ein Update in deiner Datenbank.  
      
    Bei diesem Code wird die Funktion empty() immer true zurückgeben.  
    Schau dir im PHP-Handbuch mal die Funktion [setcookie()](http://de.php.net/setcookie) an.  
    Wenn du möchtest, daß in deinem Cookie auch was drin steht, dann mußt du mit dem zweiten Parameter auch einen Wert übergeben.  
      
    Schöner Gruß,  
    rob