【问题标题】:Variables and session variables not working in php includes在 php 中不起作用的变量和会话变量包括
【发布时间】:2013-08-12 09:05:43
【问题描述】:

好的..原谅我,已经发布了几个类似的问题,并且正确的回答...我知道有一天我必须向互联网上的人寻求帮助,但我从没想过会这么愚蠢。 ..

这是我的代码..到目前为止..

index.php:

include "http://www.mywebsite.com/shared.php";
$page = "homepage";

include "http://www.mywebsite.com/htmlheader.php"; //trying to use "page" variable in here
echo ("<br>test2: " . $_SESSION['test']);
include "http://www.mywebsite.com/htmlfooter.php";

shared.php:

session_start();
$_SESSION['test'] = "what the f_ck im scared";

htmlheader.php:

echo ("test1: " . $page . "<br>" . $_SESSION['test']);

现在的输出是:

测试1:

测试2:

(所以页面被包括在内..只是无法使用变量..)根据我目前的理解,这应该打印如下:

test1:f_ck 我害怕什么

test2:主页我害怕什么 f_ck

..有趣的是,我对使用变量的包含没有任何问题。我添加了一些东西,但后来它随机停止工作,所以我把它缩小到这个范围,试图找出问题所在。我假设我犯了一些愚蠢的错误。

【问题讨论】:

    标签: php variables include


    【解决方案1】:

    确保您已使用session_start(); 开始会话

    还要检查allow_url_fopenallow_url_include 或两者是否已在php.ini 中设置为0(禁用)。如果是,请尝试激活它

    include "htmlheader.php";
    

    而不是

    include "http://www.mywebsite.com/htmlheader.php";
    

    【讨论】:

    • +1 提及allow_url_include 并鼓励使用本地包含;这可能会奏效。但是,session_start() 与该问题无关,因为他提供的示例只有一个页面。
    • @Renato 没有 session_start(),会话如何初始化?
    • $_SESSION['test'] 变量 - 与任何其他变量一样 - 将一直存在,直到离开页面。使用session_start() 只会使该变量可用于其他页面,但这不是问题,因为只有一页(index.php)。
    • 感谢您的回复,我检查了 allow_url_fopen 和 allow_url_include - 它们都已启用,我还添加了 session_start() 以确保。很好的建议,但是我仍然无法使用变量,还有其他想法吗?
    • 好的,谢谢......你是对的,我忽略了你回复中最重要的部分:我不得不将我的包含更改为“../header.php”等。现在我的问题是包含文件时我需要使用绝对路径(出于多种原因)有没有办法使用绝对路径并且仍然能够使用变量?我应该开始一个新线程吗? **由于缺乏声望点,我无法投票,我会请互联网上的公平人士为这位先生投票。
    【解决方案2】:

    确保在包含includes 的页面顶部有session_start();

    【讨论】:

    • 嘿,感谢您的回复。不幸的是,在这种情况下,我认为没有必要,但无论如何我还是添加了它(我稍后会需要它)。我仍然无法访问变量,还有其他想法吗?
    猜你喜欢
    • 2013-11-10
    • 2015-09-30
    • 2012-08-17
    • 2014-05-16
    相关资源
    最近更新 更多