取消设置会话 PHP 不能正常工作

2024-01-10

我想在单击注销按钮时取消设置用户名和购物车。 如果我想放置,如果单击注销,那么会话将取消设置,我应该怎么做?

我的代码有效 然而,当我再次点击登录时, 登录信息不存储在会话中。 它不断要求我再次登录,而不是进行通常的流程。 我可以知道出了什么问题吗?

这是我的代码 购物车.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(使用前将#替换为@)

取消设置会话 PHP 不能正常工作 的相关文章

  • 验证 LDAPS 连接的自签名证书

    我想从 Linux Linux 3 2 0 4 amd64 1 SMP Debian 3 2 51 1 x86 64 GNU Linux 客户端到 Windows 2012 服务器建立安全的 ldap 连接 ldaps 以更改活动中的用户密
  • Yii2 组件将数据传递给 __construct

    我有一个库 我想将其用作组件 在配置文件中我这样设置 components gt superLib gt class gt SuperLib construct gt first second Maybe Yii 2 have proper
  • 检查字符串是否编码为 UTF-8

    function seems utf8 str length strlen str for i 0 i lt length i c ord str i if c lt 0x80 n 0 0bbbbbbb elseif c 0xE0 0xC0
  • MySQL如何从多个表中获取数据

    我正在寻找 php MySQL jquery 的帮助 我有2张桌子 table1表 1 有 4 列 id 标题 desc thumb img tabel2表 2 有 3 列 id 表 id img 我只想将 2 个表与 get QS 的值进
  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td
  • 获取php中两个日期之间的天数[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我试图获取两个日期之间的天数 但返回的结果不正确 这是我的尝试 t time get the time Y m d g
  • .htaccess 主要用于 localhost

    我在本地主机上使用 wamp server 虚拟主机名为www xyz com我有一个通过 git 设置的部署服务 它将代码部署到服务器上www xyz in 这是我的 htaccess 代码 RewriteEngine on Rewrit
  • Yii2:使用 Pjax POST 方法和分页在 Gridview 中搜索

    我是 yii2 的初学者 尝试在搜索按钮上使用 Pjax 来搜索 Gridview 中的字段 我已经使用 GET 方法完成此操作 但我想使用 POST 方法完成此操作 那么我该如何使用 Yii2 Pjax post 方法 和分页来做到这一点
  • 表头在 php 中的 for 循环中重复

    我正在尝试从数据库创建排行榜 我将数据打印在列表中 当我尝试将此数据放入 html 表中时 标题在每次数据输入后都会重复 这是 for 循环导致的 但我不知道如何只打印一次标题 然后将数据插入到每一行中 任何帮助将不胜感激 代码和结果的屏幕
  • 在 PHP 中的请求之间存储对象而不进行序列化

    我正在用 PHP 编写一个有状态的 Web 应用程序 其中状态可能包含大量对象 目前 我将所有这些对象保存在 SESSION 中 并在请求结束时将它们序列化 这有点痛苦 因为序列化整个会话需要几秒钟 而反序列化则需要更多时间 我想尝试 AP
  • 使用 cURL PHP 发布到 Facebook 用户的墙

    我正在存储 facebook 用户 ID 和访问令牌 我可以将此信息发布到选定用户的留言墙上吗 在这里找到以下代码 http developers facebook com docs reference api post http deve
  • PHP UTF-8 问题 - 如果我在 PHP 中创建一个字符串...它是 UTF-8 格式吗?

    在 PHP 中 如果我创建一个像这样的字符串 str bla bla here is my string 然后我可以使用 mbstring 函数将该字符串作为 UTF8 进行操作吗 Will this work str mb strlen
  • SMTP:无法连接套接字:无法找到套接字传输“ssl”

    我一直在尝试在 WAMP 上使用 Pear 发送电子邮件通过 GMail 花了几个小时将其全部设置并找出我遇到的所有错误后 我以为我已经很接近了 直到我开始收到此错误 Failed to connect to ssl smtp gmail
  • Laravel - 动态更改电子邮件设置不起作用

    我的应用程序的所有电子邮件设置都存储在数据库中 用户可以选择更改这些设置 而且一切都很好 但我正在尝试设置 发送测试电子邮件 功能 以允许用户在保存设置之前测试其设置 当他们提交发送测试电子邮件的表单时 电子邮件将通过原始设置而不是新设置发
  • PHP 中消息队列和工作系统的有效架构?

    我正在尝试了解我想要在 PHP 应用程序中实现的消息队列模型和作业 我的目标是卸载需要发送到多个第三方 API 的消息 数据 因此访问它们不会减慢客户端的速度 所以将数据发送到消息队列是理想的 我考虑过仅使用 Gearman 来保存 MQ
  • 语言翻译语法

    我正在尝试为我的项目添加另一种语言 我们知道语言可以表现出主语和谓语的差异 例如 英语 Mustafa和他的朋友去看电影ahmet today 土耳其 Mustafa布昆 阿卡达西ahmetile birlikte sinemaya git
  • Chrome 问题 - 视频流和会话冲突

    我在使用 javascript 和 PHP 实现视频时遇到问题 索引 php session start do other stuff include video php 视频 php
  • 检查外部图像是否存在的正确 PHP 方法?

    我知道至少有 10 个相同的问题有答案 但似乎没有一个对我来说完美无缺 我正在尝试检查内部或外部图像是否存在 图像 URL 是否有效 fopen url r 失败 除非我使用 fopen Warning fopen http example
  • PHP:使用输入和输出参数(不是“INOUT”)调用 MySQL 存储过程

    我想从 PHP 调用 MySQL 中的存储过程 该过程需要输入and输出参数 not INOUT 参数 举一个简单的例子 假设我在 MySQL 中有以下存储过程 DELIMITER DROP PROCEDURE IF EXISTS test
  • 服务器端文件验证在 Yii.2.0 中不起作用

    Is the FileValidatorYii2 中的类只支持客户端验证 我使用代码编写了文件上传系统 在模型中 public function rules return allAllowedFileType safe allAllowed

随机推荐

  • 使用“如果单元格包含#N/A”作为公式条件。

    我需要有关 Excel 工作表的帮助 我如何声明以下内容IF状态正常吗 if A1 n a then C1 B1 else if A1 n a or has value int then C1 A1 B1 在中输入以下公式C1 IF ISN
  • 谷歌分析帐户ios配置

    我正在尝试配置谷歌分析GoogleService info plist文件来自谷歌开发者网站 https developers google com mobile add 昨天我配置了一个应用程序 没有出现任何问题 但今天我无法配置我的第二
  • 如何构建混合阵列

    在 ruby 中 我可以创建充满类型的数组 1 hello world Fixnum String Symbol gt 1 hello here Go中如何实现类似的数组填充混合类型 如何声明数组 您可以通过空界面来做到这一点 interf
  • 拖动时自动滚动可放置的 div

    在这个小提琴中 http jsfiddle net adrianjsfiddlenetuser zyUkd 76 http jsfiddle net adrianjsfiddlenetuser zyUkd 76 没有粉红色背景颜色的按钮可以
  • 随机生成器和 CUDA

    我有一个关于 CUDA 中的随机生成器的问题 我使用 Curand 生成随机数 代码如下 device float priceValue int threadid unsigned int seed threadid curandState
  • 条件属性如何工作?

    我有一些标记为的辅助方法 Conditional XXX 目的是在仅存在 XXX 条件编译符号时使方法进行条件编译 我们使用它来调试和跟踪功能 并且效果很好 在我研究条件编译如何工作的过程中 我发现了几个资料来源 说明了标记有Conditi
  • Android 无法绑定到服务(在应用程序计费中)

    我正在尝试在我的应用程序中实现应用程序计费 但我遇到了一些问题 我正在使用 Android 开发人员网站上的示例 每次我启动将连接到计费服务的活动时 它都会向我显示一个无法连接到服务器的对话框 当我按 了解更多 时 它会转到一个正在解释我的
  • 将右侧“完成”按钮 (UIBarButtonItem) 添加到 UINavigationController

    我看到这里有人问了类似的问题 如何向 UINavigationController 添加右键 https stackoverflow com questions 1219779 how to add a right button to a
  • VS Code 找不到 python 3 解释器

    我是第一次安装 Python 3 7 2 并且使用 VS Code python 扩展 当我跑步时python V I get Python 2 7 10这是不正确的 当我选择usr local bin python3VS Code 中的解
  • 一个应用程序中有两个 google-services.json (具有不同的帐户)

    是否可以在 Android 应用程序中使用两个不同的帐户来访问谷歌的两种不同服务 我想通过帐户使用 Google Analytics 分析 电子邮件受保护 cdn cgi l email protection和 Firebase 帐户崩溃报
  • “git checkout <文件名>”和“git checkout -​- <文件名>”之间的区别

    http norbauer com notebooks code notes git revert reset a single file http norbauer com notebooks code notes git revert
  • 主要编译器/工具链对 C99 的支持状况如何?

    对我在这里发表的评论的回应让我停下来思考 我真的不知道 C99 支持的状况如何 维基百科提供了一些编译器的详细信息 但我对 C99 不够熟悉 无法了解该标准的所有细节 因此我正在寻找该问题的格式塔概述答案 主要编译器 工具链对 C99 的支
  • ggplot2 的小提琴图与 x 轴上的数据集的顺序不同

    I created the using below code But on the x axis Models name are not in order as in the data set i e Observed SVM Grid S
  • 如何用CMake安装依赖库?

    我想安装所有依赖库 为了做到我所做的 install FILES path external dll DESTINATION lib 但是 我已经配置了路径 和库 target link libraries target link libr
  • 我正在尝试应用多标签分类

    我正在尝试应用多标签分类 形状是 x train shape 3975 3788 y train shape 3975 66 x test shape 994 3788 y test shape 994 66 当我尝试训练时 出现以下错误
  • 迭代 Pandas 中的行和列

    我正在尝试填充列中所有 NaN 值的平均值 import numpy as np import pandas as pd table pd DataFrame A 1 2 np nan B 3 np nan np nan C 4 5 6 d
  • 对 Promise 中 thenable 回调的工作方式感到困惑吗?

    我是 JS 的新手 正在学习 Promise 我想展示的代码摘录是这样的 promisedFunction then data gt console log data 或者简单地 promisedFunction then console
  • 使用严格会导致未定义的函数

    我正在尝试组织我的 js 文件并遵循建议的模块模式 当我在此模式中使用 use strict 时 函数被声明为未定义 如果没有 use strict 方法 该函数就可以正常工作 是否建议使用严格模式 如果是 为什么该功能在使用它时不起作用
  • 如何在android平台的unity3d中使用c#线程?

    我需要加载文件 场景并在线程中播放动画 尝试在 Android 中通过 www 加载文件 如何通过线程做其他事情 但是为什么游戏引擎不允许我们创建线程呢 或者我的理解是错误的 如何在 UNITY3D 中创建线程 您可以在 Unity 中使用
  • 取消设置会话 PHP 不能正常工作

    我想在单击注销按钮时取消设置用户名和购物车 如果我想放置 如果单击注销 那么会话将取消设置 我应该怎么做 我的代码有效 然而 当我再次点击登录时 登录信息不存储在会话中 它不断要求我再次登录 而不是进行通常的流程 我可以知道出了什么问题吗