0

我有第一个 PHP 文件:/home/www/subdomain1.domain.tld/file.php

<?php
    session_start();
    $_SESSION['foo']='bar';   
    include "/home/www/subdomain2.domain.tld/foo2.php";
 ?>

和 /home/www/subdomain2.domain.tld/foo2.php:

<?php 
    session_start();
    echo $_SESSION['foo'];
?>

第一个文件中的“包含”会生成“500 内部服务器错误”,我认为这是因为会话变量没有传递给包含的文件,我该如何解决?

谢谢亚历克斯

编辑:我必须使用会话变量才能在 subdomain2 上的每个 php 文件上使用这些变量。

4

2 回答 2

0

包含文件时不需要使用会话。这是具有相同命名空间的所有相同请求。

文件.php:

$foo = 'bar';

include 'foo2.php';

foo2.php

echo $foo; // returns 'bar'
于 2012-10-21T20:56:45.003 回答
0

您不应该在第二个文件中开始会话。由于会话是在 file.php 中启动的,因此 foo2.php 已经可以使用它。

该错误可能是因为 PHP 输出了会话已启动的警告。

对于调试,添加error_reporting(E_ALL); ini_set('display_errors', 1);到您的第一个 PHP 脚本的开头。

你应该能够做到:

文件.php

<?php
    session_start();
    $_SESSION['foo']='bar';   
    include "/home/www/subdomain2.domain.tld/foo2.php";

foo2.php

我有第一个 PHP 文件:/home/www/subdomain1.domain.tld/file.php

和 /home/www/subdomain2.domain.tld/foo2.php:

<?php 
// session_start();  // remove, do not need this here
echo $_SESSION['foo'];
于 2012-10-21T20:57:30.993 回答