PHP - cookie 变量和会话变量的有趣行为

2024-01-19

我在下面写了一个 PHP 脚本来演示我的问题。像这样运行下面的代码:http://localhost/test.php?test=10 http://localhost/test.php?test=10,然后运行http://localhost/test.php?test=11 http://localhost/test.php?test=11, then http://localhost/test.php?test=12 http://localhost/test.php?test=12等。您将看到屏幕上回显的数字始终是网址编号后面的 1 位数字?!也许是因为我无法获取 cookie 并立即读取相同的 cookie?




//If query string has $test, store in session, and cookie for later. 
if($_GET[test]){
  $_SESSION['test'] = $_GET[test];
  setcookie("test", $_GET[test], time()+60*60*24*30*12*10); //10 years
}

//If user comes back later, then get $test from cookie
if (isset($_COOKIE["test"])){
  $_SESSION['test'] = $_COOKIE["test"];
}

echo "session test: " . $_SESSION['test'];
  

后来我用下面的代码解决了这个问题,但是解决还不够好,我想知道为什么会发生这种情况!

这解决了它:




if($_GET[cid]){
  setcookie("campaignid", $_GET[cid], time()+60*60*24*30*12*10); //10 years
  $_SESSION['campaignid'] = $_GET[cid];
}elseif (isset($_COOKIE["campaignid"])){
  $_SESSION['campaignid'] = $_COOKIE["campaignid"];
}

  

也许是因为我无法获取 cookie 并立即读取相同的 cookie?

