これを行うもっとエレガントな方法があるはずです。PHP - すべてのPOSTデータをSESSION変数に変換してください。
空ではないポストデータをセッション変数に変換するにはどうしたらいいですか?基本的には、POST配列に存在するXのすべてのインスタンスに対して以下の関数を実行します。
if (!empty($_POST['X'])) $_SESSION['X']=$_POST['X'];
私はそれを一つずつやるつもりだったが、その後、私は許容されるPOST名の辞書を指定します
これを行うもっとエレガントな方法があるはずです。PHP - すべてのPOSTデータをSESSION変数に変換してください。
空ではないポストデータをセッション変数に変換するにはどうしたらいいですか?基本的には、POST配列に存在するXのすべてのインスタンスに対して以下の関数を実行します。
if (!empty($_POST['X'])) $_SESSION['X']=$_POST['X'];
私はそれを一つずつやるつもりだったが、その後、私は許容されるPOST名の辞書を指定します
はるかにエレガントな解決策が存在しなければならない考え出し。
$accepted = array('foo', 'bar', 'baz');
foreach ($_POST as $foo=>$bar) {
if (in_array($foo, $accepted) && !empty($bar)) {
$_SESSION[$foo] = $bar;
}
}
またはそれに相当するもの。 0
を空として扱うので、empty
は使用しません。
に使用する定義済みリストを使用します実際には私のデータを整理するのに役立ちます。ありがとう! –
が必要に応じて変更されました。 –
正直なところ、empty()を使用するのは避けてください。ここでは、すべての状況で効果的なテクニックを開発します。あらゆるデータタイプに適切な機能があります。それらを使用してください! –
私がお勧めする最初の事はではありませんこれを行う。巨大な潜在的なセキュリティホールです。たとえば、ユーザー名やユーザータイプのセッション変数(非常に一般的なもの)に依存しているとします。誰かがその詳細を投稿するだけです。あなたが唯一の$_POST
から$_SESSION
すなわちに承認された値をコピーすることによって、ホワイトリストのアプローチを取るべきである:
$vars = array('name', 'age', 'location');
foreach ($vars as $v) {
if (isset($_POST[$v]) {
$_SESSION[$v] = $_POST[$v];
}
}
をあなたが「空」の定義方法は、あなたがチェックの種類を決定します。上記のコードではisset()
が使用されています。また、あなたは空の文字列またはあなたが行く。ここ数0
はい、ポインタありがとうございます。実際には1つずつ実行する必要がありますが、コードをきれいにするために配列をホワイトリストに登録できます。 空リストに含まれていても空でないPOSTデータだけがセッション変数に変換されるようにするには、上記のコードに "not empty()"チェックを実装するにはどうすればよいですか?私は空で登録されている "0"でいいです。 –
を書きたくない場合は、if ($_POST[$v]) ...
を行う
if(isset($_POST) {
foreach ($_POST as $key => $val) {
if($val != "Submit")
$_SESSION["$key"] = $val;
}
}
構文エラー、まだオープンブラケットがあるという理由だけである可能性があります。それはそのように動作するはず
$vars = array('name', 'age', 'location');
foreach ($vars as $v) {
if (isset($_POST[$v])) {
$_SESSION[$v] = $_POST[$v];
}
}
でなければなりません。
if ($_POST[$v])...
これは空のデータを削除します。
これは、@のMEDERの答えの簡易版で、このビットに私を導く:
<?php
$accepted = array('foo', 'bar', 'baz');
foreach ($accepted as $name) {
if (isset($_POST[$name])) {
$_SESSION[$name] = $_POST[$name];
}
}
ます。また、遠くに及ぶempty()
のように、どのくらいの点に注意してください。ただし、上記isset()
ため!empty()
を代入します@メディアが指摘した。
$_SESSION["data"] = $POST;
$var = $_SESSION["data"];
次に、投稿変数として$ varを使用してください。たとえば:
echo $var["email"];
の代わりに、これを行うには、スマートなものではありません
echo $_POST["email"];
乾杯
、あなたは私が0に治療を受けていると元気ですセキュリティ – borrel