2012-10-22 116 views
0

一个cookie我创建一个PHP文件,order.php其如下所示无法读取使用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。任何想法有什么不对?我想补充一点的代码中使用就好了约1个月前就停止工作,一下子

回答

2

您无法读取并已为其他网址/路径下创建一个cookie的工作:

你创造您的Cookie只对目录http://techbr.duoservers.com/hosting-order/(因为你被遗漏的set_cookie函数的第四个参数path,PHP选择当前目录,见下文报价)

和尝试访问它的另一个问题:http://cheap-webhosting.co.in/

你可以不这样做..你必须强迫这个例如,cookie路径参数为“/”。

看到了PHP文档:

路径:

其中的cookie将可在服务器上的路径。如果 设置为“/”,则Cookie将在整个域中可用。如果 设置为'/ foo /',则cookie将仅在/ foo/ 目录和所有子目录(如/ foo/bar/of域)中可用。 的 默认值是当前目录该cookie被设置在

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