• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tabelle auslesen ... MYSQL

BDG

Mitglied
Hi Leute ...
Ich arbeite gerade an einem Login system mit Mysql.
Also das die usersich in eine Tabelle IN einer datenbank eintragen können habe ich schon geschafft nur jetzt will ich das sie ihren Username und Passwort eingeben können und sich dann einloggen können ... Ein HTML Formular hab ich schon gemacht :
HTML:
<html>
<head>
<title>login</title>
</head>
<body>
<form action="login1.php" method="post">
Dein Benutzername:<br>
<input type="text" size="14" maxlength="35"
name="benutzername"><br>
Dein Passwort:<br>
<input type="password" size="14" maxlength="35"
name="passwort"><br><br>
<input type="submit" value="     Login     ">
</form>
</body>
</html>
Nur leider habe ich garkeine Ahnung wie ich das jetzt machen soll in php das überprüft wird ob dieser Username auch in der Tabelle vorhanden ist und ob das Passwort stimmt ...
Ich hoffe ihr könnt mir helfen ...
 
Werbung:
die ersten beiden links waren zu schwer und der 3te zu leicht ... hat jemand vlt. auch ein lgoin system mit myasql ?? ich will ja nur das wenn die daten die im formular eingegeben wurden exestiren und richtig sind das man das eingeloggt wird bzw. zu einer anderen seite geführt wird ... Also hat jemand gleich soeinen Code wo ich nurnoch meine db und tabelle eintragen muss und das andere ??
Würde mir vieles erleichtern ... THX im voraus :)
 
Werbung:
Werbung:
Also ich habs nach dem Internet tutorial gemacht nur das md5 rausgenommen ...
Und der Code der html datei ist jetzt so :
HTML:
<html>
     <head>
  <title>Test...</title>
  </head>
  <body>
<form action="login.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>
Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="password"><br>
<input type="submit" value="Login">
</form>
 
     </body>
</html>
Und meine login.php sieht so aus :

Code:
<?php 
$verbindung = mysql_connect("localhost", "root" , "") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("test5") or die ("Datenbank konnte nicht ausgewählt werden"); 
$username = $_POST["username"]; 
$passwort = ($_POST["password"]); 
$abfrage = "SELECT username, passwort FROM test5 WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 
if($row->passwort == $passwort) 
    { 
    $_SESSION["username"] = $username; 
    echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>"; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 
?>
Und jetzt sagt er wenn ich mich einloggen will das in login.php in zeile 13 ein error ist ...
Und ds ist die : $row = mysql_fetch_object($ergebnis);
weißjemand was an dem code falsch ist ?? Irgendein Fehler ??
Also meine db heist test5 und meine tabelle heist auch test5 und mehr hab ich dann irgendwie glaub auch nicht zu sagen ....
 
Falls ihr den erro sehen wollt :
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Login\Login.php on line 13
Benutzername und/oder Passwort waren falsch. Login
 
Vermutung: das Statement ist falsch. Um das rauszufinden schreib mal:

Code:
$ergebnis = mysql_query($abfrage) or die("Statement fehlerhaft: ".$sql);

Wenn es fehlerhaft ist solltest Du eine Ausgabe "Statement fehlerhaft: " gefolgt von dem Statement erhalten. Kopiere das in den phpmyadmin und führe es dort direkt auf der Datenbank aus. Dann solltest Du herausfinden wo der Fehler liegt.
 
Werbung:
Prüf mal $ergebnis auf NULL. bzw lass dir einfach mal ausgeben. Menetwegen per var_dump.
var_dump($ergebnis);
Und lass die query einfach mal in phpmyadmin laufen. ansonsten kannst du super debuggen, in dem du dir die einzelnen schritte ausgeben lässt :)
 
aha ... ähhhm ... also verstanden hab ich das jetzt nicht ... weißt du denn den fehler ??? Oder jemand anderes ?
 
aha ... ähhhm ... also verstanden hab ich das jetzt nicht ... weißt du denn den fehler ??? Oder jemand anderes ?
Ohne zu Wissen wie dein SQL Befehl aussieht, "weiß" niemand den Fehler. Aber threadi hat dir schon gezeigt, wie du den ausgeben lassen kannst.

Und - du musst aufpassen, was du da machst ist eine Sicherheitslücke und ermöglicht über SQL Injection dein System zu schädigen, wenn das Skript über's Internet erreichbar ist.
 
Werbung:
also der sql befehl is ja wohl dieser :
SELECT username, passwort FROM test5 WHERE username LIKE '$username' LIMIT 1
und also in der db ist in der tabelle ein eintrag ...
id : 2
benutzername : bastilo
passwort : 123456
und benutzername und passwort geb ich dann halt ein und dann kommt der error den ich oben schon gepostet habe ...
 
