来自单击的链接时未加载 PHP Cookie

Posted

技术标签:

【中文标题】来自单击的链接时未加载 PHP Cookie【英文标题】:PHP Cookies not being loaded when coming from a clicked link 【发布时间】:2016-02-09 15:30:39 【问题描述】:

我正在开发一个将用户会话令牌保存在 $_SESSION 中的网站。当我直接输入 URL 时,我可以很好地加载 cookie,但是当我点击通过 php 加载 cookie 的页面时,它找不到 cookie。有没有办法解决这个问题?

这是保存cookie的代码

setcookie("tpl_token", $token, time()+365*24*60*60, "/");

用于检索

if(isset($_COOKIE['tpl_token']))
    $token = $_COOKIE['tpl_token'];
 else 
    echo "Cookie not set";

返回的是未设置 cookie。

【问题讨论】:

请向我们展示您的代码,以便我们诊断您的问题。 已更新,对此感到抱歉。 tpl_token 假定的会话 cookie 吗? 你不能只用session_start()吗? 这会影响 cookie 的加载吗? 【参考方案1】:

要在 PHP 中创建会话,请使用 session_start() 函数。 PHP 在内部为您处理会话,因此您不必做任何脏活。

例子:

session_name("tpl_token");
session_start(); //sends session cookie with name "tpl_token"

//create session variable.
$_SESSION["logged_in"] = true;

if(isset($_SESSION["logged_in"]))
//stuff to do if user is logged in already
 else 
//stuff to do if user is not logged in.


//Destroy Session/Logout;
session_unset();
session_destroy();

如果您尝试创建会话 cookie,则不需要 $_COOKIE[] 函数

【讨论】:

以上是关于来自单击的链接时未加载 PHP Cookie的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Response::download 不起作用,单击按钮时未下载 pdf 文件

单击php中的链接(来自数据库)后没有任何显示

Laravel 5.4 - 单击电子邮件中的验证链接时未传递或发送电子邮件验证令牌令牌。

使用 PHP,如何链接页面并在单击时使用变量加载它? [复制]

页面在获取当前位置时未加载

冷启动 iOS 14 时未处理 iOS Firebase 动态链接