platsch: MYSQL abfrage hat fehler?! HILFE !!!

moin,
ich hab ein keine problem.. ich hab vor diesem Skript ein formular in zwei dateien.. (login.php).. dieser über gibt die var. "senduser" und "senduserpass" koreckt... das sehenich an dem aufruf echo()..

in der datenbank ist es auch drin..

ich denke das es mit der abfrage zusammen hängt weil ab da werden daten als LEER weiter gegeben.. und so mit kommt NEIN raus..

ist irgend was falsch in dem teil ??? ich finde den fehler nicht :-/

PS: xxxxx ist eine urlel die ich icht nicht angeben möchte...

<?
$user=$HTTP_POST_VARS["senduser"];
$userpass=$HTTP_POST_VARS["senduserpass"];

echo("
$user:$userpass<br>
");

include("http://xxxxx/script/mysqlverbindung.script");
$anfrage=mysql_query("SELECT * FROM useraccountdatenbank WHERE 1 AND kuerzel LIKE '$user';");
while ($punkt=mysql_fetch_array($anfrage))
{
$sqluser=$punkt["kuerzel"];
$sqluserpass=$punkt["kuerzelpasswort"];
$sqlkundennummer=$punkt["kundennummer"];
$sqllastlogin=$punkt["lastlogin"];
$sqlstatus=$punkt["status"];

echo("
<tt><i><b>$sqluser:$sqluserpass</b></i></tt><br>
");
};

echo("
<tt><i><b>$sqluser : $sqluserpass</b></i></tt><br><br><br>
");

if ($user == "$sqluser")
{
echo("JA");
 if ($userpass == "$sqluserpass")
 {
 echo("nein");
 }
 else
 {
 echo("ja");
 };
}
else
{
echo("NEIN");
};

?>

  1. Hallo platsch,

    ich denke das es mit der abfrage zusammen hängt weil ab da werden daten als LEER weiter gegeben..

    was meinst du damit?

    $user=$HTTP_POST_VARS["senduser"];
    $userpass=$HTTP_POST_VARS["senduserpass"];

    welche php-Version hast du? Wenn du eine >=4.1 hast solltest du nicht $HTTP_POST_VARS verwenden, sondern $_POST (Stichwort register_globals) - und wenn du eine <4.1 hast, solltest du updaten und auch $_POST verwenden :-)

    include("http://xxxxx/script/mysqlverbindung.script");

    was steht in dieser Datei drin? Die Verbindungsdaten und der Verbindungsaufbau zur mysql-Datenbank? Dann würde ich dir _dringend_ raten diese Datei zumindest so umzubenennen, dass sie nicht als Klartext ausgegeben wird, wenn man sie aufruft (Dateien mit unbekannter Endung werden afaik als text/plain ausgeliefert). Häng also zumindest '.php' an den Dateinamen, oder - besser - verschiebe sie in ein Verzeichnis, das per http nicht erreichbar ist.

    $anfrage=mysql_query("SELECT * FROM useraccountdatenbank WHERE 1 AND kuerzel LIKE '$user';");

    lass mich raten: phpmyadmin? die Backticks ("`") kannst du weglassen genauso wie das '1 AND' in der WHERE-Klausel überflüssig ist. Das LIKE ist imho auch überflüssig - ein "WHERE kuerzel = '$user'" reicht. Der Strichpunkt am Ende sollte laut http://de3.php.net/mysql_query nicht verwendet werden. Außerdem ist 'SELECT *' unschön: http://dclp-faq.de/q/q-sql-select.html.

    while ($punkt=mysql_fetch_array($anfrage))

    was sagt denn ein
     echo mysql_num_rows($anfrage);
    ? das sollte müsste eigentlich 1 ausgeben wenn du Usernamen nicht doppelt vergeben hast. (womit du auch keine Schleife mehr brauchst)

    echo("
    <tt><i><b>$sqluser:$sqluserpass</b></i></tt><br>

    wieviele Datensätze gibt das aus?

    echo("
    <tt><i><b>$sqluser : $sqluserpass</b></i></tt><br><br><br>

    steht hier der eingegebene Name/das eingegebene Passwort drin? (es sollte so sein, da das die Werte sind mit denen dann verglichen wird)

    if ($user == "$sqluser")

    die Anführungszeichen sind überflüssig

    echo("NEIN");

    ohne die Ausgaben und evtl den Datenbankinhalt ist es etwas schwer zu sagen, wo es genau hängt - eine url unter der man sich das anschauen kann wäre deswegen hilfreich.

    Grüße aus Nürnberg
    Tobias

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