ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
607
607
EMPFEHLEN
-
Hallo Leute.
Ich habe bei meinem Login Code ein Problem da egal was ich alls Password eingebe immer kommt falsches Password auch wenn es eigentlich richtig ist.
Kann mir da einer weiter helfen. Ich habe schon einiges versucht aber finde einfach nicht denn fehler, ist ein md5 Password mit SQL.
Hier der Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?php }elseif(!$_POST['username'] || $_POST['username'] == "") { echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="index.php">Zurück</a></p>'; }elseif(!$_POST['password'] || $_POST['password'] == "") { echo '<form action="index.php" method="post">'; echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>'; echo '<input type="hidden" name="username" value="'.$_POST['username'].'">'; echo '<input type="submit" name="zurueck" value="Zurück">'; echo '</p>'; echo '</form>'; }else{ $password = md5($password); $query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!'); $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zurück</a></p>'); if($password != $result['pass']){ echo '<form action="index.php" method="post">'; echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>'; echo '<input type="hidden" name="username" value="'.$_POST['username'].'">'; echo '<input type="submit" name="zurueck" value="Zurück"></p>'; echo '</form>'; die; }else{ $user = $result['user']; session_register('user'); echo '<p align="center">LogIn erfolgreich! :-)<br><br><a href="log.php">Weiter</a></p>'; } } ?>
-
01.08.07 20:13 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Der Fehler scheint nicht im Code zu liegen, sondern eher daran, wie dein Passwort in der DB liegt. Wie sieht der entsprechende Datenbank-Eintrag aus? Kannst ruhig auch ein Passwort festlegen, was nicht so sicher ist für den Test.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Also das Passwort ist in der Tabelle "users" und im Datensatz "pass"
Der Username ist in gleicher Tabelle die das Passwort und denn Usernamen findet das Login script.
-- Tabellenstruktur für Tabelle `users`
--
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL auto_increment,
`user` varchar(20) NOT NULL default '',
`pass` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Daten für Tabelle `users`
--
INSERT INTO `users` VALUES (1, 'test', '6ae27aa9ea262g6gbf4d13d4585799a8');Geändert von deinpapa (01.08.07 um 20:45 Uhr)
-
01.08.07 20:52 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Kann es sein, das deine PHP-Funktion md5() die Hex-Buchstaben als Großbuchstaben ausgibt? Vielleicht solltest du vor dem Vergleich eine einheitliche Form der Passwörter schaffen, z.B. mit strtolower oder strtoupper für beide Passworte.
Ansonsten kann ich dir für das Debugging nur empfehlen, mal das eingegebene und das in der SQL-Tabelle liegende Passwort untereinander auszugeben und zu vergleichen.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
02.08.07 07:43 #5Comenius Tutorials.de Gastzugang
... Oder den ganzen PHP-Code zu posten.
Wenn es schon mit einem ELSEIF beginnt, lässt dass ja nur darauf schließen, dass davor noch mehr sein muss...
Vielleicht hast du irgednwo einen Dreher, oder Denkfehler in IF-Anweisungen
Poste einfach mal das komplette Script, dann seh´n wir weiter
Gruss
Commi
-
Also hier ist der ganze code:
PHP-Code:<?php
session_start();
require("connect.inc.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>LogIn zum Adminbereich</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php if(!isset($_POST['submit'])) { ?>
<form action="<?php $PHP_SELF ?>" method="post">
<table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<b>Bitte erst anmelden</b>
</td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Benutzername</td>
<td width="230" bgcolor="#ffffff"><input type="text" name="username" size="20" class="input"<?php if($_POST['username'] != "" ) {echo ' value="'.$_POST['username'].'"';} ?></td>
</tr>
<tr>
<td width="170" bgcolor="#e7e7e7">Passwort</td>
<td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<input type="submit" name="submit" value="Anmelden" class="button">
</td>
</tr>
</table>
</form>
<?php
}elseif(!$_POST['username'] || $_POST['username'] == "") {
echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="index.php">Zurück</a></p>';
}elseif(!$_POST['password'] || $_POST['password'] == "") {
echo '<form action="index.php" method="post">';
echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>';
echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
echo '<input type="submit" name="zurueck" value="Zurück">';
echo '</p>';
echo '</form>';
}else{
$password = md5($password);
$query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
$result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zurück</a></p>');
if($password != $result["pass"]){
echo '<form action="index.php" method="post">';
echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
echo '<input type="submit" name="zurueck" value="Zurück"></p>';
echo '</form>';
die;
}else{
$user = $result['user'];
session_register('user');
echo '<p align="center">LogIn erfolgreich! :-)<br><br><a href="log.php">Weiter</a></p>';
}
}
?>
</body>
</html>
-
Versuch mal einfach den geposteten Wert auszugeben, mit die($password).
Oder versuch auch mal, einfach erstmal ohne md5 einzuloggen.
Wie viele Zeichen erlaubt deine Spalte in der Datenbank für das Passwort?
Wo wirdn da das Passwort gepostet?PHP-Code:$password = md5($password);
Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!
Ähnliche Themen
-
Code::Blocks bringt mich um! Fehler wo gar keiner sein darf/kann
Von Acriss im Forum C/C++Antworten: 13Letzter Beitrag: 20.05.09, 19:57 -
Fehler im Code, den ich nicht ausmachen kann
Von Zimtgruen im Forum PHPAntworten: 13Letzter Beitrag: 18.10.08, 18:33 -
kann den Fehler nicht Finden, im code
Von ZaMpTi im Forum PHPAntworten: 2Letzter Beitrag: 13.07.06, 06:48 -
Finde den fehler nicht im Code
Von Sealtuagn im Forum PHPAntworten: 7Letzter Beitrag: 26.07.05, 12:44 -
script für Datenbankeintrag/abfrage klappt nicht - finde den Fehler nicht
Von germanius im Forum Relationale DatenbanksystemeAntworten: 10Letzter Beitrag: 06.06.04, 14:49





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren