Simple Frage:
Ist in $info['passwort'] überhaupt das Passwort aus der Datenbank drinne?... Weil das muss es ja sein, damit der Passwortabgleich klappt.
bzw. ist das passwort in der Datenbank nicht md5 verschlüsselt, kann es daran liegen?
Simple Frage:
Ist in $info['passwort'] überhaupt das Passwort aus der Datenbank drinne?... Weil das muss es ja sein, damit der Passwortabgleich klappt.
bzw. ist das passwort in der Datenbank nicht md5 verschlüsselt, kann es daran liegen?
Ich komm damit irgendwie total nicht klar.
Also 1.:
Wenn ich die while Schleife wegnehme, dann wird bei mir das Login nicht mehr angezeigt (d.h. die komplette Form):
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);
}
2.
So den einen Fehler behoben.... Jetzt hab ich die scheiße, dass er die Passwortabfrage wieder nicht macht -_- er gibt nix mehr aus, egal was ich für ein Passwort eingebe.
Bzw. hab ich es momentan so:
//kontrolliert ob die Felder ausgefüllt sind
if(empty($_POST['Username']) || empty($_POST['pass']))
{
die('Sie haben nicht alle Felder ausgefüllt.');
}
$check = mysql_query("SELECT pass FROM users WHERE Username = '".$_POST['Username']."'")or die(mysql_error());
//gibt einen Fehler aus, wenn es den Benutzer nicht gibt
$check2 = mysql_num_rows($check);
if ($check2 == 0)
{
die('Dieser Benutzer existiert nicht. Bitte versuchen Sie es erneut.');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);
}
//Gibt einen Fehler aus, wenn das Passwort falsch ist
if ($pass != $info['password'])
{
die('Incorrect password, please try again.');
}
Alles anzeigen
SinnlosS hast du vll MSN?
Also erstmal danke.^^
Dann eine Verständnissfrage:
mysql_real_escape_string bedeutet also, dass es der Variablen immer einen Wert zuweist und der dadurch nicht auf 0 stehen kann?
zu Punkt 2.:
Edit* schon gut. xD
Regards Sucki
Also es ist so, wenn ich in das Feld "Passwort" eine Eingabe mache (vorrausgesetzt der "Name" ist richtig geschrieben), dann gibt er mir immer den Fehler aus, dass das Passwort falsch ist. Auch wenn ich es richtig eingebe. Und er soll da halt das Passwort aus der Datenbank (zum dazugehörigen User) nehmen und vergleichen. Und nur wenns falsch ist, die Fehlermeldung ausgeben.
Danke für deine schnellen antworten. Ich versuch mir das schon alles selbst beizubringen, aber das klappt immer nicht so gut. xD (und nicht wundern, ich hab da noch ein paar Leichen im Quelltext gelassen, wo ich rumprobiert habe).
Hab die Einrückung natürlich normal.^^ Aber ich wusste das mit [ php ] [ /php ] nicht.
Ich habe eine Anmeldung geschrieben und es klappt auch jede Abfrage nur die mit dem Passwort funktioniert irgendwie nicht. Ich bitte um Hilfe, da ich leider schon zu lange an dem Problem hänge. Danke!
Ich habe es durch die Kommentare gut Strukturiert gehalten und man sieht mein rumprobieren bei dem Fehler. Danke schonmal für jede Hilfe!
Script:
<?php
//guckt, ob es einen Login Cookie gibt
if(isset($_COOKIE['ID_my_site']))
//wenn es einen gibt, dann leitet es einen zu der Accespage weiter
{
$Username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE Username = '$Username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
echo '<meta http-equiv="renew" content="0; URL=Impressum.php">';
exit;
}
}
}
//wenn der Login übermittelt wurde
if (isset($_POST['submit']))
{ // wenn der Login übermittelt wurde
//kontrolliert ob die Felder ausgefüllt sind
if(!$_POST['Username'] | !$_POST['pass'])
{
die('Sie haben nicht alle Felder ausgefüllt.');
}
//gleicht es mit der Datenbank ab
if (!get_magic_quotes_gpc())
{
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM users WHERE Username = '".$_POST['Username']."'")or die(mysql_error());
// $sql = SELECT * FROM users WHERE (Username like $_REQUEST['Username']) AND (pass = md5($_REQUEST['pass'])
// $result = mysql_query ($sql);
//gibt einen Fehler aus, wenn es den Benutzer nicht gibt
$check2 = mysql_num_rows($check);
if ($check2 == 0)
{
die('Dieser Benutzer existiert nicht. Bitte versuchen Sie es erneut.');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);
}
//Gibt einen Fehler aus, wenn das Passwort falsch ist
//gives error if the password is wrong
if ($_POST['pass'] != $info['password'])
{
die('Incorrect password, please try again.');
}
$check = mysql_query("SELECT * FROM users WHERE Username = '$Username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($_POST['pass'] != $info['pass'])
{
die ('Ihr Passwort ist inkorrekt. Bitte versuchen Sie es erneut.');
}
}
echo '<meta http-equiv="refresh" content="0; URL=Impressum.php">';
}
else
{
//wenn der Login erfolgreich war, dann fügen wir einen Cookie hinzu
$_POST['Username'] = stripslashes($_POST['Username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['Username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);
header("Location: Impressum.php");
//dann leiten Sie ihn zur Accespage
}
?>
Alles anzeigen