0

$_GET変数をセッションに保存する最良の方法を説明してもらえますか。唯一の変更方法は、セッションが変更されているデータが変数sessionsと異なることを確認する場合です。GET

現在、私は持っています

 $tid = clean_get($_GET['tid']);

すべてのページに含まれるグローバル ファイルでは、値$tidが消去されsession、ユーザーが$tidURL に設定されたページにアクセスしていない場合などに保存されません。

4

3 に答える 3

3

URL で $_GET['tid'] を取得した場合は、その新しい値でセッションを再度設定します。それ以外の場合は、セッションから復元します。それでおしまい。

session_start();
$tid = (isset($_GET['tid']) && $_GET['tid']!="") ? clean_get($_GET['tid']) : $_SESSION['tid'];

これを試して、解決したと教えてください。

于 2012-07-30T03:52:11.843 に答える
1

isset()などの関数を使用して、送信されているかどうかを確認します。その場合にのみ、それを交換する必要があります:

if(isset($_GET['tid']))
{
    $tid = clean_get($_GET['tid'])
    // Do stuff to change session data.
}
于 2012-07-30T03:51:31.193 に答える
0

あなたが探しているのは次のようなものだと思います

session_start();
foreach ($_GET as $key=>$value) {
    $_SESSION['getValues'][$key] = clean_get($value);
}

これにより、$_GET のすべての値が $_SESSION に格納されます。後で値を取得するには$_SESSION['getValues']['tid']、呼び出した後に使用するだけsession_start()です。

ここでは、フォームから入ったデータをフォーマットおよび/またはエスケープするだけのものであると想定しているclean_get()ため、セッションに固執する前に各値でそれを呼び出すと、必要に応じてすべてのクリーニングが行われます。

注: 呼び出しはsession_start()1 回だけにして、 で何かを行う前に必ず呼び出して$_SESSIONください。そうしないと、エラー メッセージが表示されます。

于 2012-07-30T03:55:08.957 に答える