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"> </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']}");
?>
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"> </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']}");
?>
else { // 登录成功
$_SESSION['Passed'] = True;
$_SESSION['U_Usermane'] = $U_Usermane;
}
就这里怎么改造?可以添加刷新一次吗?怎么添加?
其实你的程序的问题在于只要Passed == 0,无论是不是正在登陆,必然会显示登陆输入框。
//感叹号去掉
if($user->verify($U_Usermane, $U_Password)) {
// 登录成功
$_SESSION['Passed'] = True;
$_SESSION['U_Usermane'] = $U_Usermane;
}
else {
$Errmsg = "用户名或密码不正确";
echo '你的登陆输入框';
}这样就行了