0
我目前有一個表單,要求用戶的電子郵件,手機號碼和手機號碼。沒有任何字段被標記爲必需的,因爲我只需要電子郵件或手機號碼。如果用戶輸入電子郵件和電話號碼,或者只輸入電話號碼和電子郵件地址,表單提交就會很好。但是,如果用戶嘗試僅使用電子郵件和電話號碼提交表單,則表單不會提交。換句話說,爲了使表單正常工作,需要電話號碼。除非填寫了特殊的非必填字段,否則表格不會提交(PHP)
我如何避免這種情況?我希望用戶能夠輸入他們的電子郵件或只是電話;既不應該是強制性的。任何幫助將不勝感激。
我也有問題驗證電話號碼(FILTER_VALIDATE_INT不適用於10位數字),但這是一個問題,我會稍後解決。
該窗體的代碼如下:
<form action="insert.php" method="post" id="signup">
<p>
<input type="text" id="email" name="email" value="E-mail" /><br/>
<input type="text" id="phone" name="phone" value="Phone" /><br/>
<select id="carrier" name="carrier">
<option value="" selected="selected">Carrier</option>
<option value="att">AT&T</option>
<option value="sprint">Sprint</option>
<option value="tmobile">T-Mobile</option>
<option value="verizon">Verizon</option>
</select>
</p>
<p>
<input type="image" src="images/button.gif" alt="Register!" />
</p>
</form>
的PHP腳本的代碼如下:
<?php
$con = mysql_connect("dbhost","dbuser","dbpass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("dbname", $con);
$filters = array(
"email"=> FILTER_VALIDATE_EMAIL,
"phone" => FILTER_VALIDATE_INT,
);
$result = filter_input_array(INPUT_POST, $filters);
if (!$result["email"])
{
echo("E-mail is invalid.<br />");
}
elseif(!$result["phone"])
{
echo("Phone is invalid.<br />");
}
else
{
$sql="INSERT INTO dbtable (email,phone,carrier)
VALUES
('$_POST[email]','$_POST[phone]','$_POST[carrier]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
mysql_close($con);
header('Location: http://pagename.com');
}
?>
臭蟲!你打敗了我很多...你的回答是正確的,所以我不會發布我自己的。 – 2010-11-09 16:08:34
非常感謝!我絕對只是馬虎。我非常感謝幫助。 – ARP 2010-11-09 16:37:10
沒有probs,快樂編碼。 – 2010-11-09 16:51:55