コードを拝見しました。
htmlspecialchars() expects parameter 1 to be string, array given in
これは「htmlspecialchars()のパラメータ1は文字列ですが、配列が指定された」というエラーです。
$clean[$key] = htmlspecialchars( $value, ENT_QUOTES);
おそらくこの行で出たものでしょう。
フォームからPOSTされた値は$_POST
に連想配列として入り、name
属性とvalue
属性がそのまま連想配列のキーと値になるのですが
name
属性をnayami[]
のように[]
をつけた場合は値が配列となります。
<input type="text" name="hoge" value="hoge">
<input type="text" name="fuga[]" value="fuga1">
<input type="text" name="fuga[]" value="fuga2">
var_dump($_POST['hoge']); // string 'hoge'
var_dump($_POST['fuga']); // array(0 => 'fuga1', 1 => 'fuga2')
おそらく$key
がnayami
のとき$value
が配列になっていると思います。
foreach($_POST as $key => $value) {
$clean[$key] = htmlspecialchars($value, ENT_QUOTES);
}