0

Cookie を確認すると、PHPSESSID が作成されていることがわかります。しかし、それらを使用しようとすると、変数が未定義であるというエラーメッセージが表示されます。

これが私のセッションの設定方法です:

$posts = array("auto_year", "auto_brand", "auto_model", "auto_bodywork", "auto_doors", 
"auto_fuel", "auto_gearbox", "auto_type", "auto_uitvoering", "auto_part", "auto_description", "email_address");

//Define POSTS and set into SESSIONS
foreach ($posts as $post) {
   if (isset($_POST[$post])) {
      $_SESSION[$post] = $_POST[$post];
      $$post = $_SESSION[$post];
   }
}

私も次のように手動で試しました:

$_SESSION['auto_year'] = '2012';

しかし、それでもうまくいきません。両方のページの上で session_start() を呼び出しましたが、そのエラーが発生し続けます。

4

3 に答える 3

1

を使用${}すると、動的変数を作成できます。あなたの場合、次のように変更してください:

${$post} = $_SESSION[$post];

于 2013-02-07T19:46:56.277 に答える
0

フォームからの $_POST データに何か問題がある可能性があります。フォーム情報がないので、$_POST を設定して試してみました。

session_start();

$_POST['auto_year'] = 1977;

$posts = array("auto_year", "auto_brand", "auto_model", "auto_bodywork", "auto_doors",
    "auto_fuel", "auto_gearbox", "auto_type", "auto_uitvoering", "auto_part", "auto_description", "email_address");

//Define POSTS and set into SESSIONS
foreach ($posts as $post) {
    echo $post."<br>";
    if (isset($_POST[$post])) {
echo "Creating variable for $post<br>";
        $_SESSION[$post] = $_POST[$post];
        $$post = $_SESSION[$post];
        echo '$auto_year: '.$auto_year . "<br>";
    }
}
echo "<br><br>".var_dump($_SESSION);
于 2013-02-07T19:34:35.920 に答える
0

もう 1 つのオプションは、extract() を使用して変数を作成することです。これにより、すべての変数を一度に設定できます。

extract($_SESSION);

$auto_year、$auto_brand など、セッション内の各キーの変数を作成します。

http://php.net/manual/en/function.extract.php

すべてのデータを別々の変数に入れたいのに、単一の連想配列は扱いやすいのに、なぜだろうかと思います

于 2013-02-07T20:04:28.053 に答える