PHP cookie变量在程序之间被删除


PHP cookie variable getting deleted between programs

我试着在这个论坛上搜索这个问题,但无法得到它。所以做一个新的帖子。如果有正确的解决方案,请重新引导我。

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

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

这两个页面的第一行代码都是session_start()。

谢谢你的期待。

问候,Himanshu

代码添加

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);

希望现在更清楚了

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

简单版本:用setcookie写,用$_COOKIE读。如果你现在需要$_COOKIE是可访问的,只需设置$_COOKIE和setcookie调用。

示例:

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