私の Web サイトには、テキスト領域から入力を受け取り、空の場合 (strlen = 0) とテキストが含まれている場合は別の方法で処理するフォームがあります。以下はフォームの一部です。
<form name='contact' action='contact.php' method='post'>
...
Message*<br />
<textarea name='msg' rows='10' cols='70' maxlength='2048'><?php echo $msg ?></textarea><br />
...
<input type='submit' value='Send!' id='subby' name='fatk' style='height:60px; width:300px;' />
</form>
今PHPコード:
$msg = isset($_POST['msg'])?safeString($_POST['msg']):'';
$msg = substr($msg,0,2048);
if (strlen($msg) == 0)
echo "<h1>Test failed</h1>";
else { ... }
safestring(str)
メソッドは次のとおりです。
function safeString($str) {
htmlentities($str);
htmlspecialchars($str);
}
フォームを送信するたびに、msg テキストエリアに入力した量に関係なく、常に空であると表示されます (TEST FAILED をエコーすることにより)。また、safestring()
フォームをより安全にするために関数に追加する必要があることを他に知っていますか?