PHP做的会员登陆系统,第一次输入好用户名与密码按登陆没反应,要再次输入再按登陆才登陆成功。<?php 
include('class\Users.php'); // 包含Users类
$user = new Users();
session_start();
if(!isset($_SESSION['Passed'])) {
$_SESSION['Passed'] = 0;
}
?>
<html>
<head>
<title>秋之意</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

  <?php
if($_SESSION['Passed']==0) {
// 读取从表单传递过来的身份数据
$U_Usermane = $_POST['U_Usermane'];
$U_Password = $_POST['U_Password'];
// 验证用户名和密码
if(!$user->verify($U_Usermane, $U_Password))  {
$Errmsg = "用户名或密码不正确";
}
else  { // 登录成功
$_SESSION['Passed'] = True;
$_SESSION['U_Usermane'] = $U_Usermane;
}
echo'<form name="form1" method="POST">
<table width="201" height="163" border="0">
        <tr>
          <td align="center">用户名:</td>
            </tr>
        <tr>
          <td align="center"><label for="U_Usermane"></label>
              <input type="text" name="U_Usermane" id="U_Usermane"></td>
            </tr>
        <tr>
          <td align="center">密码:</td>
            </tr>
        <tr>
          <td align="center"><label for="U_Password2"></label>
              <input name="U_Password" type="password" id="U_Password2"></td>
            </tr>
        <tr>
          <td align="center"><input type="submit" name="Submit" id="Submit" value="登陆"> 
             <a href="Resgister.php">注册</a></td>
          <td height="31" align="center">&nbsp;</td>
            </tr>
          </table> ';

else
{
echo'<table width="195" height="124" border="0">
        <tr>
          <td align="center"><strong class="aaaaaaa">欢迎光临</strong></td>
            </tr>
        <tr>
          <td align="center" class="front">'.($U_Usermane).'</td>
            </tr>
        <tr>
          <td align="center" class="front"><a href=logout.php>退出登录</a></td>
            </tr>
          </table></form>';
}    
  ?></td>
      </tr>
</table></td>LOGOOUT.PHP
<?PHP
session_start(); 
$_SESSION['Passed'] = 0;
$_SESSION['U_Usermane'] = "";
//header("Location: NAV11.php");
header("Location: {$_SERVER['HTTP_REFERER']}");
?>

解决方案 »

  1.   

    他要刷新才能显示登陆成功,我已经发现问题。但不知道怎么解决。
    else { // 登录成功
    $_SESSION['Passed'] = True;
    $_SESSION['U_Usermane'] = $U_Usermane;
    }
    就这里怎么改造?可以添加刷新一次吗?怎么添加?
      

  2.   

    在这里跳转到首页或来源页
    其实你的程序的问题在于只要Passed == 0,无论是不是正在登陆,必然会显示登陆输入框。
    //感叹号去掉
    if($user->verify($U_Usermane, $U_Password)) {
     // 登录成功
    $_SESSION['Passed'] = True;
    $_SESSION['U_Usermane'] = $U_Usermane;
    }
    else {
    $Errmsg = "用户名或密码不正确";
    echo '你的登陆输入框';
    }这样就行了
      

  3.   

    你的程序还有的问题是没有校验$_POST,会产生warning还是notice来着