also der sql befehl is ja wohl dieser :
SELECT username, passwort FROM test5 WHERE username LIKE '$username' LIMIT 1
Nein das ist nicht der Befehl und wenn, dann wird er nichts finden, es sei denn du hast einen User der "$username" heißt. Wie auch immer, threadi hat dir doch gezeigt wie du einen Fehler abfängst und analysierst, warum machst du nicht das was man dir empfiehlt?
 
ähhhm also ich hab jedenfalls nochmal gegooglet und verbessert ein paar sachen ... hier der jetztige quellcode :
PHP:
<?php 
$verbindung = mysql_connect("localhost", "root" , "") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("test6") or die ("Datenbank konnte nicht ausgewählt werden"); 
$username = $_POST["username"]; 
$password = ($_POST["password"]); 
$abfrage = "SELECT username, password FROM test6 WHERE username LIKE '$username' "; 
$ergebnis = mysql_query($abfrage) or die(mysql_error());
$row = mysql_fetch_object ($ergebnis);

 
if($row->passwort == $password) 
    {  
    echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>"; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 
?>
jetzt kommt aber immer wenn ich mich einloggen will "Benutzername und/oder Passwort waren falsch ... " Dabei sind die richtig ! genau wie ich sie eingebe stehen sie auch schon in der tabelle der datenbank (test6 isis nun ) ... Was ist jetzt Falsch ? zumindest gibt er keine anderen errors aus ...
 
Werbung:
jetzt kommt aber immer wenn ich mich einloggen will "Benutzername und/oder Passwort waren falsch ... " Dabei sind die richtig ! genau wie ich sie eingebe stehen sie auch schon in der tabelle der datenbank (test6 isis nun ) ... Was ist jetzt Falsch ?
Vielleicht das Passwort?

(Aber wie gesagt, das was du da machst ist extrem anfällig für sql-injections. )
 
1. Was sind sql-injections
2. Ich werde das ja niemals online stellen ... wenn dann wprde ich noch md5 in meine seite und pw in phpmyadmin reimachen
3. wenn ich das so mach wie das threadi geschriben hat kommt auch nur "Benutzername und/oder Passwort waren falsch ... "
4. wiso sollte das passwort Falsch sein ??? Ich hab doch in die tabelle geguckt und daspasswort original eingegeben und das ca. 20 mal ...
5. Ich hoffe diesesmal kann mir geholfen werden ...
 
Werbung:
1. Was sind sql-injections
2. Ich werde das ja niemals online stellen ... wenn dann wprde ich noch md5 in meine seite und pw in phpmyadmin reimachen
3. wenn ich das so mach wie das threadi geschriben hat kommt auch nur "Benutzername und/oder Passwort waren falsch ... "
4. wiso sollte das passwort Falsch sein ??? Ich hab doch in die tabelle geguckt und daspasswort original eingegeben und das ca. 20 mal ...
5. Ich hoffe diesesmal kann mir geholfen werden ...

1. google kaputt?
2. Ja gut, für die Anwendung mag das stimmen, aber warum willst du etwas falsches lernen?
3. Es hilft dir in Zukunft Fehler zu finden. Ich verstehe nicht, warum du es dir selber so schwer machst, in dem du nützliche Ratschläge ignorierst.
4. Weil das in deiner Anwendung so ermittelt wird. Wenn du als Ausgabe bekommst, dass das Passwort falsch ist, dann hat das der Vergleich ergeben. Wenn du der Meinung bist, dass das falsch sein muss, dann musst du das testen, in dem du dir z.b. die Werte ausgeben läßt, die du da vergleichst.
5. Du kannst in dem Fall nur dir selber helfen
 
Also ok ich hab jetzt das hier noch hinteran gehägnt :
PHP:
 echo "<br />$password";
 echo "<br />$username";
 echo "<br />$ergebnis";
 echo "<br />$abfrage";
 echo "<br />$row";
so und dann kam das hier dabei raus :
Code:
Benutzername und/oder Passwort waren falsch. [URL="http://localhost/Login/login.html"]Login[/URL]
123456
bastilo
Resource id #3
SELECT username, password FROM test6 WHERE username LIKE 'bastilo' 
[B]Catchable fatal error[/B]: Object of class stdClass could not be converted to string in [B]C:\xampp\htdocs\Login\Login.php[/B] on line [B]29[/B]

also ja ... hmmm was soll cih sagen ... was ist nun Falsch ?? Also username der eingegeben wurde und das pw klappt ja aber die anderen sachen ... Also ich hoffe daraus kann jemand mir sagen was ich verändern muss .. Thx for help im voraus
 
Zurück
Oben