确切地。您发送的 cookie 仅在下一个请求中在 $_COOKIE 数组中可用,因为 $_COOKIE 超全局数组已填充客户端请求中的数据。起初要求什么都没有。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP - cookie 变量和会话变量的有趣行为 的相关文章

  • 递归获取数组的键并创建下划线分隔的字符串

    现在我得到了一个包含某种信息的数组 我需要从中创建一个表 例如 Student Address StreetAddress gt Some Street StreetName gt Some Name Marks1 gt 100 Marks
  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • gmail 不断阻止 PHPmailer 登录

    我将在接下来的 8 小时内部署一个网站 而 Gmail 刚刚停止接受 PHPmailer 登录我的帐户 起初 它在测试过程中工作了几个小时 然后 它就停止工作了 我已经允许所有允许不太安全的应用程序从 gmail 登录 但它仍然不允许 ph
  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • PHP 会话不适用于游戏

    我正在尝试模仿一款名为 SKUNK 用骰子玩 的游戏来完成一项作业 我无法让会话正常工作 这是我第一次使用 PHP 我还被告知无需会议即可完成 这是我的代码
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • 从 smarty 访问 PHP 文件的变量(本地或全局)

    我有一个 php 文件 其中包含一些本地和全局变量 例如 foo 从此文件中调用 smarty 对象 如何在不更改 PHP 文件的情况下从 smarty 脚本访问 foo Thanks 如果你有一个名为 BASE 的常量变量 并且定义如下
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 表单提交后如何保留选择字段中的选定值?

    我有一个用于将票证上传到数据库的主页 我有一个选择字段 我想保留用户在提交表单之前选择的值 但它没有发生 这是我选择字段的代码
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • VS2010 - 文件新菜单缺少“新项目”

    一位同事刚刚从 MSDN 安装了 Visual Studio 2010 Premium 安装运行得很好 但是当他单击 文件 菜单时 他只有 新文件 在我的安装中 我看到一个 新建 菜单 其中包含一个子菜单 其中包含项目 文件 团队项目 关于
  • 在非模式对话框中阻止 ESC 和 Enter 键(Win32、非 MFC)

    有一些关于这个主题的文章 但没有一篇适合我的情况 我正在使用 Win32 无 MFC 编写以下内容 目标是防止ESC or ENTER键关闭非模式对话框 这是对话框模板 IDD DIALOG 1 DIALOGEX 0 0 345 179 S
  • Web应用Nat穿越

    我们正在全国各地的客户端计算机上使用 Tomcat 部署 Java Web 应用程序 一旦安装完毕 我们希望允许通过中央服务器远程访问这些 Web 应用程序 但我们不希望我们的客户端必须在其路由器上打开端口 有没有办法通过隧道传输 http
  • 如何使用gradle在Android Studio中导入远程库?

    我正在尝试导入 android swipelistview https github com 47deg android swipelistview https github com 47deg android swipelistview
  • C# 中的不可变类型和属性

    C 中的不可变类型和不可变属性是什么意思 你能举个简单的例子吗 不可变类型是其属性只能在初始化时设置的类型 一旦创建了对象 就无法再更改任何内容 不可变属性只是只读属性 在下面的示例中 ImmutableType是一种具有一个属性的不可变类
  • SQL服务器T-SQL语句

    我有一个表 其名称 UserData 及其包含一个列名称 用户信息 UserInfo 列包含以下值 例如 演示 acc in 瑞士网 澳大利亚大学教育网 我想从中提取以下信息 Output demo swiss austa 预先感谢您的帮助
  • cmake 中 -D 选项中的间距

    D CMAKE C COMPILER是我用来选择编译器的 但是 如果我有打开 关闭的 CMake 选项 例如USEIPHONEFLAG 我需要去做 DUSEIPHONEFLAG 1 D USEIPHONEFLAG 1不起作用 我想知道之后的
  • 如何从相机获取全尺寸位图?

    我已经使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • 设置当前代理设置

    I used SCDynamicStoreCopyProxies检索代理信息 我希望一旦有了字典 我就能够设置当前的代理设置 结果发现字典返回的是SCDynamicStoreCopyProxies是只读的 如何更改当前的代理设置 到目前为止
  • Win8 是否也为旧版应用程序添加了内置拼写检查器?

    根据MSDN http msdn microsoft com en us library windows desktop hh869748 28v vs 85 29 aspx 在 Windows 8 中 内置拼写检查来编辑控件 好吧 我在我
  • 根据 WooCommerce 中的自定义字段值将文本添加到订单摘要

    我已成功将自定义字段添加到我的 WooCommerce 结帐页面 该字段是客户可以选择从中提取商品的不同商店的选择器 目前 它在结帐页面上显示此字段 我正在使用 jQuery 在选择器下方添加信息并相应地更新运费 接下来我需要做的是在客户的
  • iOS 崩溃:未加载库 mremap_encrypted

    应用程序审查团队说我的应用程序总是在启动时崩溃 他们给了我一些崩溃日志 如下所示 Dyld Error Message Dyld Message Library not loaded rpath RestKit framework Rest
  • 打印二维列表的Pythonic方法——Python

    我有一个这样的二维字符列表 a 1 2 3 4 5 6 7 8 9 将列表作为整个块打印的最 Pythonic 方法是什么 IE 没有逗号或括号 123 456 789 有很多方法 大概是一个str join的映射的str joins gt
  • 判断不定冠词的Javascript库

    是否存在用于确定名词的不定冠词 a 与 an 的 JavaScript 库 我可以从一个简单的正则表达式开始 如下所示 var pattern aeiou i pattern test umbrella 但这不能处理像这样的情况 user
  • int foo = foo 的标准参考

    int foo foo 编译 C 标准的哪一部分允许这样做 3 3 1 声明点 basic scope pdecl 名称的声明点紧接在其完整声明符 第 8 条 之后和其初始值设定项 如果有 之前 如果声明位于文件范围内 则行为已明确定义 如
  • 如何放心地比较\断言双值

    我正在尝试将 JSON 中的 assert double 与java 原始double 值进行比较 正确的做法是什么 我用简单而常规的方式来做到这一点 使用Matchers equalTo方法见下文 public class A priva
  • Java:相当于Python的范围(int,int)?

    Java 有与 Python 相当的东西吗range int int method 老问题 新答案 针对 Java 8 IntStream range 0 10 forEach n gt System out println n 或使用方法
  • C++ 中的线程安全单例实现

    以下是 C 中单例模式的一个众所周知的实现 但是 我不完全确定它是否是线程安全的 根据之前对类似问题的回答 它似乎是线程安全的 是这样吗 Curiously Recurring Template Pattern Separates a cl
  • SQL 仅当所有行都满足条件时才选择行

    我对 SQL 还很陌生 虽然我可以编写大部分查询 但在这个方面我一无所获 我想在可以使用 JPA 执行的单个查询中实现此目的 TABLE RULE RULE ID ENABLED 1 0 2 0 3 0 4 1 5 1 TABLE MISC
  • PHP - cookie 变量和会话变量的有趣行为

    我在下面写了一个 PHP 脚本来演示我的问题 像这样运行下面的代码 http localhost test php test 10 http localhost test php test 10 然后运行http localhost tes