キー名が送信された投稿データを参照する空の連想配列を作成しました。postdata は問題なくキャプチャできますが、名前が配列キーと一致する変数をインスタンス化しようとすると問題が発生します。
例えば:
$insArray = array('rUsername'=>'', 'rPass'=>'', 'rQuestion'=>'', 'rAnswer'=>'', 'rFName'=>'', 'rLName'=>'', 'rBDateD'=>'', 'rBDateM'=>'', 'rBDateY'=>'', 'rHCheck'=>'', 'rHCeckOption'=>'', 'rEmail'=>'');
foreach($insArray as $key=>$value){
if (filter_input(INPUT_POST, $key) != ''){
$key = stripslashes(filter_input(INPUT_POST, $key));
$insArray[$key] = $key;
}
}
最初の行は空の配列を作成し、次に foreach はこの配列をループします。今、それはトリッキーになります。
filter_input(INPUT_POST, $key)
現在のキー (この場合は rUsername) に一致する投稿データにある値を取得します
$key
問題があるところです。新しい変数の NAME を連想キー名にしたいのです。たとえば、最初の反復で $key を $rUsername に置き換え、2 回目の反復で $rPass に置き換えたいなどです。2 つの $$ を使用してみましたが、それが正しくないことはわかっています。これまでにこれを試したことはありませんでしたが、理解できれば助かります。
アップデート:
これは、提供された 2 つの回答を組み合わせた最終的なコードです。
if (isset($_POST['submit'])) {
//Build array of variables to be put into database
$insArray = array('rUsername'=>'', 'rPassword'=>'', 'rQuestion'=>'', 'rAnswer'=>'', 'rFName'=>'', 'rLName'=>'', 'rBDateD'=>'', 'rBDateM'=>'', 'rBDateY'=>'', 'rHCheck'=>'', 'rHCheckOption'=>'', 'rEmail'=>'');
foreach(array_keys($insArray) as $key){
$insArray[$key] = filter_input(INPUT_POST, $key);
$$key = filter_input(INPUT_POST, $key);
}
}
まさに私が望んでいた出力が得られました、ありがとう!