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'];
?>

最初のファイルの「include」は「500InternalServerError」を生成します。これは、セッション変数がインクルードされたファイルに渡されないためだと思いますが、どうすれば修正できますか?

ありがとうアレックス

編集:subdomain2のすべてのphpファイルでこれらの変数を使用するには、セッション変数を使用する必要があります。

4

2 に答える 2

0

2 番目のファイルでセッションを開始するべきではありません。セッションは 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'];
于 2012-10-21T20:57:30.993 に答える
0

ファイルを含める場合、セッションを使用する必要はありません。同じ名前空間を持つすべて同じリクエストです。

ファイル.php:

$foo = 'bar';

include 'foo2.php';

foo2.php

echo $foo; // returns 'bar'
于 2012-10-21T20:56:45.003 に答える