用户登录时出现错误
什么错了吗?
在第一次告诉我欢迎,但刷新页面后告诉我错误:
注意:175行index.php中未定义变量:username
<?php
$fn=2;
if(isset($_POST["smbit"])){
$fn=1;
$username = $_POST['username'];
$password = md5($_POST['password']);
$res=mysql_query("SELECT userid,isadmin FROM users WHERE user='$_POST[username]' and pass='$_POST[password]'",$cn);
if($row=mysql_fetch_object($res)){
$fn=0;
mysql_query("UPDATE session SET islogin=1,isadmin=$row->isadmin,uid='$row->userid' where sid='$sid'");
}
}
if($islogin==1) $fn=0;
if($fn==1) echo "<b>Login Not Found!</b>";
if($fn==1 || $fn==2){
?>
<p></p>
<form action="index.php" method="post">
<i>Username:</i><input type="text" name="username"/>
<i>Password:</i><input type="password" name="password">
<input class="buttom" type="submit" name="smbit" value="Login">
</form>
<a href="register.php">Not Register?</a>
<p></p>
<?php
}
if($fn==0) echo "<h3 align=center>Welcome $username</h3><h4><a href=logout.php>Log out</a> </h4>";
?>
刷新后if(isset($_POST["smbit"]))
返回false
, $fn
= 2。
则,如果条件if($islogin==1)
为真(可能为真),则$fn
设置为0
。
最后一行是$fn == 0
,但是$username没有定义(因为您在测试$_POST['smbit']
是否存在的条件下设置了这个变量)
可能的解决方案:成功登录后设置$_SESSION['username'] = $_POST['username']
,并在这一行使用session
代替未定义的变量。