我构建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")
我甚至添加了“/”来指定所有子文件夹和“。”在我的域名之前确保......
请帮助.. stackoverflow是我最后的手段!!
答案 0 :(得分:0)
我发现了我的错误!
cookie本身写得正确,现在可以正常工作了。问题是我定义了变量
$cookie_name = "user";
$cookie_value = "Anna Cake";
在一个文件中并尝试在一个完全不同的文件中再次使用它们,这个文件甚至没有包含第一个文件。而不是试图再次使用这些相同的变量来检查cookie(WAS工作正常!)我已经更改了测试代码以查看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']; }
?>
现在它在我的网站上返回“Anna Cake”,即使cookie仅在索引页面中定义。