我想在单击注销按钮时取消设置用户名和购物车。
如果我想放置,如果单击注销,那么会话将取消设置,我应该怎么做?
我的代码有效
然而,当我再次点击登录时,
登录信息不存储在会话中。
它不断要求我再次登录,而不是进行通常的流程。
我可以知道出了什么问题吗?
这是我的代码
购物车.php
$logout = "allproducts.php";
if(isset($logout))
{
unset($_SESSION['supermarketcart']);
unset($_SESSION['MM_Username']);
}
?>
<?php
if(isset($_SESSION['MM_Username']) == NULL)
{
echo "<a href='login.php'>Login</a> " ;
}
else
{
echo " <a href='$logout'>Logout</a> ";
}
?>
登录.php
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "login.php?fail=1";
$MM_redirecttoReferrer = false;
mysql_select_db($database_MyDatabase, $MyDatabase);
$LoginRS__query=sprintf("SELECT username, password FROM user_data WHERE username=%s AND password=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $MyDatabase) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
正如巴马尔所说,你有一个始终真实的条件,它总是会打乱你的部分。相反,您应该做的是为注销页面放置一个静态地址,并传递 GET 变量。让我们来实现吧$_GET['logout']
并赋值1
<?php
if(isset($_SESSION['MM_Username']) == NULL)
{
echo "<a href='login.php'>Login</a> " ;
}
else
{
echo " <a href='allproducts.php?logout=1'>Logout</a> ";
}
?>
然后检查GET variable
而不是一直存在的$logout
if($_GET['logout']==1)
{
unset($_SESSION['supermarketcart']);
unset($_SESSION['MM_Username']);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)