簡體   English   中英

PHP中的Java表格驗證

[英]Javascript form validation in PHP

我已經用PHP開發了一個登錄頁面。 我正在使用PHP代碼來驗證用戶名和密碼不為空。 錯誤時會彈出Javascript警告框,頁面將導航回登錄頁面。 現在假設如果用戶輸入用戶名而不輸入密碼,然后單擊登錄,則密碼為空框將顯示,現在用戶我要用戶導航回登錄頁面,用戶名填充有他先前輸入的值。 我是PHP的初學者,卻不了解如何執行此操作。 這是我的代碼

if($myusername == null){
echo '<script language="javascript">';
echo 'alert("Username cannot be empty")';
echo '</script>'; 
echo "<meta http-equiv='refresh' content='1; URL=main_login.php'>";
exit();
}

if($mypassword == null){
echo '<script language="javascript">';
echo 'alert("Password cannot be empty")';
echo '</script>'; 
echo "<meta http-equiv='refresh' content='1; URL=main_login.php'>";
exit();
}

如果您使用HTML5,則可以按照以下說明使用表單驗證:

http://www.sitepoint.com/html5-form-validation/

否則,您可以使用一些jQuery和插件來驗證表單。

如果正在使用jQuery。 然后,您可以使用jQuery插件http://jqueryvalidation.org/files/demo/

有很多方法可以實現。您可以將用戶名存儲在會話中,這可能不是一個好主意。另一種方法是,您可以在重定向到登錄頁面時將用戶名傳遞到url中,重定向為login.php?us = usernameEntered並將用戶名的值設置為

<input type="text" name="username" value="<?php echo $_GET['usernameEntered'];?>"/>

或者您可以在jquery中使用表單驗證,並避免所有這些重定向

我相信您可以使用自定義腳本或使用Jquery Validaor插件 我創建了一個示例Jquery Validator示例。

帶有Bootstrap的Jquery Validator插件

$(document).ready(function () {

    $('#contact-form').validate({
        rules: {
            name: {
                minlength: 2,
                required: true
            },
            email: {
                required: true,
                email: true
            },
            message: {
                minlength: 2,
                required: true
            }
        },
        highlight: function (element) {
            $(element).closest('.control-group').removeClass('success').addClass('error');
        },
        success: function (element) {
            element.text('OK!').addClass('valid')
                .closest('.control-group').removeClass('error').addClass('success');
        }
    });

});

注意:您也可以使用這個插件沒有引導更多詳細信息

演示

不建議在PHP中使用Javascript,必須有其他方法可以做到這一點,但由於我不知道為什么要這么做。 試試看

    if($myusername == null){
       echo '<script language="javascript">';
       echo 'alert("Username cannot be empty")';
       echo 'window.location = "/main_login.php?un=myusername";'
       echo '</script>';
       exit();
    }

    if($mypassword == null){
       echo '<script language="javascript">';
       echo 'alert("Password cannot be empty")';
                  echo 'window.location = "/main_login.php?un=myusername";'
       echo '</script>'; 

       exit();
      }

在main_login.php里面放這個

    <input type="text" name="username" value="<?php echo $_GET['usrname'];?>"/>

這很簡單。 您可以通過兩種方式做到這一點

  1. 按查詢字符串。 將用戶名放在查詢字符串中,並在用戶名文本框的value屬性中訪問該查詢字符串。 用這種方法將用戶重定向到登錄頁面。 顯示警報框后,因為您不能使用header('Location:..')函數,因為已經發送了標題,則需要使用javascript進行重定向。 將這些行alert('...')方法window.location.href = "Your signup URL?uname=Username which user entered"; 然后在原始頁面上,使用以下值屬性<input tyep="text" name="textbox name" id = "textbox id" value = "<?php if(isset($_GET['uname'])) echo $_GET['uname']; else echo '';?>">

  2. 您可以將用戶名的值存儲在會話中,並將超出該會話的值存儲在用戶名文本框的value屬性中。 在這種情況下,驗證后使用以下代碼(如果未驗證表單)

    $ _SESSION ['uname'] = $ _POST ['用戶名字段的名稱'];

然后在登錄頁面上使用以下<input tyep="text" name="textbox name" id = "textbox id" value = "<?php if(isset($_SESSION['uname'])) echo $_SESSION['uname']; else echo '';?>">

第二種方法不要忘記調用session_start(); 在您編碼的一開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM