PW-Abfrage die Zweite...
Kai Böhm
- php
Ich bin inzwischen schon weiter als heute Nacht, aber es funktioniert leider immer noch nicht so ganz.
<?
session_start();
if(isset($access))
{
$query = "select email, pass from member where (email = '$frm_loginname')";
$erg = mysql_query($query, $dbh);
$row = mysql_fetch_array($erg);
if($frm_pass == $row["pass"])
{
$logon = TRUE;
if (!(session_is_registered("logon")))
{
session_register("logon");
}
}
else
{
echo "<table align=center><tr><td>Login oder Passwort ist nicht korrekt!</td></tr></table>";
}
}
if(isset($logon))
{
if($logon == TRUE)
{
echo "andere Seite";
}
else
{
?>
<html>
<head>
<title>TFM Setup-Verwaltung</title>
<link rel="stylesheet" type="text/css" href="css/setup.css">
</head>
<body>
<form action="logon.php" method="post">
<table cellspacing=5 align="center" valign="middle">
<tr>
<td>
Login:
</td>
<td>
<input type="text" name="frm_loginname">
</td>
</tr>
<tr>
<td>
Passwort:
</td>
<td>
<input type="password" name="frm_pass">
</td>
</tr>
<tr>
<td>
<input type="reset" value="Abbrechen">
</td>
<td align="center">
<input type="submit" value="Einloggen">
</td>
</tr>
</table>
</form>
<?
if($frm_loginname == "")
{
die ("<table align=center><tr><td>Bitte das Login-Feld ausfüllen!</td></tr></table>");
}
elseif($frm_pass == "")
{
die ("<table align=center><tr><td>Bitte ein Passwort eingeben!</td></tr></table>");
}
elseif(!(strstr($frm_loginname, "@")))
{
die ("<table align=center><tr><td>Einloggen ist nur über die Email-Adresse möglich!</td></tr></table>");
}
elseif(!(strstr($frm_loginname, ".")))
{
die ("<table align=center><tr><td>Einloggen ist nur über die Email-Adresse möglich!</td></tr></table>");
}
else
{
$access = "ok";
}
}
}
?>
</body>
</html>
Ich bekomme leider immer eine leere Seite angezeigt ohne irgendwelche Fehlermeldungen.
session_start();
Also ich täte für sowas ja die HTTP-Variante benutzen, da braucht funktioniert's automatisch, garantiert und braucht keine Sessions.
if(isset($access))
$access wird nie gesetzt (siehe unten).
{
$query = "select email, pass from member where (email = '$frm_loginname')";
Bei Benutzereingaben IMMER mysql_escape_string() einsetzen. Außerdem solltest Du externe Variablen wie die Formulardaten besser über $HTTP_POST_VARS[] bzw. seit einer ganzen Weile über $_POST[] abfragen.
$query = "select email,pass from member where email='".mysql_escape_string($_POST["frm_loginname"])."'";
$erg = mysql_query($query, $dbh);
Wo ist die Fehlerbehandlung?
$row = mysql_fetch_array($erg);
Wo ist die Fehlerbehandlung?
if(isset($logon))
$logon wird im obigen if-$access-Block gesetzt..
{
[..]
$access = "ok";
}
..und $access im if-$logon-Block. Wer kann nun wohl zuerst da sein, die Henne oder das Ei?
Gruß,
soenk.e