Hallo ich habe einen Script programmiert, doch dabei wird nicht die richtige Fallentscheidung ausgeführt sondern genau die falsche. Hier ersmal der code:
[php:1:4ed8843f8c]<?
include ("config.php");
$passwort = $HTTP_POST_VARS['passwort'];
$username = $HTTP_POST_VARS['username'];
$id_pruefen = htmlentities($_COOKIE['user_id']);
$string_pruefen = htmlentities($_COOKIE['cookiewert']);
if($string_pruefen != "")
{
$verbindung = mysql_connect("$host","$user","$pw") or die ("Keine Verbindung moeglich");
mysql_select_db("$datenbank") or die ("Die Datenbank existiert nicht");
$query = "SELECT * ". " FROM `$tblog` " . " WHERE `cookiewert` = '.mysql_real_escape_string($string_pruefen).'";
$erg = mysql_query($query) or die("MySQL-Fehler: " . mysql_error () );
while ($list = mysql_fetch_array($erg, MYSQL_ASSOC))
{
$id = $list['id'];
$user = $list['user'];
}
mysql_close($verbindung);
}
if($id == $id_pruefen and $id != "")
{
$login = "yes";
}
elseif($id != $id_pruefen or $id == "")
{
$login = "no";
}
if($login == "no" and ($passwort == "" and $username == ""))
{
echo "<form method=\"POST\" action=\"adminindex.php\">
User<input type=\"text\" name=\"username\" size=\"12\"> Passwort<input type=\"password\" name=\"passwort\" size=\"12\"> <input type=\"submit\" value=\"Einloggen\" name=\"B1\"></p>
</form>";
}
elseif($login == "no" and ($passwort != "" and $username != ""))
{
$id_pruefen = htmlentities($_COOKIE['user_id']);
$string_pruefen = htmlentities($_COOKIE['cookiewert']);
$verbindung = mysql_connect("$host","$user","$pw") or die ("Keine Verbindung moeglich");
mysql_select_db("$datenbank") or die ("Die Datenbank existiert nicht");
$query1 = "SELECT * FROM `$tblog` WHERE `user` ='$username'";
$result1 = mysql_query($query1) or die("MySQL-Fehler: " . mysql_error () );
if(mysql_num_rows($result1)>0) {
$row=mysql_fetch_array($result1);
$dbpw = $row['passwort'];
$user_id = $row['id'];
}
error_reporting(E_ALL);
mysql_close($verbindung);
$userpw = md5($passwort);
if($dbpw == $userpw)
{
$jetzt = time();
$der_neue_cookie_wert = md5($jetzt.$user_id);
setcookie ('user_id',$user_id, time()+60*60*2); # 2 Sunden Gültigkeit
setcookie ('cookiewert',$der_neue_cookie_wert, time()+60*60*2); # 2 Sunden Gültigkeit
$verbindung = mysql_connect("$host","$user","$pw") or die ("Keine Verbindung moeglich");
mysql_select_db("$datenbank") or die ("Die Datenbank existiert nicht");
$aendern = "UPDATE $tblog Set cookiewert = '$der_neue_cookie_wert', timestamp = '$jetzt' WHERE id = '$user_id'";
$update = mysql_query($aendern);
mysql_close($verbindung);
$login = "yes";
echo "Wilkommen $username! <a href=\"adminindex.php\">Administation</a> :: <a href=\"logout.php\">Logout</a>";
}
elseif($dbpw != $userpw)
{
echo "Fehler:Falsches Passwort $username $dbpw $userpw! <form method=\"POST\" action=\"adminindex.php\">
User<input type=\"text\" name=\"username\" size=\"12\"> Passwort
<input type=\"password\" name=\"passwort\" size=\"12\"> <input type=\"submit\" value=\"Einloggen\" name=\"B1\"></p>
</form>";
$login = "no";
}
}
elseif($login == "no" and ($passwort != "" or $username != ""))
{
echo "Fehler:Beide Felder ausfüllen! <form method=\"POST\" action=\"adminindex.php\">
User<input type=\"text\" name=\"username\" size=\"12\"> Passwort<input type=\"password\" name=\"passwort\" size=\"12\"> <input type=\"submit\" value=\"Einloggen\" name=\"B1\"></p>
</form>";
}
elseif($login == "yes")
{
echo "eingeloggt als $name! <a href=\"adminindex.php\">Administation</a> :: <a href=\"logout.php\">Logout</a>";
}
?>[/php:1:4ed8843f8c]
So wenn jetzt if($dbpw == $userpw) ausgeführt werden sollte wird trotzdem elseif($dbpw != $userpw) ausgeführt. Ich habe mir beide passwörter ausgeben lassen. Die stimmen 100% überein! Trotzdem wird elseif($dbpw != $userpw) ausgeführt.
Ich hoffe mir kann jemand helfen. [/code]