0

这里有两种情况。

  1. 用户输入一个空输入。在这种情况下,登录页面将警告用户他输入了一个空输入。
  2. 用户输入了错误的用户名或密码。在这种情况下,登录页面会警告用户输入了错误的用户名或密码。

在这两种情况下,输入处理都将在服务器(PHP)上完成。我的问题是,如何动态修改登录页面以显示警告消息?

我尝试将 PHP 布尔值传递给登录页面中的 javascript 变量,但经过一些研究,我发现您不能混合使用 Javascript 和 PHP 代码。代码如下:

function error_msg()
{
<?php session_start();?>
var failed_login= <?php echo $_SESSION['failed_login'];?>; 
var empty_field= <?php echo $_SESSION['empty_field'];?>; 
var txt=document.getElementById("failed_login_text");

if (empty_field== 1)
{
    txt.innerHTML="No empty fields allowed.";
    <?php unset($_SESSION['empty_field']);?>
}
else if (failed_login== 1)
{
        txt.innerHTML="Failed login. Wrong username or password.";
        <?php unset($_SESSION['failed_login']);?>
}

      <?php session_destroy();?>
}

我使用的另一种方法是使用 PHP 将整个 Javascript 回显到 login.php 中。此 PHP 代码位于登录页面文件中。

<?php
    session_start();
    $failed_login= $_SESSION['failed_login'];
    $empty_field= $_SESSION['empty_field'];

    echo $_SESSION["empty_field"];
    echo $_SESSION["failed_login"];

$script="<script>
var empty_field= $empty_field;
var failed_login= $failed_login;
var txt=document.getElementById(\"failed_login_text\");
txt.innerHTML= empty_field;

if (empty_field== 1)
{
    txt.innerHTML=\"No empty fields allowed.\";

}
else if (failed_login== 1)
{
        txt.innerHTML=\"Failed login. Wrong username or password.\";

}</script>";
echo $script;
unset($_SESSION['empty_field']);
unset($_SESSION['failed_login']);
?>

我做错了什么?

4

1 回答 1

0

我已经为动态登录编写了这个脚本,如果它为您服务,您可以使用它,并且我已经使用 jquery 进行验证,希望这可能对您有所帮助

<?php 
    if (isset($_POST['user'])){
     $email = $_POST['user'];
     $password = $_POST['password'];
     $sql = "SELECT * FROM `register` WHERE `email` = '{$email}' AND BINARY `password` = '{$password}'";
     $result  = mysql_query($sql);
     if(mysql_num_rows($result)>0)
     {
     $row = mysql_fetch_array($result);
     $_SESSION['email'] = $row['email'];
     $_SESSION['sno'] = $row['sno'];
      header("location:some_page.php");
     }
     else
      {
        $msg ="Invalid Username / Password"; 
          header('location:your_page_name?msg='.$msg);  
      }
     }
     else
     {
        $msg = "Internal Server error";
     }
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>login-user</title>
    <script src="js/jquery-1.8.3.js"></script>
    <script src="js/jquery-ui.js"></script>
    <script src="js/validity.form.js"></script>
    <link rel="Stylesheet" type="text/css" href="js/jquery.validity.css" />
    <link rel="stylesheet" href="js/jquery-ui.css">

    <script type="text/javascript">
    $(document).ready(function() {
          $("#form1").validity(function() {
            $("#user").require().match("email");;
            $("#password").require();
                });
            });
    </script>
    </head>

    <body>
    <div id="container">
    <?php
        if(isset($_REQUEST['msg']) && $_REQUEST['msg']!='')
        {
            echo "<div id='message'>".$_REQUEST['msg']."</div>";
        }
    ?>
          <form id="form1" name="form1" method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
                <lable>User Name:</lable>
                  <input name="user" type="text" id="user" size="30" />
                <lable>Password:</lable>
                  <input name="password" type="password" id="password" size="30" value=""/>
                <input type="submit" name="Log In" id="Log In" value="Login" />
          </form>
    </div>
    </body>
    </html>
于 2013-01-13T19:38:30.183 回答