PHP-SQL LogIn

fuschel

Grünschnabel
Hallo,
ich habe ein dickes Problem!
Ich sitze nun schon den ganzen Tag vor einem LogIn-Script.

PHP:
<?php 
session_start(); 
require("connect.inc.php"); 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>LogIn</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>LogIn</b> 
</td> 
</tr> 
<tr> 
<td width="170" bgcolor="#e7e7e7">Nick</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">Sie haben keinen Nick eingegeben<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">Sie haben kein Passwort eingegeben<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">Dieser Nick existiert nicht! Bitte überpfüfen Sie Ihre Angaben<br> oder
klicken Sie <a href="datenvergessen.php">hier</a> sollten sie Ihre Daten vergessen haben.<br><a 
href="index.php">Zurück</a></p>'); 
if($password != $result['pass']){ 
echo '<form action="index.php" method="post">'; 
echo '<p align="center">Dieses Passwort ist falsch Bitte überprüfen Sie Ihre Angaben <br> oder
klicken Sie <a href="datenvergessen.php">hier</a> sollten sie Ihre Daten vergessen haben.<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="sichere_seite.php">"Hier folgt Grafik"</a></p>'; 
} 
} 
?> 
</body> 
</html>

Ich habe es jetzt schon mindestens 50x überprüft und geändert und kann trotzdem keinen Fehler erkennen.
Wenn ich mich einlogge kommt, dass ich anscheinend ein falsches Passwort eingebe.
Kann mir da jemand helfen?


Gruß
fuschel
 
Danke erstmal für die schnelle Antwort!

PHP:
name="password"

Ich programmiere noch nicht allzu lang php. Hab ich da einen Denkfehler drin?
 
Wie oft soll ich es denn noch sagen: Du musst die Variable $password erst deklarieren, bevor du sie verwenden kannst.
PHP:
$password = 'test';
if ($password == 'test')
{
    echo 'Stimmt';
}
else
{
    echo 'Stimmt nicht';
}
 
Ja, soweit kann ich php auch!

Ich dachte ich hätte die Variable $password schon mit folgendem Befehl deklariert:
PHP:
<input type="password" name="password" size="20" class="input">

Ich möchte gern das Passwort, das eingegeben wird, mit dem aus der Datenbank vergleichen. Nun ist das Problem das ich nicht weiß wie ich das anderst machen könnte.

Denn Sinn von der 1. Antwort habe ich verstanden, kann es aber nicht umsetzen =)


edit: Oder steh ich gerade auf der Leitung?
 
PHP:
<input type="password" name="password" size="20" class="input"<?php
if($_POST['password'] !=   "" ) {echo ' value="'.$_POST['password'].'"';} ?>>

so?
 
Zurück