我要做的是根据是否设置了$_SESSION,在同一位置显示两个单独的div。当没有注意到$_SESSION时,会显示该表单,当有$_SESSIONS时会显示帐户信息。发生的情况是,当我登录时,它会将我发送到同一个屏幕,并使用相同的表单,但当我刷新浏览器时,帐户信息会显示为替换表单。有人能理解为什么当我最初登录某人并设置了$_SESSION时,交换没有进行吗?
$signedIn='<h3 id="signedInHeader">Welcome </h3><p><a href="convenientaddaddress.php"> Add Address </a></p>
<p><a href="convenientaccountinfo.php"> Account Info </a></p>
<p><a href="convenientsignout.php"> Sign Out </a></p>
<p><a href="convenientaddcreditcard.php"> Add C Card </a></p>';
$form='<form id="signInForm" method="POST" action="index.php"><h3 id="formHeader">Sign Into Account</h3><br/>
<p id="pRegister"><a id="register" href="convenientregisterpage.php"> Register </a></p><br/>
<label>Email Addr:</label><input type="text" name="userEmail" id="email" size="15"/><br/>
<label>Password:</label><input type="password" name="password" id="password" size="15"/><br/>
<input type="submit" value="Sign In" id="formSubmit" name="submit"/> </form>';
$username='';
$username=$_SESSION['userName'];
if(!$username){
$signedInForm=$form;
}
if(isset($username)){
$signedInForm=$signedIn;
}
$username="";
$email=$_POST['userEmail'];
$password=$_POST['password'];
if(isset($_POST['submit'])){
if(empty($email) || empty($password)){
$msg_to_user3="Fill in both fields";
}
else{
$results=mysql_query("SELECT * FROM register WHERE userEmail='$email'");
if (mysql_num_rows($results)==0)
$msg_to_user3 ="No such User";
else
{
while ($login_row = mysql_fetch_assoc($results))
{
$password_db = $login_row['password'];
if ($password!=$password_db){
$msg_to_user3 ="Password doesn't match";
}
if ($password_db!=$password)
$msg_to_user2="<a id='forgetpassword' href='convenientforgotpassword.php'>Forget Password</a>";
else
{
$active = $login_row['active'];
$userEmail = $login_row['userEmail'];
if ($active==0)
$msg_to_user3= "Activate account at ($userEmail) </p>";
else
{
//assign session
$_SESSION['userName']=$username;
}
}
}
}
}
}
因为$username总是空的。你不会把它放在任何地方。。。
编辑
并非总是空的。但你一直在重写它。