无法从我网站的任何其他部分访问 Cookie。我怎样才能解决这个问题?
Cookie can't be accessed from any other part of my site. How can I fix this?
我构建 PHP 站点的方式经常使用诸如
之类的命令
<?php include($_SERVER['DOCUMENT_ROOT'] . "/scripts/create_comment_section.php"); ?>
将一系列单独的页面串成一个整体。也许这可能是以下问题的根源?我一直在看教程,用头撞墙一个小时,但无济于事。
在我用来练习编码的网站的根目录 (/index.php) 中,我定义了一个持续 2 分钟的 cookie。我在包含我所有 <!doctype>
和 <head>
内容的文件之前定义了它。
summon.endgame.pk/index.php:
<?php
$cookie_name = "user";
$cookie_value = "Anna Cake";
setcookie($cookie_name, $cookie_value, time() + (60 * 2), "/", ".endgame.pk"); // 60 seconds x 2 = 2 mins
?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/html_head.html"); ?>
<body>
<!-- ✎ background image - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<img src="/img/background-top.jpg" style="position: absolute; left:0px; top:0px; z-index:1">
<!-- ✎ login panel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<?php include($_SERVER['DOCUMENT_ROOT'] . "/homepage/login.html"); ?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/homepage/article_intro.html"); ?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/homepage/article_news.html"); ?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/html_foot.html"); ?>
我网站上的每个页面都包含文件 /homepage/login.html,用于检查是否已设置 cookie:
<!-- login panel -->
<div class="table1" style="position: absolute; top: -30px; left: 800px; width:400px; height: 200px; z-index: 2; padding: 35px 15px 15px 15px;">
<span class="title1">Login</span>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!"; }
else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name]; }
?>
</div>
当我转到我的主页(首次发送 cookie 的地方 - index.html)并刷新该页面两次(发送 cookie 并检查它)时,它显示完美。但是,当我尝试访问我网站的任何其他部分(例如 summon.endgame.pk/summon_chance)并尝试读取该 cookie .... 它说它尚未设置。
这是我第一次绑定使用 cookies ...我已经阅读了几个小时的教程,我不明白为什么它在其他页面上不起作用,因为我已经在网站的索引中定义了它.
$cookie_value, time() + (60 * 2), "/", ".endgame.pk")
我什至添加了“/”来指定所有子文件夹,以及“.”在我的域名之前确保...
请帮忙.. Whosebug 是我最后的选择!!
我发现了我的错误!
cookie 本身已正确编写,现在可以使用了。问题是我定义了变量
$cookie_name = "user";
$cookie_value = "Anna Cake";
在一个文件中,然后尝试在一个完全不同的文件中再次使用它们,该文件甚至没有包含第一个文件。我没有尝试再次使用这些相同的变量来检查 cookie(它已经完美地工作了!)我已经更改了测试代码以查看是否已从以下位置记录了 cookie:
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!"; }
else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name]; }
?>
到
<?php
if(!isset($_COOKIE['user'])) {
echo "Cookie named 'user' is not set!"; }
else {
echo "Cookie 'user' is set!<br>";
echo "Value is: " . $_COOKIE['user']; }
?>
现在它 returns "Anna Cake" 遍及我的整个网站,即使 cookie 仅在索引页面中定义。
我构建 PHP 站点的方式经常使用诸如
之类的命令<?php include($_SERVER['DOCUMENT_ROOT'] . "/scripts/create_comment_section.php"); ?>
将一系列单独的页面串成一个整体。也许这可能是以下问题的根源?我一直在看教程,用头撞墙一个小时,但无济于事。
在我用来练习编码的网站的根目录 (/index.php) 中,我定义了一个持续 2 分钟的 cookie。我在包含我所有 <!doctype>
和 <head>
内容的文件之前定义了它。
summon.endgame.pk/index.php:
<?php
$cookie_name = "user";
$cookie_value = "Anna Cake";
setcookie($cookie_name, $cookie_value, time() + (60 * 2), "/", ".endgame.pk"); // 60 seconds x 2 = 2 mins
?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/html_head.html"); ?>
<body>
<!-- ✎ background image - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<img src="/img/background-top.jpg" style="position: absolute; left:0px; top:0px; z-index:1">
<!-- ✎ login panel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<?php include($_SERVER['DOCUMENT_ROOT'] . "/homepage/login.html"); ?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/homepage/article_intro.html"); ?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/homepage/article_news.html"); ?>
<?php include($_SERVER['DOCUMENT_ROOT'] . "/html_foot.html"); ?>
我网站上的每个页面都包含文件 /homepage/login.html,用于检查是否已设置 cookie:
<!-- login panel -->
<div class="table1" style="position: absolute; top: -30px; left: 800px; width:400px; height: 200px; z-index: 2; padding: 35px 15px 15px 15px;">
<span class="title1">Login</span>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!"; }
else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name]; }
?>
</div>
当我转到我的主页(首次发送 cookie 的地方 - index.html)并刷新该页面两次(发送 cookie 并检查它)时,它显示完美。但是,当我尝试访问我网站的任何其他部分(例如 summon.endgame.pk/summon_chance)并尝试读取该 cookie .... 它说它尚未设置。
这是我第一次绑定使用 cookies ...我已经阅读了几个小时的教程,我不明白为什么它在其他页面上不起作用,因为我已经在网站的索引中定义了它.
$cookie_value, time() + (60 * 2), "/", ".endgame.pk")
我什至添加了“/”来指定所有子文件夹,以及“.”在我的域名之前确保...
请帮忙.. Whosebug 是我最后的选择!!
我发现了我的错误!
cookie 本身已正确编写,现在可以使用了。问题是我定义了变量
$cookie_name = "user";
$cookie_value = "Anna Cake";
在一个文件中,然后尝试在一个完全不同的文件中再次使用它们,该文件甚至没有包含第一个文件。我没有尝试再次使用这些相同的变量来检查 cookie(它已经完美地工作了!)我已经更改了测试代码以查看是否已从以下位置记录了 cookie:
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!"; }
else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name]; }
?>
到
<?php
if(!isset($_COOKIE['user'])) {
echo "Cookie named 'user' is not set!"; }
else {
echo "Cookie 'user' is set!<br>";
echo "Value is: " . $_COOKIE['user']; }
?>
现在它 returns "Anna Cake" 遍及我的整个网站,即使 cookie 仅在索引页面中定义。