2016-06-08 80 views
-1
<?php 
if (isset($_GET['fail']) && !empty($_POST["uname"])) 
{ 
    echo '<script language="javascript">'; 
    echo 'alert("Your name or password is incorrect")'; 
    echo '</script>'; 
} 

如何在按下提交按鈕時檢查空字段?檢查我的用戶名和密碼是否爲空字段

+1

在通打頭的東西了 - !**切勿將明文密碼**請使用PHP的[內置函數(http://jayblanchard.net/proper_password_hashing_with_PHP.html)來處理密碼安全。如果您使用的PHP版本低於5.5,則可以使用'password_hash()'[兼容包](https://github.com/ircmaxell/password_compat)。確保你[不要逃避密碼](http://stackoverflow.com/q/36628418/1011527)或在哈希之前使用其他任何清理機制。這樣做會改變密碼並導致不必要的附加編碼。 –

回答

0

你可以使用HTML5的必要屬性,在輸入標籤爲

<input type="text" name="USERNAME" required> 
<input type="text" name="PASSWORD" required> 

這將不允許提交表單,而不在文本框中的內容。

+3

雖然你沒有錯,但僅僅依靠客戶端驗證並不是一個好主意,但服務器端驗證更加準確,不能輕易被篡改。 – Andrew

+1

他問:「當我按下提交按鈕時,如何檢查空白區域?」它直接暗示客戶端驗證。 @Andrew –

+0

當然,我不以任何方式質疑你答案的有效性。這只是指向OP,所以他知道他不應該這樣做。 – Andrew

0

我沒有看到你在這裏試圖做什麼。如果您使用Ajax提交表單,則可以請求一個php腳本(例如form_submit.php),在該表單字段中驗證您的表單字段,並返回將由JavaScript使用的響應,以便在出現錯誤(或不存在錯誤)時顯示某些內容。

下面是簡單的過程,解釋你如何能做到:提交=>的Javascript調用Ajax

HTML表單用PHP form_submit.php =>表單驗證從驗證=>返回結果=>的Javascript阿賈克斯獲得迴應並做你想做的事情,例如顯示錯誤/成功popin。

1

爲什麼你的php代碼中有「GET」和「POST」檢查?

<form id="myForm" method="post" action="myAction.php?fail=someStatus"> 
    <input type="text" name="uname" required /> 
</form> 

如果你不發送失敗,isset($_GET['fail'])將始終返回false的價值,你的代碼將永遠不會得到:發送HTTP請求時,除非你的HTML形式看起來像您不能使用這兩個動詞過去你如果

<?php 
// isset($_GET['fail']) is always false 
if (isset($_GET['fail']) && !empty($_POST["uname"])) 
{ 
    echo '<script language="javascript">'; 
    echo 'alert("Your name or password is incorrect")'; 
    echo '</script>'; 
}