Wieso geht das nicht?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anfrage
anliegen
code
fehler
fehlerhaft code
fehlermeldung
glauben
http
login
problem
schleife
semikolon
setzen
stehen
vergeben
vergessen
versuch
zeile
zuweisung
-
Hallo
Ich habe ein bl?des Problem, und wei? nicht, wo der Fehler liegt!
if($action=="login") {
session_start();
include("mysql.php.inc");
$res1=mysql_query("SELECT * FROM users WHERE username = '$name'");
while($row=mysql_fetch_array($res1)) {
$pw_db="$row[pw]";
echo "$pw_db";
}
if($pw_db=="$pw_user") {
$_SESSION[loginid]="$row[id]";
echo "Klicke <a href='ingame/index.php'>hier</a>.";
}
else {
echo "<font color='red'>Login Fehlerhaft!</font>";
}
}
Die Zugangsdaten sind korrekt, doch es kommt immer der Text "Login Fehlerhaft!"
Aber warum? Wenn ich kein Passwort in der DB benutze, dann geht es, doch wenn ich eines nutze, und dass Passwort in der Variable "$pw_user" so wie in der Datenbank ist, geht es nicht...
Warum nicht?
bis dann,
scripter -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hier sind zB 2 Fehler.
$pw_db="$row[pw]";
echo "$pw_db";
Variablen werden nicht in Hochkommas geschrieben.
Richtig w?re
$pw_db = $row[pw];
echo $pw_db; -
Hallo
Es liegt aber nicht daran. Dass mit dem Ausgeben ist eine reine ?berpr?fungssache. Das Problem ist, dass die While-Schleife garnicht ausgef?hrt wird ?!
Dass ist ja das komische.. Ist mir gerade aufgefallen!
bis dann,
scripter -
$res1=mysql_query("SELECT * FROM users WHERE username = '$name'");
Hier hast du das Semikolon in der MySQL-Abfrage vergessen.
Richtig:
$res1=mysql_query("SELECT * FROM users WHERE username = '$name';");
Das mit dem Semikolon stimmt glaube ich nciht.
Lass des mal lieber weg -
Woher weist du, dass die while schleife nicht ausgef?hrt wird?
-
du darst die variablen eben nicht in "" setzten
Ausserdem stimmt deine ABfrage nicht
versuchs mal so:
if($action=="login") { session_start(); include("mysql.php.inc"); $res1=mysql_query("SELECT * FROM users WHERE username = '".$name:"'"); while($row=mysql_fetch_array($res1)) { $pw_db = $row[pw]; echo $pw_db; } if($pw_db == $pw_user) { $_SESSION[loginid] = $row[id]; echo "Klicke <a href='ingame/index.php'>hier</a>."; } else { echo "<font color='red'>Login Fehlerhaft!</font>"; } }
Beitrag ge?ndert am 25.01 21:01 von korbiw -
Das mit dem Semikolon stimmt glaube ich nciht.
Lass des mal lieber weg
Also bei mir haben SQL-Anfragen ohne Semikon noch nie funktioniert. Soweit ich wei? muss jede SQL-Abfrage mit einem ; geschlossen werden. Du kannst den Query ja mal bei PHPMyAdmin auf http://mysql.lima-city.de eingeben. Dann siehst du ja, ob eine Fehlermeldung kommt. -
Hallo.
Da kommt das gleiche bei Raus! Ich glaube nicht, dass es an den " liegt, sondern an der MySQL-Abfrage?!
bis dann,
scripter -
Das mit dem Semikolon stimmt glaube ich nciht.
Lass des mal lieber weg
Also bei mir haben SQL-Anfragen ohne Semikon noch nie funktioniert. Soweit ich wei? muss jede SQL-Abfrage mit einem ; geschlossen werden. Du kannst den Query ja mal bei PHPMyAdmin auf http://mysql.lima-city.de eingeben. Dann siehst du ja, ob eine Fehlermeldung kommt.
Das stimmt nicht ganz
Wenn man die ABfrage so macht, muss ein Semicolon stehen, aber weil es php code ist, der ja immer von einem Semicolon abgeschlossen werden muss.
$abfrage = "SELECT * FROM users WHERE username = '$name'";
$res1=mysql_query($abfrage)
Bei dieser Methode ist ja das Semicolon am Ende der Zeile
$res1=mysql_query("SELECT * FROM users WHERE username = '$name'");
@ scripter Poste doch nochmal den Code, wie er jetzt ausschaut -
du darst die variablen eben nicht in "" setzten
Ausserdem stimmt deine ABfrage nicht
versuchs mal so:
if($action=="login") { session_start(); include("mysql.php.inc"); $res1=mysql_query("SELECT * FROM users WHERE username = '".$name."'"); while($row=mysql_fetch_array($res1)) { $pw_db = $row[pw]; echo $pw_db; } if($pw_db == $pw_user) { $_SESSION[loginid] = $row[id]; echo "Klicke <a href='ingame/index.php'>hier</a>."; } else { echo "<font color='red'>Login Fehlerhaft!</font>"; } }
Beitrag ge?ndert am 25.01 21:01 von korbiw
Hatte einen Fehler so m?sste er aber stimmen
Beitrag ge?ndert am 25.01 21:08 von korbiw -
Hallo.
Geht auch nicht
bis dann,
scripter
EDIT: Ooohhh man, bin ich bl?d!!! ARGH!!! Kein Wunder -.- Ich hab die Falsche DB connectet -.-
Beitrag ge?ndert am 25.01 21:11 von scripter -
ich hab nur mal die zeilen genommen, die einer ?nderung bed?rfen:
$res1=mysql_query("SELECT * FROM users WHERE username = '".$name."';");
//das symikolon nach der sql abfrage muss nicht stehen, sollte man aber setzen.
$row=mysql_fetch_array($res1))
if($row['pw']==$pw_user) {
$_SESSION['loginid']=$row['id'];
}
die while schleife kannst du dir sparen, da ich mal davon ausgehe, dass jeder benutzername nur einmal vergeben ist. die indizes m?ssen in anf?hrungszeichen stehen. variablen bei zuweisungen und ausdr?cken jedoch nicht.
-
poste doch nochmal den code wie er jetzt ist
-
Bist ja eigentlich schon lange genug dabei, aber manche checken es immer noch ned:
Ein Thread-Name "Warum geht das nich???" Hilft mal GAR NIX.
Schreibt doch bitte genau, worum es geht.
Edit jacr
Hast zwar recht, aber es geh?rt nicht zum Thema.
Schreib ihn doch ne PM, dann bekommt er dein Anliegen auch mit.
Beitrag ge?ndert am Tue 25.01.2005 21:29 von jacr -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage