【问题标题】:PHP cookie variable getting deleted between programsPHP cookie变量在程序之间被删除
【发布时间】:2023-03-20 15:50:01
【问题描述】:

我尝试在此论坛上搜索此问题,但找不到。于是发新帖。请求您将我重定向到正确的解决方案(如果有)。

问题:我正在尝试使用 javascript SDK 在我的程序中使用 Facebook 登录。一旦验证了用户的接受,我会将用户传递给一个 php 程序,该程序会验证电子邮件 ID 是否已经注册,连接帐户并将用户重定向到他的主页。

我正在尝试在我的验证程序的 cookie 中注册用户的用户 ID。问题是,当我在验证程序的最后一行对 $_COOKIE 执行 var_dump 时,我可以看到一个名为 userid 的变量,但是当我在主页的第一行执行相同操作时,我看不到多变的。 cookie 变量在页面之间的某处丢失。

两个页面都将 session_start() 作为它们的第一行代码。

感谢期待。

问候, 喜满洲

添加代码

setcookie("user", $user, time()-86400); 
setcookie("user", $user, time()+86400,"/"); 
setcookie("userid", $id, time()-86400); 
setcookie("userid", $id, time()+86400,"/"); 
setcookie("name", $fname, time()-86400); 
setcookie("name", $fname, time()+86400,"/"); 
setcookie("fb", '1', time()-86400); 
setcookie("fb", '1', time()+86400,"/"); 


if((!$_SESSION['where'])||($_SESSION['where'] == ''))
{
    header("Location: http://www.xyz.com/mypage.php"); 
}
else
{
header("Location: $url");
}

在mypage.php中,前两行如下:

<?php
session_start();
print_r($_COOKIE);

希望现在更清楚

【问题讨论】:

  • 你能添加一些代码吗?
  • session_start() 与 cookie 存储会话 id 以外的任何 cookie 完全无关。程序是否在同一个域中?
  • 程序在同一个域中。
  • 这就是我设置cookie的方式 setcookie("user", $user, time()-86400); setcookie("user", $user, time()+86400,"/");
  • 没有看到你的代码就帮不了你。阅读以下内容:stackoverflow.com/questions/4203225/… 关于设置 cookie 的过期时间。您是否设置了到期日期/时间?

标签: php session cookies


【解决方案1】:

除了设置 $_COOKIE 变量之外,您还使用setcookie 吗? setcookie 写入 cookie 文件,而 $_COOKIE 只是用户在页面加载时作为 cookie 拥有的状态。

更简单的版本:用setcookie 写入,用$_COOKIE 读取。 如果您需要立即访问 $_COOKIE,只需将 $_COOKIE 与 setcookie 调用一起设置即可。

例子:

<?php
//write
    setcookie('name', $value, $expirationInSeconds);
    $_COOKIE['name'] = $value;
//read
    $id = $_COOKIE['name'];

【讨论】:

  • 我已经用代码 sn-p 更新了这个问题。当我分别手动调用这两个页面时,我看到了变量。当我允许标头重定向 url 时,我看不到它们。
  • @HimanshuJoshi 您是否在 setcookie 中正确设置了您的域?在我的代码中,我使用这个:setcookie('LOGIN_DATA', $classData, time() + $expiration, '/', null, false, true);null 域默认设置您网站的域名)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
相关资源
最近更新 更多