11

私はこのように$_POSTからより多くの値(20以上)を持っています...

$name = $_POST['name'];
$username = $_POST['username'];
$city = $_POST['city'];
$mobile = $_POST['mobile'];
$address = $_POST['address'];

注:SQLインジェクションからの値を防止しました。

私の質問は、これらすべてのPOST値を一度にSESSIONに保存する方法があるかどうかを知ることができますか?この方法の代わりに..

$_SESSION['name'] = $name;

どんな答えでも大歓迎です。ありがとうございました。

4

4 に答える 4

27
$_SESSION['post-data'] = $_POST;

これにより、単一のセッション変数に投稿値の配列が作成されます。値は次のようにアクセスできます

$_SESSION['post-data']['name']
$_SESSION['post-data']['username']
...
于 2013-01-22T18:27:23.360 に答える
9

あるアレイを別のアレイに追加できます。
$_POST$_SESSIONは単なる配列です。
重複する場合は、2番目の配列のキーが優先されることに注意してください。

$_SESSION += $_POST;

ただし、クライアント側はセッションに必要なものを何でも挿入できるため、これがうまく終了することはわかりません。たとえば、ユーザーのセッションIDをハイジャックします。

于 2013-01-22T18:27:13.703 に答える
3

投稿された配列と同じキーを使用して設定されたセッション変数を探している場合は、これを使用できます。

foreach ($_POST as $key => $value) {
    ${$key} = $value;
    $_SESSION[$key] = $value;
}

これにより、配列キーに基づいて $_POST 配列が変数になり、同時にセッションも設定されます。その後、またはnameを使用して投稿にアクセスできます。$_SESSION['name']$name

これは、使用する必要がないことを意味します:$name = $_POST['name'];もう。上記のコードは名前変数を設定し、セッション変数も設定します。

于 2013-01-22T18:39:37.060 に答える
0

PHP 内でフォーム ポストまたはヘッダー ロケーション リダイレクトを使用して変数を渡すことの最良の説明は、このスレッドで私の回答を確認してください: How to pass variables received in GET string through a php header redirect?

于 2015-01-09T03:42:04.580 に答える