0

ここには 2 つのケースがあります。

  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 に答える