MySQL auslesen und vergleichen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anmelden
argument
auslese
benutzer
bereich
code
datenbank
einfachheit
ernsthaft einsetzen
fehler
flop
host
index
login
meldung
not
registrierung
test
url
volltext
-
Hier ist der Quelltext dafür. Ich will des es mir die benutzer ausliest und mit der eingabe vergleicht, das selbe beim passwort.
Weshalb kommt dort immer flop heraus
<html> <head> <title> Titel </title> </head> <body> <h1>Login</h1> <p>Loggen sie sich bitte ein, um in den geschützten Bereich zu kommen. </p> <form action="index.php" method="post"> <p><input name="lguser" maxlength="10"/> User</p> <p><input name="pass" maxlength="32" type="password"/> Passwort</p> <p><input type="submit" name="send"/> <input type="reset"/> </p> </form> <p>Falls sie sich noch nicht registriert haben, können sie sich hier anmelden:</p> <p><a href="/reg.php" value="Hier"/>Hier gehts zur Registrierung</p> <?php include "mysqlconfig.inc.php"; mysql_connect($host,$mysqluser,$mysqlpw); mysql_select_db(db_xxxxxx_1); $sqlfr = "SELECT `User` FROM `db_xxxxxx_1`.`user_tgt` "; $benutzer = mysql_query($sqlfr); $duser = mysql_fetch_assoc($benutzer); $sqlfrpw = "SELECT `PW` FROM `db_xxxxxx_1`.`user_tgt` "; $passwort = mysql_query($sqlfrpw); $dpw = mysql_fetch_assoc($passwort); if (isset($_POST["send"])) { if ($duser == $_POST['lguser'] AND $dpw == $_POST['pass'] ) { echo "top"; } else { echo "flop"; } } ?> </body> </html>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Irgendwie komisch, dass du dazu 2 Abfragen machst.
Wie wärs damit:
$query = "SELECT * FROM `user_tgt` WHERE `PW` = ".md5($passwort)." AND `User` = ".mysql_real_escape_string($user); $sql = mysql_query($query);
In dem Beispiel geh ich davon aus dass du das Passwort MD5 - gehasht hast. Falls du das anders gemacht hast musst dus anpassen.
Wenn du nun die Rückgabe auswerten willst, kannst du mit
$row = mysql_fetch_array($sql);
eine Zeile in $row einlesen. Wenn du nun $row['User'] ausgibst, dann sollte der sich einloggende User dastehn ... falls denn das PW richtig war :D
Ungetesteter Code
Grüße Chris -
ah thx aber da kommt ein fehler
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/se65jrj67/html/index.php on line 30
Hier nochmal der abgeänderte Code:
<html> <head> <title> Titel </title> </head> <body> <h1>Login</h1> <p>Loggen sie sich bitte ein, um in den geschützten Bereich zu kommen. </p> <form action="index.php" method="post"> <p><input name="lguser" maxlength="10"/> User</p> <p><input name="pass" maxlength="32" type="password"/> Passwort</p> <p><input type="submit" name="send"/> <input type="reset"/> </p> </form> <p>Falls sie sich noch nicht registriert haben, können sie sich hier anmelden:</p> <p><a href="/reg.php" value="Hier"/>Hier gehts zur Registrierung</p> <?php include "mysqlconfig.inc.php"; mysql_connect($host,$mysqluser,$mysqlpw); mysql_select_db(db_xxxxxx_1); $query = "SELECT * FROM `user_tgt` WHERE `PW` = ".md5($passwort)." AND `User` = ".mysql_real_escape_string($user); $sql = mysql_query($query); $row = mysql_fetch_array($sql); if (isset($_POST["send"])) { if ($row['User'] == $_POST['lguser'] AND $row['PW'] == $_POST['pass'] ) { echo "top"; } else { echo "flop"; } } ?> </body> </html>
Beitrag zuletzt geändert: 14.4.2010 17:56:23 von se65jrj67 -
$query = "SELECT * FROM `user_tgt` WHERE `PW` = '".md5($passwort)."' AND `User` = '".mysql_real_escape_string($user)."'";
Ansonsten bitte mysql_error() ausgeben
EDIT:
btw, müsste des net
mysql_select_db("db_xxxxxx_1");
heißen, wenns n String is, des db_xxxxxx_1 ? :D
Beitrag zuletzt geändert: 14.4.2010 18:00:45 von dapizzafressa -
hmm da erscheint immernoch flop obwohlich den user und das passwort richtig eingebe habs jetzt mal der einfachheit halber ohne md5 gemacht.
des mit
passt glaub schon so hab ichs mal bei der registrierung gemacht und da klappts^^mysql_select_db(db_xxxxxx_1);
hier nochmal der code:
<html> <head> <title> Titel </title> </head> <body> <h1>Login</h1> <p>Loggen sie sich bitte ein, um in den geschützten Bereich zu kommen. </p> <form action="index.php" method="post"> <p><input name="lguser" maxlength="10"/> User</p> <p><input name="pass" maxlength="32" type="password"/> Passwort</p> <p><input type="submit" name="send"/> <input type="reset"/> </p> </form> <p>Falls sie sich noch nicht registriert haben, können sie sich hier anmelden:</p> <p><a href="/reg.php" value="Hier"/>Hier gehts zur Registrierung</p> <?php include "mysqlconfig.inc.php"; mysql_connect($host,$mysqluser,$mysqlpw); mysql_select_db(db_xxxxxx_1); $query = "SELECT * FROM `user_tgt` WHERE `PW` = ' ".$passwort."' AND `User` = ' ".mysql_real_escape_string($user)." ' "; $sql = mysql_query($query); $row = mysql_fetch_array($sql); if (isset($_POST["send"])) { if ($row['User'] == $_POST['lguser'] AND $row['PW'] == $_POST['pass'] ) { echo "top"; } else { echo "flop"; } } ?> </body> </html>
-
Schreib mal bitte nach dem
$sql = mysql_query($query);
ein
echo mysql_error();
Und nehm zwischen den " und den ' die Leerzeichen raus -
die datenbank / Tabellle die du auslesen willst ist Leer so wie ich die Fehler Meldung verstanden habe.
Mach mal ein Test Beitrag rein und probiere es nochmal.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/se65jrj67/html/index.php on line 30
-
dapizzafressa schrieb: Schreib mal bitte nach dem
$sql = mysql_query($query);
ein
echo mysql_error();
gemacht passiert nix
Und nehm zwischen den " und den ' die Leerzeichen raus
hab ich nur gemacht weils in codefenster beim erstellen n bisschen unübersichtlich war^^
privatecitypage schrieb: die datenbank / Tabellle die du auslesen willst ist Leer so wie ich die Fehler Meldung verstanden habe.
Mach mal ein Test Beitrag rein und probiere es nochmal.
in der datenbank steht test - test drin habs probiert geht auch net
User varchar(12) latin1_swedish_ci Nein Kein Zeige nur unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext PW varchar(32) latin1_swedish_ci Nein Kein Zeige nur unterschiedliche Werte Ändern Löschen Primärschlüssel Unique Index Volltext
sind die einstellungen von der tabelle vll liegt da der felhler
könnt ja auch die seite gehn http://se65jrj67.lima-city.de/ Ist auch meinem Webspace
-
:-/ Du weißt schon das man mysql_fetch_assoc anders benutzt.
<html>
<head>
<title> Titel </title>
</head>
<body>
<h1>Login</h1>
<p>Loggen sie sich bitte ein,
um in den geschützten Bereich zu kommen.
</p>
<form action="index.php" method="post">
<p><input name="lguser" maxlength="10"/> User</p>
<p><input name="pass" maxlength="32" type="password"/> Passwort</p>
<p><input type="submit" name="send"/>
<input type="reset"/>
</p>
</form>
<p>Falls sie sich noch nicht registriert haben, können sie sich hier anmelden:</p>
<p><a href="/reg.php" value="Hier"/>Hier gehts zur Registrierung</p>
<?php
if (isset($_POST["send"]))
{
include "mysqlconfig.inc.php";
mysql_connect($host,$mysqluser,$mysqlpw);
mysql_select_db(db_xxxxxx_1);
$query = "SELECT * FROM `user_tgt` WHERE `PW` = ".md5($passwort)." AND `User` = ".mysql_real_escape_string($user);
$result = mysql_fetch_object($query) or $var = 1;
if($var == 1)
{
echo("FLOP");
} else {
echo("TOP");
}
}
?>
</body>
</html>
Probiere es mal so.
Beitrag zuletzt geändert: 15.4.2010 1:39:58 von privatecitypage -
@se65jrj67
... Weshalb kommt dort immer flop heraus ...
yo mey!
da steht im kode:
das heißt dann $duser und $dpw sind arrays und genau darum kann$duser = mysql_fetch_assoc($benutzer); ... $dpw = mysql_fetch_assoc($passwort);
nie erfüllt sein;o)if ($duser == $_POST['lguser'] AND $dpw == $_POST['pass'] ) {
probier mal das (**** NICHT GETESTET! ****):
und falls nötig poste die fehlerausgabe.<html> <head> <title> Titel </title> </head> <body> <h1>Login</h1> <p>Loggen sie sich bitte ein, um in den geschützten Bereich zu kommen. </p> <form action="index.php" method="post"> <p><input name="lguser" maxlength="10"/> User</p> <p><input name="pass" maxlength="32" type="password"/> Passwort</p> <p><input type="submit" name="send"/> <input type="reset"/> </p> </form> <p>Falls sie sich noch nicht registriert haben, können sie sich hier anmelden:</p> <p><a href="/reg.php" value="Hier"/>Hier gehts zur Registrierung</a></p> <?php include "mysqlconfig.inc.php"; mysql_connect ($host, $mysqluser, $mysqlpw); $db = "db_xxxxxx_1"; $tb = "user_tgt"; // das kannst weglassen, steht im query in der var $db //mysql_select_db(db_xxxxxx_1); if ( isset ($_POST["send"]) ) { $q = "-- query v1-2010-04-15 select trim(User) User, trim(PW) PW from $db.$tb where User='".trim($_POST['lguser'])."' and PW='".trim($_POST['pass'])."'"; // if error, exit! if ( !$r = mysql_query ($q) ) {exit ("<h3>ERROR:</h3>".mysql_errno()."<br />".mysql_error());} // show result while ( $row = mysql_fetch_assoc ($r) ) {foreach ( $row as $k => $v ) {echo "<p>$k = $v</p>";}} } ?> </body> </html>
nebenbei: dein anchor
war nicht geschlossen (ab da war natürlich alles ein link ;o)<p><a href="/reg.php" value="Hier"/>Hier gehts zur Registrierung</p>
noch ein ratschlag:
so was nebuloses wie 'top'/'flop' kannst für testzwecke nicht ernsthaft einsetzen. dich sollte nur die exakte fehlermeldung interessieren [siehe im kode]! -
@ privatecitypage geht leider net
@ czibere scheint zu funktionieren wers mal noch bisschen verändern
danke an alle die mir geholfen haben und helfen wollten -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage