Fehler in einer IF-Abfrage

dkf

Erfahrenes Mitglied
Ich hab es zwar schonmal gepostet, aber es war unter einem anderen Thema...

Habe jetzt folgende if-Anweisung
PHP:
if ( $name != "dkf" OR $pw != "0000")
	{
		print "
FALSCH
und das Login-Formular steht hier auch noch
		";
	} else {
MEINE SEITE
}

wenn ich jetz als Namen dkf1 und Passwort 00000000 eingebe, kann ich mich auch einloggen.
Was soll denn das?
Ich dachte schon, es lag irgendwie am trim($name), aber das hab ich dann raus genommen und der Fehler ist der gleiche...

Name: dkf
Passwort: 1234
funktioniert allerdings nicht!
 
Bei einem Login würd ich immer folgendes machen:

if($benutzer=="ich" AND $pass=="passwort") dann log ein.

Übersetz dir deine IF Frage, dann wirds meistens klarer !
 
Hab jetzt meine if-Abfrage geändert:

PHP:
if (isset($var1) AND isset($var2) AND $name == $name_sec AND $pw == $pw_sec)
	{
                           // Zeig meinen geschützten Bereich an
                  } else {
                         // Formularfelder für die PW-Abfrage
                     }

Oder muss ich eine Mindestlänge für die Var's haben?
 
Hmm, mein Post ist wohl irgendwie untergegangen... :(

Hab meine if-Abfrage geändert (wie schon oben geschrieben), aber ich kann immer noch die falschen Daten in mein Formular eingeben.
Hat denn keiner eine Idee, woran das liegen kann?
 
PHP:
<?php
include ("./config.php");

$name_sec = "dkf";
$pw_sec = "0000";

$cookievar = preg_split("/#/", $_COOKIE['Fav']); 
if (isset($_COOKIE['Fav']))
	{
		$var1 = $cookievar[0]; $var2 = $cookievar[1];
		$name = $var1;
		$pw = $var2;
	} 
if ($setcookie == "1" AND $name == $name_sec AND $pw == $pw_sec)
	{
		$var1 = $name; 
		$var2 = $pw; 
		$vars = $var1."#".$var2;
		setcookie("Fav", $vars,time()+3600);     
	}

?>

<HTML>
<HEAD>
<TITLE><?php print $title; ?></TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="expires" content="0">

<?php
include ("./config_css.php");
?>

</HEAD>
<BODY BGCOLOR=#FFFFFF>

<center>

<?php

if (isset($var1) AND isset($var2) AND $name == $name_sec AND $pw == $pw_sec)
	{
?>

Hier kommt jetzt meine HTML-Seite...

</center>

</BODY>
</HTML>
<?php
	} else {
		print "
			<form name=\"login\" method=\"post\" action=\"index.php\">
			 <table border=\"0\">
			 <tr><td align=\"right\"><font face=\"".$font_face."\" size=\"-2\">Name:</font></td><td align=\"left\"><input name=\"name\" type=\"text\" size=\"16\" maxlength=\"64\"></td></tr>
			 <tr><td align=\"right\"><font face=\"".$font_face."\" size=\"-2\">Passwort:</font></td><td align=\"left\"><input name=\"pw\" type=\"password\" size=\"18\" maxlength=\"64\"></td></tr>
			 <tr><td align=\"center\" colspan=\"2\"><input name=\"setcookie\" type=\"hidden\" value=\"1\"></td></tr>
			 <tr><td align=\"center\" colspan=\"2\"><input name=\"Submit\" type=\"submit\" value=\"OK\"></td></tr>
			 </table>
			</form>
		";
	}
?>


Der HTML-Code is zwar nicht so geil, aber das interessiert ja ersma nicht... ;)
 
Ein Tipp: Ich weiss nicht ob's zur Debatte steht, aber ich wuerde das, was eingefuegt werden soll bei bestimmten Bedingungen, mit include() loesen. Das machts um einiges einfacher und uebersichtlicher.
 
Fehler durch Cookies?

Also ich seh da im Moment nicht das Problem. Eigentlich müsste alles tun.
Nur das mit dem Cookie könnte nen Fehler verursachen. Wenn du einmal das Richtige eingegeben hast, dann sind die richtigen Daten ja gespeichert.
Vielleicht kommts du in den geschützten Bereich, weil die Daten ($var1 + $var2) in der 1. IF-Abfrage gesetzt werden. Die 2. IF-Abfrage wird halt nicht ausgeführt, wegen falschen Eingaben, aber die Bedingung der 3. IF-Abfrage wird durch den THEN-Teil der 1. Abfrage erfüllt.
Alles klar?

Hoffe das wars,
DJ2K
 
Zuletzt bearbeitet:
Zurück