我的表單的基於PHP的驗證在IE,Firefox或Opera的最新版本中不起作用。我點擊我的表單字段中的空值提交按鈕來觸發驗證,但頁面只是刷新。爲什麼我的基本PHP驗證過程不會在IE,FireFox或Opera?
奇怪的是驗證和錯誤消息在Chrome和Safari中都有效。
查看自己這一點的位置:http://www.directsponsor.org/contact/
誰能告訴我關於上爲什麼
PHP可能會在某些瀏覽器
某些瀏覽器不同的表現失敗的已知問題?
道歉的代碼提前山區,但我相信它的需要:
這裏的形式:
<form method="post" action="http://www.directsponsor.org/contact/">
<fieldset>
<ul>
<?php if(isset($_POST['contactsubmit'])){
if (!$contactnamevalidation){
echo "<li class='contactfail'><p><img src='"; echo bloginfo('stylesheet_directory'); echo "/images/icons/101-large.png'> You did not input your <strong>name</strong>.</p></li>";
}
}
?>
<li>
<label for="contactname">Your name <em>(required)</em></label>
<input type="text" name="contactname" class="textbox" value="<?php if (isset($_POST['contactname'])) {echo htmlspecialchars($_POST['contactname'], ENT_QUOTES); }?>">
</li>
<?php if(isset($_POST['contactsubmit'])){
if (!$contactemailvalidation1){
echo "<li class='contactfail'><p><img src='"; echo bloginfo('stylesheet_directory'); echo "/images/icons/101-large.png'> You did not input your <strong>email</strong>.</p></li>";
}
}
?>
<?php if(isset($_POST['contactsubmit'])){
if (!$contactemailvalidation2){
echo "<li class='contactfail'><p><img src='"; echo bloginfo('stylesheet_directory'); echo "/images/icons/101-large.png'> You did not input a <strong>valid email</strong>.</p></li>";
}
}
?>
<li>
<label for="contactemail">Your email <em>(required)</em></label>
<input type="text" name="contactemail" class="textbox" value="<?php if (isset($_POST['contactemail'])) {echo htmlspecialchars($_POST['contactemail'], ENT_QUOTES); }?>">
</li>
<?php if(isset($_POST['contactsubmit'])){
if (!$contactmessagevalidation){
echo "<li class='contactfail'><p><img src='"; echo bloginfo('stylesheet_directory'); echo "/images/icons/101-large.png'> You did not input a <strong>message</strong>.</p></li>";
}
}
?>
<li>
<label for="contactmessage">Message <em>(required)</em></label>
<textarea name="contactmessage"><?php if (isset($_POST['contactmessage'])) {echo htmlspecialchars($_POST['contactmessage'], ENT_QUOTES); }?></textarea>
</li>
<li class="buttons">
<label for="contactsubmit"> </label><input type="image" src="/wp-content/themes/directsponsor/images/button-sendmessage.png" name="contactsubmit" value="Submit Message">
<?php if(isset($_POST['contactsubmit'])){echo"<a href='http://www.directsponsor.org/contact/'><img src='/wp-content/themes/directsponsor/images/button-clearform.png'/></a>";} ?>
</li>
</ul>
</fieldset>
</form>
這裏的驗證(的相關部分):
<?php
if(isset($_POST['contactsubmit'])){
//在此處驗證。
}
?>
答案
如所建議的通過莫爾博士,IE,火狐和Opera處理用作比較Chrome和Safari提交按鈕不同圖像的值。
我的驗證的開始:
if(isset($_POST['contactsubmit'])){
IE,Firefox和Opera的帖子以下值:
//Values for image as a submit button.
contactsubmit_x
contactsubmit_y
由於這兩個值是不同的,以contactsubmit
,則if(isset())
條件ISN」 t觸發。爲了rememdy這個我用比圖像作爲其他表單元素提交按鈕需要,如電子郵件字段:
if(isset($_POST['contactemail'])){
這將觸發條件進行驗證contactemail
是否爲空或不。
PHP在瀏覽器上不會失敗,因爲它在服務器端處理。 – 2011-05-16 10:24:20
感謝您的糾正。根據Dr.Molle關於不一致的瀏覽器處理用作提交按鈕的圖像值的回答,某些瀏覽器失敗(而不是_PHP失敗)會更準確嗎? **注意:我編輯了這個問題 - 參考通過文本**敲擊。 – 2011-05-16 10:59:50