问题在标题中。
我可以在webroot中的php文件中访问$_COOKIE['blah']
,但出于安全目的,我已经包含在webroot之外,无法访问它。
示例
/home/wwwroot/index.php
可以阅读$ _COOKIE ['blah']
它的完整路径为http://www.mydomain.com/index.php
。
/home/scrape/process.php
CAN NOT 读取$ _COOKIE ['blah']
但它在webroot之外,scrape
文件夹无法在服务器外访问。
Index.php 可以回显存储在cookie中的值,还会将带有值的时间戳写入日志文件。这很有效。
没有发布所有代码并试图保持这个简单,它就像这样简单:
<?PHP
include '../scrape/process.php'; // THIS FILE IS OUTSIDE THE WEBROOT
$cook=$_COOKIE['blah'];
echo "Cookie value is : " . $_COOKIE['blah'] ;
error_log('['.date("F j, Y, g:i a e O").']'.$cook."<br /> \n", 3, $phperrorPath);
?>
<?PHP
echo 'Outer cookie is : ';
echo outer_cookie();
?>
从index.php调用Process.php 函数,然后返回cookie的值,并使用时间戳和cookie值编写自己的日志文件。这不起作用。日志文件只有时间戳没有值,并且它不会向index.php返回任何内容。
function outer_cookie()
{
$cook=$_COOKIE['blah'];
error_log('['.date("F j, Y, g:i a e O").']'.$cook."<br /> \n", 3, $phperrorPath);
return $cook;
}
如何让process.php读取cookie数据?我显然无法将cookie路径设置为webroot之外的东西,即使我可以,那么webroot中的所有内容都无法访问...
我是否必须在Cookie旁边使用$_SESSION
?我不想重复这项工作......
答案 0 :(得分:0)
这项工作是否应该在您的域或一个域的子域中。
您无法在没有网络访问权限的文件中访问index.php
中的Cookie集,也无法通过浏览器对其进行解析。
检查php.net:
Cookie是一种在远程浏览器中存储数据并因此跟踪或识别返回用户的机制。 Cookie是HTTP标头的一部分,因此必须在将任何输出发送到浏览器之前调用setcookie()。