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

Login mit Datenbank

manager17

Mitglied
Hey Com,

Ich habe nen Problem wobei ich mir sicher bin das eig. alles richtig ist.

Ich habe ein Login eingefügt und eine Datenbank erstellt.
Datenbankname: Db1
Tabelle: accounts

Einmal username und einmal password vorhanden. Problem ist wenn ich mich anmelde zeigt der ID oder Passwort falsch.

PHP CODE VOM LOGIN:
Code:
<?php
session_start();
?>

<?php
$verbindung = mysql_connect("mysql.lima-city.de", "Db1" , "password")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("Db1") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, password FROM accounts WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->password == $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=\"geheim.php\">Login</a>";
    }

?>

Hab auch nen Account erstellt in der Db
 
Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Hallo,

zusätzlicher tipp.
gebe mal $abfrage per echo aus.
und dann das Like raus wenn das so weit funktioniert da dies dort kein sin macht und das nur langsam macht.

Cheffchen
 
Hey Com,

Ich habe nen Problem wobei ich mir sicher bin das eig. alles richtig ist.

Ich habe ein Login eingefügt und eine Datenbank erstellt.
Datenbankname: Db1
Tabelle: accounts

Einmal username und einmal password vorhanden. Problem ist wenn ich mich anmelde zeigt der ID oder Passwort falsch.

PHP CODE VOM LOGIN:
Code:
<?php
session_start();
?>

<?php
$verbindung = mysql_connect("mysql.lima-city.de", "Db1" , "password")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("Db1") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, password FROM accounts WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->password == $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=\"geheim.php\">Login</a>";
    }

?>

Hab auch nen Account erstellt in der Db

Also wenn ich das richtig sehe ist dein Username gleichnamig mit der Datenbank die du ansprichst ("Db1")?
 
Und du solltest definitiv das LIKE weg machen in der sql anweisung, weil wenn ich hintern Usernamen ein % mache, haste nen Problem :)

Nur mal so am Rande und falls ich nun wirklich klar denken kann :D
 
Zurück
Oben