登录页面的验证检查不起作用
verification check for login page not working
我正在为一个副项目使用 php
验证我的登录。现在我有一个用户是 admin
,密码是 123
。如果用户输入错误的密码或用户名,它将抛出一条消息说 Wrong Password
或 Wrong Username
。目前它也没有做,我试图找出原因。我会 post 下面的 html
和 php
。
更新:我添加了 method = post
。不知道从这里去哪里。
<?php
$uname = $_POST['uname'];
$passwd = $_POST['psw'];
$error = "";
$success ="";
if(isset($_POST['submit'])){
if($uname == 'admin'){
if($passwd == '123'){
$error = "";
$success = "Welcome Admin";
}
else{
$error = " Wrong Password!!";
$success = "";
}
}
else{
$error = " Wrong Username!";
$success = "";
}
}
?>
<html lang="en">
<head>
<title>Hangman Home Page</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-
width, initial-scale=1">
<link rel="stylesheet" type="text/css"
href="home.css">
</head>
<body>
<div class="header">
<div class="a">Hangman</div>
<br>
<br>
<br>
<!--column start here -->
<div class="hi">
<table id="leader">
<tr>
<th><img src="crown.gif"></th>
</tr>
<tr>
<td>Leader Board</td>
</tr>
<tr>
<td>1st. John : 4 guess</td>
</tr>
<tr>
<td>2nd. Smith : 6 Guesses</td>
</tr>
<tr>
<td>3rd. Tom : 7 Guesses</td>
</tr>
<tr>
<td>4th. Allen : 8 Guesses</td>
</tr>
</table>
</div>
<!-- form start here -->
<br><br>
<div class="b">Think You Can Beat #1 ?</div>
<center><button
onclick=
"document.getElementById('id01').
style.display='block'"
style="width:auto;">Play Now!!!
</button></center>
<div id="id01" class="modal">
<form class="modal-content animate" action="/action_page.php">
<div class="imgcontainer">
<span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">×</span>
<img src="hang1.gif" alt="logo" class="avatar">
</div>
<div class="container">
<p class="error">
<?php echo 'error'; ?>
</p>
<p class="success">
<?php echo 'success'; ?>
</p>
<label for="uname"><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="uname" required>
<label for="psw"><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="psw" required>
<button type="submit">Login</button>
<label>
<input type="checkbox" checked="checked" name="remember"> Remember me
</label>
</div>
<div class="container" style="background-color:#f1f1f1">
<button type="button" onclick="document.getElementById('id01').style.display='none'" class="cancelbtn">Cancel</button>
<span class="psw">Forgot <a href="#">password?</a></span>
</div>
</form>
你正在回应一个名为成功和错误的字符串<?php echo 'success'; ?>
你应该做的是回应变量:
<?php echo $error; ?>
和:
<?php echo $success; ?>
你的脚本有一些错误。首先,让我们检查一下您的表格:
<form action="/action_page.php">
<input type="text" placeholder="Enter Username" name="uname" required>
<input type="password" placeholder="Enter Password" name="psw" required>
<button type="submit">Login</button>
<input type="checkbox" checked="checked" name="remember"> Remember me
</form>
填写并提交此代码后,将在您的 PHP 脚本中生成这些变量:
$_GET["uname"], $_GET["psw"] and $_GET["remember"].
您正在尝试使用 $_POST
访问数据,但这只会在您将属性 method="post" 添加到您的 <表格> 标签。
您还可以使用 $_REQUEST
.
访问混合的 $_GET
和 $_POST
数组
另一个错误是您在代码顶部检查数据是否已提交的方式。没有变量 $_POST["submit"]
($_GET["submit"]
或 $_REQUEST["submit"]
),因为表单中没有具有此名称的变量,您可能正在考虑提交按钮。检查表单是否提交,最好的方法是检查用户名和密码是否不为空。
此外,您在表单中回应了 'error' 和 'success',并且您可能试图回应 $error 和 $success 的结果。
因为您既不显示错误消息也不显示成功消息。这里有一段代码可以解决您的问题:
..............
<!-- in your form tag add attribute method="POST" -->
<!-- Your code -->
<!-- in your div class="container"> -->
<?php if($success) { ?>
<p class="success"><?php echo $success; ?></p>
<?php } else if ($error) { ?>
<p class="error">
<?php echo $error; ?>
</p>
<!-- Your code -->
Happy coding ;)
我正在为一个副项目使用 php
验证我的登录。现在我有一个用户是 admin
,密码是 123
。如果用户输入错误的密码或用户名,它将抛出一条消息说 Wrong Password
或 Wrong Username
。目前它也没有做,我试图找出原因。我会 post 下面的 html
和 php
。
更新:我添加了 method = post
。不知道从这里去哪里。
<?php
$uname = $_POST['uname'];
$passwd = $_POST['psw'];
$error = "";
$success ="";
if(isset($_POST['submit'])){
if($uname == 'admin'){
if($passwd == '123'){
$error = "";
$success = "Welcome Admin";
}
else{
$error = " Wrong Password!!";
$success = "";
}
}
else{
$error = " Wrong Username!";
$success = "";
}
}
?>
<html lang="en">
<head>
<title>Hangman Home Page</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-
width, initial-scale=1">
<link rel="stylesheet" type="text/css"
href="home.css">
</head>
<body>
<div class="header">
<div class="a">Hangman</div>
<br>
<br>
<br>
<!--column start here -->
<div class="hi">
<table id="leader">
<tr>
<th><img src="crown.gif"></th>
</tr>
<tr>
<td>Leader Board</td>
</tr>
<tr>
<td>1st. John : 4 guess</td>
</tr>
<tr>
<td>2nd. Smith : 6 Guesses</td>
</tr>
<tr>
<td>3rd. Tom : 7 Guesses</td>
</tr>
<tr>
<td>4th. Allen : 8 Guesses</td>
</tr>
</table>
</div>
<!-- form start here -->
<br><br>
<div class="b">Think You Can Beat #1 ?</div>
<center><button
onclick=
"document.getElementById('id01').
style.display='block'"
style="width:auto;">Play Now!!!
</button></center>
<div id="id01" class="modal">
<form class="modal-content animate" action="/action_page.php">
<div class="imgcontainer">
<span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">×</span>
<img src="hang1.gif" alt="logo" class="avatar">
</div>
<div class="container">
<p class="error">
<?php echo 'error'; ?>
</p>
<p class="success">
<?php echo 'success'; ?>
</p>
<label for="uname"><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="uname" required>
<label for="psw"><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="psw" required>
<button type="submit">Login</button>
<label>
<input type="checkbox" checked="checked" name="remember"> Remember me
</label>
</div>
<div class="container" style="background-color:#f1f1f1">
<button type="button" onclick="document.getElementById('id01').style.display='none'" class="cancelbtn">Cancel</button>
<span class="psw">Forgot <a href="#">password?</a></span>
</div>
</form>
你正在回应一个名为成功和错误的字符串<?php echo 'success'; ?>
你应该做的是回应变量:
<?php echo $error; ?>
和:
<?php echo $success; ?>
你的脚本有一些错误。首先,让我们检查一下您的表格:
<form action="/action_page.php">
<input type="text" placeholder="Enter Username" name="uname" required>
<input type="password" placeholder="Enter Password" name="psw" required>
<button type="submit">Login</button>
<input type="checkbox" checked="checked" name="remember"> Remember me
</form>
填写并提交此代码后,将在您的 PHP 脚本中生成这些变量:
$_GET["uname"], $_GET["psw"] and $_GET["remember"].
您正在尝试使用 $_POST
访问数据,但这只会在您将属性 method="post" 添加到您的 <表格> 标签。
您还可以使用 $_REQUEST
.
$_GET
和 $_POST
数组
另一个错误是您在代码顶部检查数据是否已提交的方式。没有变量 $_POST["submit"]
($_GET["submit"]
或 $_REQUEST["submit"]
),因为表单中没有具有此名称的变量,您可能正在考虑提交按钮。检查表单是否提交,最好的方法是检查用户名和密码是否不为空。
此外,您在表单中回应了 'error' 和 'success',并且您可能试图回应 $error 和 $success 的结果。
因为您既不显示错误消息也不显示成功消息。这里有一段代码可以解决您的问题:
..............
<!-- in your form tag add attribute method="POST" -->
<!-- Your code -->
<!-- in your div class="container"> -->
<?php if($success) { ?>
<p class="success"><?php echo $success; ?></p>
<?php } else if ($error) { ?>
<p class="error">
<?php echo $error; ?>
</p>
<!-- Your code -->
Happy coding ;)