我有第一个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'];
?>
第一个文件中的“include”会生成“500 Internal Server Error”,我认为这是因为会话变量没有传递给包含的文件,我该如何解决?
谢谢 亚历
编辑: 我必须使用会话变量才能在subdomain2上的每个php文件中使用这些变量。
答案 0 :(得分:0)
包含文件时不需要使用会话。具有相同名称空间的所有请求都是相同的。
file.php:
$foo = 'bar';
include 'foo2.php';
foo2.php
echo $foo; // returns 'bar'
答案 1 :(得分:0)
您不应该在第二个文件中启动会话。由于会话是在file.php中启动的,因此它已经可用于foo2.php。
错误可能是因为PHP输出会话已经启动的警告。
要进行调试,请将error_reporting(E_ALL); ini_set('display_errors', 1);
添加到第一个PHP脚本的开头。
你应该能够做到:
<强> file.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'];