ここには 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']);
?>
私は何を間違えましたか?