我一直在嘗試使用PHP來驗證我的表單。表單要求用戶輸入詳細信息,然後在表單驗證完成後輸入數據庫中的表格。我在表單中有一個名字字段,我試圖驗證它是否有輸入的值(必填字段),並且只應包含字母字符或連字符( - )字符。PHP字符串驗證
這裏是我到目前爲止有:
<?php
if (isset($_POST["submit"])) {
$flag = false;
$badchar = "";
$string = $_POST["fname"];
$string = trim($string);
$length = strlen($string);
$strmsg = "";
if ($length == 0) {
$strmsg = '<span class="error"> Please enter your first name</span>';
$flag = true;}
else {
for ($i=0; $i<$length;$i++){
$c = strtolower(substr($string, $i, 1));
if (strpos("abcdefghijklmnopqrstuvwxyz-", $c) == false){
$badchar .=$c;
$flag = true;
}
}
if ($flag) {
$strmsg = '<span class="error"> The field contained the following invalid characters: $badchar</span>';}
}
if (!$flag) {
$strmsg = '<span class="error"> Correct!</span>';}
}
?>
<h1>Customer Information Collection <br /></h1>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="custinfo" >
<table>
<tr>
<td><label for="custid">Customer ID (integer value): </label></td>
<td><input type="text" id="custid" name="custid" value="<?php echo $temp ?>" size=11 /><?php echo $msg; ?></td>
</tr>
<tr>
<td><label for="customerfname">Customer First Name: </label></td>
<td><input type="text" id="fname" name="fname" size=50/><?php echo $strmsg; ?></td>
</tr>
我遇到的問題是,當我輸入一個正確的字符串(如約翰),它仍然給我的錯誤「字段包含以下無效字符:$ badchar「,同樣,當輸入不正確的字符時,我想讓它在錯誤消息中的$ badchar位置顯示不正確的字符,但它只是顯示」該字段包含以下無效字符:$ badchar「。有沒有辦法做到這一點?
任何與這些問題的幫助將非常感激。
啊,工作完美,非常感謝! – user2273149 2013-05-03 16:36:10