html-PHPでリダイレクトする前に、送信ボタンでログインの検証を確認するにはどうすればよいですか?
ログインして詳細が正しいかどうかを確認してから、次のページに移動する前にユーザー名とパスワードのボックスに入力します。できればエラーを表示したいと思います。これを行うための最良の方法は何ですか? (現時点ではセキュリティについてあまり気にせず、後の段階でそれに取り組む予定です)私のコードは以下に掲載されています。ありがとうございます-初心者のPHP開発者。
また、私のコードのレイアウトや私がこれを書いた方法についてあなたが与えることができるどんなヒントも大歓迎です。
<!DOCTYPE html>
<head>
</head>
<body style = "background-color:purple">
<?php
if (isset($_GET['userName'])) {
echo "<p>user name is " . $_GET['userName'] . "</p>";
// try and log in
$userName = $_GET['userName'];
$password = $_GET['password'];
if (($userName == "Admin") && ($password == "podpoint")) {
echo "correct details" ;
}
else
echo "Incorrect username or password";
} else {
// show the login form
?>
<center></center><form name="input" action="reserved_page.php" method="get">
<center><p style="color:white">Username: <input type="text" name="userName"></p>
<center><p style="color:white">Password: <input type="text" name="password"></p>
<center><input type="submit" value="Submit">
</form>
<?php
}
?>
</body>
答え :
解決策:
この種の場合、通常はJavascriptを使用します。
W3Schoolsには、ここにすばらしいチュートリアルがあります: http://www.w3schools.com/js/js_form_validation.asp
たとえば、そのユーザー名の検証には次の値があります:
function validateForm() {
var x = document.forms["input"]["userName"].value;
if (x == null || x == "") {
alert("Username must be filled out");
return false;
}
}
通常、別のphpファイルで名前/パスワードのチェック(多くの場合データベースに対して)を行います。このファイルは、すべてを1つのファイルで行うのではなく、入力を処理してログインが成功したかどうかを通知します。 。
答え :
解決策:
私はあなたの主張を本当に理解していません。私は現在仕事をしているので、特定のコード例を提供することはできませんが、これがおそらく最も簡単な方法です:
- アクションをフォームファイル自体に設定します
- フォームマークアップの上に、これまでの作業と同様のPhpコードを追加します
-
サーバーリクエストメソッドが次のように「post」と等しいかどうかを確認します:
if($ _ SERVER ['REQUEST_METHOD'] ==='POST'){...}
-
このステートメントが正しい場合は、入力した値を確認し、正しい場合は別のページにリダイレクトするか、成功メッセージを表示してセッションを開始します http://html.net/ tutorials / php / lesson12.php
4.1別のページにリダイレクトする場合は、ユーザーが実際にログインしているかどうかを確認することが重要です。これを行う最も簡単な方法は、フォームの検証が成功した場合にセッションを設定することです。したがって、2ページ目では、正しい値を入力して、ユーザーのログインセッションが設定されているかどうかを確認します。 trueの場合、コンテンツを表示し、Cookieが設定されていない場合は、フォームにリダイレクトします
- ステートメントがfalseの場合は、else{...}部分にフォームを表示するだけです
私が何を意味するか知っているといいのですが
答え :
解決策:
データを検証するには、フォームのアクションターゲットをファイル名自体に変更する必要があります。 コードをindex.phpに保存する場合は、action="index.php"を配置する必要があります。 その場合、検証が正しいかどうかを確認して、次のページにリダイレクトできます。
答え :
解決策:
jqueryを使用する場合は、次のことを試してください:(実行スニペットをクリックして確認できます)
input.error{
border: 1px dotted red;
}
label.error{
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.0/jquery.validate.js"></script>
<center></center>
<form name="input" id="frm" action="reserved_page.php" method="get">
<center><p style="color:white">Username: <input type="text" name="userName" class="required"></p>
<center><p style="color:white">Password: <input type="text" name="password" class="required"></p>
<center><input type="submit" value="Submit">
</form>
<script>
$(document).ready(function(e){
/* form validate */
$("#frm").validate();
});
</script>
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。