来自单击的链接时未加载 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 文件
Laravel 5.4 - 单击电子邮件中的验证链接时未传递或发送电子邮件验证令牌令牌。