Björn: Resource id #2 Wo liegt mein Fehler!!???

Hallo,
ich habe auf einer Seite einen Cookie mit einer ID aus der Datenbank gesetzt!
Wenn ich nun auf die Startseite gehe, dann möchte ich mit dieser ID jeden User eindeutig identifizieren können!

if(isset($_COOKIE['mycookie']))
{
$dbcnx = @mysql_connect("localhost","root","");
if(!$dbcnx)
{
echo("<p>Zur Zeit keine Verbindung möglich.</p>");
exit();
}
if(!@mysql_select_db("tests"))
{
echo("<p>Auswahl der Datenbank leider nicht möglich!</p>");
exit();
}
$result=@mysql_query("SELECT 'username' FROM freunde WHERE ID=$mycookie");
if(!$result)
{
echo "Fehler: " . mysql_error()
}
echo ("Hallo $result! Du bist per Cookie erkannt worden.");
}

Der cookie wurde auf jeden Fall gesetzt!! Jedoch kann ich ihn nicht ansprechen! Oder eher gesagt, kann ich ihn in meiner sql Abfrage nicht benutzen!!! Wieso???
Es kommt immer nur "Hallo Resource id #2, ..."
Kann mir jemand helfen! Thx!!!

  1. Hallo Björn,

    $result=@mysql_query("SELECT 'username' FROM freunde WHERE ID=$mycookie");
    echo ("Hallo $result! Du bist per Cookie erkannt worden.");

    Du solltest dir mal anschauen, was mysql_query eigentlich zurückgibt - du bekommst nämlich nicht das ergebnis der Abfrage, sondern eine Ressourcen-Kennung (->http://de.php.net/mysql_query) mit der du dann z.B. mysql_fetch_assoc() füttern musst. Schau dir http://de.php.net/mysql_fetch_assoc mal an, und wenn du nicht weiterkommst, frag nochmal nach.

    btw: Was steht eigentlich in $mycookie drin? Meinst du $_COOKIE['mycookie']? Dann solltest du das auch hinschreiben, und vorallem musst du das was vom Benutzer kommt (also das was in $_POST, $_GET, $_REQUEST und in $_COOKIE steht) vor der Verwendung in Querys o.ä. entschärfen. In deinem Fall solltest du die Funktion mysql_escape_string() (http://de.php.net/mysql-escape-string) auf $_COOKIE['mycookie'] ansetzen.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  2. Hi,

    $result=@mysql_query("SELECT 'username' FROM freunde WHERE ID=$mycookie");

    ah, Du selektierst also einen String des Inhalts 'username' von einer Datenbank. Warum so umständlich? PHP ist in der Lage, Strings direkt zu verarbeiten.

    Es kommt immer nur "Hallo Resource id #2, ..."

    $result enthält eine Referenz auf eine Datenbankabfrage. Du musst erst das Resultset auslesen und analysieren, also in diesem Fall die erste Spalte der (vermutlich) ersten Zeile ermitteln.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes