我想包具有相同的頁面驗證,但外部處理此聯繫人/報價表。我已經設置了一個變量來進行表單操作,當表單驗證時,變量/網址從同一頁面更改爲處理頁面。然而,它走的是兩條點擊提交按鈕,以處理後的形式所需的所有領域都被填充:所有必填字段將填寫,我點擊提交,頁面重新加載與保存的數據變量,然後當我點擊提交agin,它終於完成,發送電子郵件並加載謝謝頁面。我在這裏搜索了這些帖子,嘗試了很多東西,但還沒有找到解決方案。我絕對不是一個PHP專家,還是個新手,所以這可能不是實現這一目標的最佳方式,但我會很感激如何完成這件事的任何想法。這裏是我的:PHP表單驗證與外部處理
<?php
....
if (empty($Name) && empty($Company) && empty($Address1) && empty($City) && empty($State) && empty($Phone))
{
echo '<p class="tan">The fields marked with an * are required.</p>';
$Process = 'samepageurl';
}
/*else if (empty($Name) || is_numeric($Name))
{
echo '<p class="tan"><b>Please enter your name.</b></p>';
}*/
else if (empty($Company) || is_numeric($Company))
{
echo '<p class="tan"><b>Please enter your company name.</b></p>';
$Process = 'samepageurl';
}
else if (empty($Address1) || is_numeric($Address1))
{
echo '<p class="tan"><b>Please enter your address.</b></p>';
$Process = 'samepageurl';
}
else if (empty($City) || is_numeric($City))
{
echo '<p class="tan"><b>Please enter your city.</b></p>';
$Process = 'samepageurl';
}
else if (empty($State) || is_numeric($State))
{
echo '<p class="tan"><b>Please enter your state.</b></p>';
$Process = 'samepageurl';
}
else if (empty($Phone) || ctype_alpha($Phone))
{
echo '<p class="tan"><b>Please enter your phone number.</b></p>';
$Process = 'samepageurl';
}
else if (strlen($Phone) < 10 || strlen($Phone) > 12 || ctype_alpha($Phone) || ctype_space($Phone))
{
echo '<p class="tan"><b>Please enter a phone number with an area code.</b></p>';
$Process = 'samepageurl';
}
else if (isset($Name) && isset($Company) && isset($Address1) && isset($City) && isset($State) && isset($Phone))
{
$Process = 'processingurl';
}
?>
<form action="<?php echo $Process; ?>" method="post" class="print" >
<p><input type="hidden" name="recipient" value="[email protected]"/>
<input type="hidden" name="subject" value="Web Site Response"/>
<input type="hidden" name="redirect" value="thankyou.html"/></p>
... form fields ...
</form>
謝謝你提前!
這是你的全部代碼嗎?看起來您並不像您指定您的$ _POST變量,例如'$名稱= $ _ POST [「名」];' – romo 2013-03-20 22:04:22
你最好檢查這對客戶方在我看來的JavaScript。現在您已經通過驗證重新回到了服務器端。如果驗證失敗,您也可以重新導向到表單頁面。但不是做事的最佳方式。 – Daniel 2013-03-20 22:06:18
你絕對應該做的客戶端驗證像丹尼爾說,但服務器端驗證也是不錯的。看到這裏的問題的詳細信息,建立一個非常簡單的形式與驗證:http://stackoverflow.com/questions/12158229/php-form-submit – jacobangel 2013-03-20 22:21:07