0

セッションを開始し、いくつかのセッション変数を設定する controller/controller.php ファイルがあります。次に、model/model.php ファイルを「インクルード」し、関数を呼び出してロードします。

model.php ファイルで controller.php ファイルのセッション変数を使用しようとすると、多くのエラーが発生します: Undefined variable: _SESSION エラー。

controller.php ファイルでセッション変数を設定する例を次に示します。

$_SESSION['userName'] = 'some data'

model.php ファイルで、次のコードで取得しようとしています。

print($_SESSION['userName']);

私は何を間違っていますか?

編集

私のcontroller.phpファイルコード:

<?PHP

session_start();

if (isset($_POST['Login'])) {

$_SESSION['pointsForQuestion'] = '1';
$_SESSION['userName'] = $_POST['txtUsername'];

if(!is_file($_SESSION['userName'].".txt"))
{
    writeUserDetails($_SESSION['userName'],"1","0");
    $_SESSION['currentLevel'] = "1";
    $_SESSION['score'] = "0";
} else {
    readUserDetails($_SESSION['userName']);
}

print('logged in');

include('../model/model.php');
print page_load();

}   

function writeUserDetails($username,$level,$score) {
    $fh = fopen($username.".txt", 'w') or die("can't open file");
    fwrite($fh, $level.",".$score);
    fclose($fh);
}

function readUserDetails($username) {
    $userDetails = explode(',', file_get_contents($username.".txt"));
    $_SESSION['currentLevel'] = $userDetails[0];
    $_SESSION['score'] = $userDetails[1];
}


?>
4

2 に答える 2

2

上でセッション変数を定義する前に、セッションを開始します。session_start();

編集 済みこれらのセッション変数に何も設定していないため、そのエラーが発生しています

$_SESSION['userName'];
$_SESSION['currentLevel'];
$_SESSION['score'];

何も設定したくない場合は、これらのセッション変数を削除できます...

于 2012-05-18T05:56:31.537 に答える
1

$_SESSIONすべてのスコープで利用可能なスーパーグローバルです。

だから、あなたは忘れているに違いないsession_start()

于 2012-05-18T05:56:46.863 に答える