$_GET変数をセッションに保存する最良の方法を説明してもらえますか。唯一の変更方法は、セッションが変更されているデータが変数sessionsと異なることを確認する場合です。GET
現在、私は持っています
$tid = clean_get($_GET['tid']);
すべてのページに含まれるグローバル ファイルでは、値$tidが消去されsession、ユーザーが$tidURL に設定されたページにアクセスしていない場合などに保存されません。
URL で $_GET['tid'] を取得した場合は、その新しい値でセッションを再度設定します。それ以外の場合は、セッションから復元します。それでおしまい。
session_start();
$tid = (isset($_GET['tid']) && $_GET['tid']!="") ? clean_get($_GET['tid']) : $_SESSION['tid'];
これを試して、解決したと教えてください。
isset()などの関数を使用して、送信されているかどうかを確認します。その場合にのみ、それを交換する必要があります:
if(isset($_GET['tid']))
{
$tid = clean_get($_GET['tid'])
// Do stuff to change session data.
}
あなたが探しているのは次のようなものだと思います
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ください。そうしないと、エラー メッセージが表示されます。