Warum wir das Passwort nicht gelesen?

Golz

Erfahrenes Mitglied
Hiho,

vielleicht kann mir einer helfen,

ich habe ein Login,

Hier ist die Index.php

PHP:
<html>
<head><title>Klassensprecherwahl</title></head>
<body>
<form action="./login.php" method="post">
Username:
<input name="user" value="<?php $_POST['user']; ?>" type="text" size="20" maxlength="20">
<br>
<br>
Passwort:
<input name"passwort" value="<?php $_POST['passwort']; ?>" type="password" size="20" maxlength="20"><br><br>
<input type="submit" value="Login">
<br>
<br>
</form>
</body>
</html>

Die schickt via POST ihre Daten an die login.php

hier:
PHP:
<?php require_once('Connections/klassensprecherwahl.php'); ?>
<?php
mysql_select_db($database_klassensprecherwahl, $klassensprecherwahl);
$query_login = "SELECT `Username`, `Passwort`, `Page`, `Gewaehlt` FROM `user`"; 

$login = mysql_query($query_login, $klassensprecherwahl) or die(mysql_error());
$row_login = mysql_fetch_array($login); 
$totalRows_login = mysql_num_rows($login);

echo "1 "; echo $row_login['Passwort']; ?><br><?php
echo "2 "; echo $passwort; ?><br><?php
echo "3 "; echo $user; ?><br><?php

if($row_login['Gewaehlt'] == "0")
{
	if ($row_login['Username'] == $_POST["user"])
	{
		if ($row_login['Passwort'] == md5($_POST["passwort"]))
		{
			echo $row_login['Page'];
		}
		else
		{
			echo "Passwort Falsch <br> bitte geben Sie es erneut ein.<br><br>";
			echo ?> <input type="button" name="nein" value=" zurück " onClick="javascript:history.back()"> <?php ;
		}
	}
	else
	{
			echo "Username Falsch <br> bitte geben Sie Ihren Benutzennamen erneut ein.<br><br>";
			echo ?> <input type="button" name="nein" value=" zurück " onClick="javascript:history.back()"> <?php ;
	}
}
else
{
	echo "Sie haben ihre Stimme schon abgegeben.";
	exit;
}
?>

Warum zum GEIER kommt dann das Passwort nicht wenn ich es abfrage passiert garnix! die MySQL Felder sind auch richtig geschrieben.

aber funktionieren tt es nicht!

PLZ Helft mir

Gruß

Patrick
 
leider nein, er bleibt bei der 2 if schleife stehen.

Wo er anch dem Passwort abfragt, da geht er in des else rein und gut auch wenn des Pass richtig iss.

er gibt bei der SQL abfrage des Passwort nicht mit zurück. ich will aber die Abfrage nciht über des SQL machen, weil ich noch einen Admin Teil habe und der Admin in der user tabelle steht.

da iss wiederum das problem, dass ich nur eine klein struktorierte DB habe und keine ausführliche. ich will, dass der Admin weiter hinten nicht mit aufgenommen wird, deswegen des ganze im PHP und nicht gleich in der SQl abfrage

Danke
 
Code:
<br>
Passwort:
<input name"passwort" value="<?php $_POST['passwort']; ?>" type="password" size="20" maxlength="20"><br><br>
<input type="submit" value="Login">
<br>

wer den fehler beim inputfeld des Passworts findet, darf ihn nicht behalten sondern muss ihn abgeben ;)

Tipp: Der Name hat keine Zuweisung :)
 
Golz hat gesagt.:
leider nein, er bleibt bei der 2 if schleife stehen.
if () ist keine Schleife, sondern eine Abfrage!

PHP:
<input name="user" value="<?php echo $_POST['user']; ?>" type="text" size="20" maxlength="20">
<input name"passwort" value="<?php echo $_POST['passwort']; ?>" type="password" size="20" maxlength="20">
Man beachte das echo ...
 
_voodoo hat gesagt.:
if () ist keine Schleife, sondern eine Abfrage!

PHP:
<input name="user" value="<?php echo $_POST['user']; ?>" type="text" size="20" maxlength="20">
<input name"passwort" value="<?php echo $_POST['passwort']; ?>" type="password" size="20" maxlength="20">
Man beachte das echo ...

fast :D

die If schleifen funktionieren und du hast den Fehler auch mit gepostet :D

das " = " zeichen Fehlt bei " <input name = "passwort" ......> " :D

trotzdem danke ^^
 
Das Hauptproblem wird sein, dass du alle Nutzer-Datensätze aus der Datenbank abholst, aber nur das Passwort des ersten Datensatzes mit dem übergebenen Passwort vergleichst.

Für die Zukunft solltest du dir angewöhnen etwas mehr zu debuggen, indem du beispielsweise prüfst, welche Daten aus der Datenbank zurück gegeben werden, welche Parameter übergeben werden und ob der md5-Hash des Datenbankpasswortes mit dem des übergebenen Passwortes überein stimmt.

Auch wäre eine genauere Problembeschreibung nicht schlecht. Du siehst ja, wie die Hinweise auseinander gehen.

Sven
 
snuu: hier muss ich sagen, dass die Beschreibugn und die gegebenen Codes völlig ausreichend waren. Der Fehler war einfach nur ein fieser kleiner Flüchtigkeitsfehler. :)


Programmierung besteht zu 10% aus tippen, 89% Fehlersuche und 1% Gefluche, weil der Fehler zu simpel war, um ihn zu sehen :)
 
Zurück