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

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
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
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
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