Seite 1 von 2

code prob

Verfasst: 02.07.2003 15:52
von user666
ich habe ein problem mit einem php-script.
das script ist folgender maßen aufgebaut:
index.php auf der man sich einlogen kann. login_check.php wo die login daten überprüft werden sollen, falls diese korreckt sind soll ein link erscheinen. eigentlich recht simple nur bei mir will es nicht funktioniern :(
kann mir jemand sagen was an diesem code nicht stimmt?
ich sehe immer den link auch wenn ich die felder leer lasse :-?

Code: Alles auswählen

<?php
	$username = $_POST["username"];
	$userpwd = $_POST["userpwd"];
	$benutzername = admin;
	$passwort = admin; ?>	
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
	if ($benutzername == "admin") {
		if ($passwort == "admin") {
	     	 echo "<a href=\"/forum/\">Zum Forum ...</a>";
			 	}
			}
	 if ($benutzernane == "") {
		if ($passwort == "") {
			echo header("location: http://localhost/index.php"); 
					exit();
				}
			} ?>

	
</body>
</html>
thx+mfg

ps: bin noch php newbie :roll:

Verfasst: 02.07.2003 16:54
von Gonzo_w
Ich nehm mal an der Code stammt aus der login_check.php !?

Wenn du die beiden Variablen

Code: Alles auswählen

$benutzername = admin; 
   $passwort = admin;
festlegst, springt ja die erste if-Schleife an, du erhälst somit den Link angezeigt.

Vielmehr musst du mit der if-Schleife den Inhalt der $username und $userpwd überprüfen.

Verfasst: 02.07.2003 17:51
von user666
genau, der code stammt aus der login_check.php
ich habe jetzt den code etwas abteändert und jetzt springt er gleich auf die 2te if-schleife :(
was mach ich denn falsch :cry:

Code: Alles auswählen

<?php
	$username = $_POST["username"];
	$userpwd = $_POST["userpwd"];
	$benutzername = admin;
	$passwort = admin; ?>	
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
	if ($username == $benutzername) {
		if ($userpwd == $passwort) {
	     	 echo "<a href=\"/forum/\">Zum Forum ...</a>";
			 	}
			}
	 if ($username == "") {
		if ($userpwd == "") {
			echo header("location: http://localhost/index.php"); 
					exit();
				}
			} ?>

	
</body>
</html>
thx+mfg

Verfasst: 02.07.2003 18:05
von Mister_X
Probieren wir es mal so:

Code: Alles auswählen

<?php
$username = $_POST["username"];
$userpwd = $_POST["userpwd"];
$benutzername = admin;
$passwort = admin;

if ($username == $benutzername AND $userpwd == $passwort)
{
?>

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<a href="/forum/">Zum Forum ...</a>
</body>
</html> 

<?php
}
else
{
header("location: http://localhost/index.php");
exit();
}
?>
Damit die header("location:xxx"); Anweisung funktioniert darf KEIN Text vorher ausgegeben werden deshalb muss das <html> usw. in die if-Schleife mit rein.

Verfasst: 02.07.2003 19:08
von user666
danke für den tipp. habe ich sofort ausprobiert :) aber leider mit dem selben ereigniss, dass er auf die index.php zurückspringt.
hat jemand eine idee? ich probiere nähmlich schon seit geraumer zeit herum aber es will einfach nicht funktionieren :(

thx+mfg

Verfasst: 02.07.2003 20:00
von Pyramide
Zeig mal den Code des Login-Formulars

Verfasst: 02.07.2003 20:06
von user666
hier ist er:

Code: Alles auswählen

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="login_check.php">
  <p>Benutzername:</p>
  <p>
    <input type="text" name="txtLogin" id="username">
  </p>
  <p>Passwort</p>
  <p> 
    <input type="password" name="txtPWD" id="userpwd">
  </p>
  <p>
    <input type="submit" name="Submit" value="Login">
  </p>
  </form>
</body>
</html>
thx+mfg

Verfasst: 02.07.2003 20:35
von Pyramide
Das Attribut id wird nur für JavaScript/DOM benötigt. An PHP wird das gesendet, was in name drinsteht, und da du in der login_check nicht nach txtLogin und txtPWD prüfst, kann das nicht funktionieren.

Verfasst: 02.07.2003 20:49
von user666
ah, verstehe. jetzt funktioniert es auch :)
danke :wink:

mfg

Verfasst: 02.07.2003 22:46
von user666
ich bin gerade auf einen schönheitsfehler draufgekommen. und zwar: sobald ich irgendwelche daten eigebe erscheint der link, was ja nicht sein soll. weiß jemand eine möglichkeit wie ich dies regeln kann, dass bei einer falschen dateneingabe wieder die index.php angezeigt wird?

thx+mfg