无法使用php读取cookie

时间:2012-10-22 09:45:46

标签: php cookies

我创建了一个php文件 order.php ,如下所示

<?php
$plan=$_POST['plan'];
$expire= time()+60*60;
if (empty($plan))
{

echo '<p align="center">You did not select any plan.</p>';
}
else
{
$str1= "http://techbr.duoservers.com/hosting-order/?plan=";
$ur=$str1.$plan;
usleep(1500);
setcookie("ur", $ur, $expire);
header( 'Location: http://cheap-webhosting.co.in/signup.php') ;

}
?>

您可以看到脚本获取“计划”的值,使用该数据创建Cookie ur ,其值为 http://techbr.duoservers.com/ hosting-order /?plan = 44 其中44是计划值,然后重定向到页面 signup.php signup.php的代码如下所示

<?php
$ur = $_COOKIE['ur']; 
echo "<iframe frameborder='0'";
echo 'src="';
echo $ur;
echo '" width="100%" height="1100px"></iframe>';
?>

由于某些原因,当我向order.php文件传递一个计划值时,会创建一个cookie,但由于order.php中的重定向命令而自动加载的signup.php无法读取cookie。但是当我运行一个简单的<?php print_r($_COOKIE); ?> cookie时,会显示正确的值。最重要的是,如果我手动加载signup.php页面加载就好了。但是当使用重定向命令自动加载cookie时,它无法读取cookie。知道什么是错的吗?我可能会补充说,1个月之前它的代码工作得很好,它突然停止了工作

1 个答案:

答案 0 :(得分:2)

您无法读取为其他网址/路径创建的Cookie:

您仅为目录http://techbr.duoservers.com/hosting-order/创建了cookie(因为您省略了path函数的第4个参数set_cookie,php选择当前目录,请参阅下面的引用)

并尝试在另一个访问它:http://cheap-webhosting.co.in/

你不能这样做..例如,你必须强制cookie路径参数为“/”。

参见php doc:

  

路径:

     

可在其上使用cookie的服务器上的路径。如果   设置为'/',cookie将在整个域中可用。如果   设置为'/ foo /',cookie只能在/ foo /中使用   目录和所有子目录,例如/ foo / bar / of domain。的的   默认值是正在设置cookie的当前目录   英寸

来源:http://php.net/manual/en/function.setcookie.php