Login funktioniert nicht - Immer: Falscher Name/Passwort
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anzahl
basteln
benutzername
bereich
code
dank
date
datum
eintragen
ergebnis
falsch echo
falsch login
formular
login
schnelle antwort
stellen
string
vergessen
vermutung
-
Hallo zusammen,
ich bin gerade am Basteln eines Login-Formulars mit Auswertung, leider kann ich mich dort nie einloggen, obwohl Daten richtig sind :(
login.php (Formular)
<html> <head> <style type="text/css"> <!-- body { margin-left: 50px; margin-right: 50px; background-color: black; } --> </style> <title></title> <meta name="author" content="Caprano"> </head> <body text="white" bgcolor="black" link="#FF0000" alink="#FF0000" vlink="#FF0000"> <div align='center' style='width:100%;background-color:black;height:200px;'> <img src='images/banerbg.jpg' alt='' border='0'> </div> <table width="1100" align="center" bgcolor="green" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <form action="login_code.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="passwort"><br> <input type="submit" value="Abschicken"> </form> </td> </tr> </table>
login_code.php:
<?php session_start(); ?> <?php include ('config.php'); $username = $_POST["username"]; $passwort = md5($_POST["passwort"]); $abfrage = "SELECT user, password FROM forum_user WHERE user = '$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=\"reply.php\">Geschützer Bereich</a>"; } else { echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>"; } ?>
Achja meine MySQL Spaltennamen: " id user password avatar email rights date posts homepage icq signature likes work " . Die Tabelle heißt "forum_user".
Danke ;)
Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mach es doch einfach so:
$abfrage= 'SELECT `username`, `password` FROM `forum_user` WHERE `user` = \''.$_POST["username"].'\' AND `password` = \''.md5($_POST["passwort"]).'\''; $ergebnis= mysql_query($query); $anzahl = mysql_num_rows($ergebnis); if ( $anzahl > 0 ) { // login richtig $_SESSION["user"] = $_POST["username"]; echo "Login erfolgreich. <br> <a href=\"reply.php\">Geschützer Bereich</a>"; } else { // login falsch echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>"; }
Beitrag zuletzt geändert: 26.12.2009 21:05:11 von x-black -
So wie ich das sehe, müsste $exec durch $ergebnis ersetzt werden...
-
Hallo,
ok, dann war meine erste Vermutung doch richtig :P Danke ;)
Vielen Dank ;)
Ich lass von mir hören, wenn das Thema abgeschlossen ist :)
Grüße
EDIT: Leider funktioniert das ganze immer noch nicht
Habe mal einen Testversuch gestartet, wobei user=christoph1 und PW: e33f3a73fc19149eb8a6 (mit mp5) (=teamfake)
Jedoch kommt wieder das gleiche, ich verstehe es einfach nicht mehr :(
Danke ;)
Beitrag zuletzt geändert: 26.12.2009 20:28:40 von teamfake -
Hey!
Ja sorry, hab's eben schnell herausgesucht, und an dieser Stelle vergessen dein Variablennamen zu verwenden ;)
Aber so wie's aussieht funktionierts ja jetzt -
Leider nein :(
<?php session_start(); ?> <?php include ('config.php'); $username = $_POST["username"]; $passwort = md5($_POST["passwort"]); $abfrage= 'SELECT `user`, `password` FROM `forum_user` WHERE `user` = \''.$_POST["username"].'\' AND `password` = \''.md5($_POST["passwort"]).'\''; $exec= mysql_query($abfrage); $anzahl = mysql_num_rows($exec); if ( $anzahl > 0 ) { // login richtig $_SESSION["user"] = $_POST["username"]; echo "Login erfolgreich. <br> <a href=\"reply.php\">Geschützer Bereich</a>"; } else { // login falsch echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.php\">Login</a>"; }
Den Testversuch habe ich ja schon bei meinem Vorpost geschildert ... :(
Grüße -
Hi!
Ich glaube, das Problem ist, dass dein Feld 'user' mindestens die Länge 32 haben muss [nimm mal 35]. Bei mir funktionierts jetzt nämlich. -
Och ich Volldepp :D
Konnte ja nicht funktionieren, wenn das mp5 PW nur 20 Stellen lang sein kann :D
Danke hat sich nun erledigt...vielen Dank!
Grüße -
Generell solltest du vor dem Eintragen in die Datenbank, die einzutragenen Daten:
- EntTaggen, also keine HTML-Tags erlauben
- Auf die Zulässige Länge prüfen [damit eben nichts abgeschnitten wird]
- Je nach dem Verschlüsseln, z.B bei Passwörter nur MD5-Hashes vergleichen
- Dateityp überprüfen, erwartest du Int oder Strings oder was immer ;)
Beitrag zuletzt geändert: 26.12.2009 21:26:10 von x-black -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage