現在、フォーム入力を検証およびサニタイズするためのいくつかの普遍的な方法を試しています。これを行う方法は数千とは言わないまでも数百あるとはいえ、私が自分自身に課した特定の課題には、投稿データと、array_map()
それを持ち込んだときにすぐに実行することが含まfilter_var()
れpreg_match()
ます。トリミング中に array_map() した後のデータを実行し、後でmysqli_real_escape_string()
SQL を実行する直前に実行して処理します。お気づきのように、私はhtmlspecialchars()
何度も何度も走っています。投稿データに対してトリムと htmlspecialchars を同時に実行することはできますか? 私は効率化を目指しているので、他の推奨事項は大歓迎です。
// Trim all the incoming data
$trimmed = array_map('trim', $_POST);
// Assume invalid values
$un = $fn = $ln = $e = $pn = $bio = FALSE;
// Check username
$un = validateUsername(htmlspecialchars($trimmed['uname']));
// Check first name
$fn = validateName(htmlspecialchars($trimmed['fname']));
// Check last name
$ln = validateName(htmlspecialchars($trimmed['lname']));
// Check email address
$e = validateEmail(htmlspecialchars($trimmed['email']));
...などなど