php 在登录的同一页面上显示错误消息
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/22129273/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
display error message on same page for login
提问by user3369387
I am trying to display error message on same page. I know i have to use javascript. This is my code so far. However it says 1 after. I thnk this is from my numrows!==0 how would i get rid of this 1.
我试图在同一页面上显示错误消息。我知道我必须使用 javascript。到目前为止,这是我的代码。然而它说1之后。我想这是来自我的 numrows!==0 我将如何摆脱这个 1。
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if ($username&&$password)
{
$host_name = 'localhost';
$db_user ='root';
$db_pass = '';
$db_name = 'login';
/* Connect to MySQL */
$con = mysql_connect("$host_name","$db_user","$db_pass") or die ("Couldn't connect!");
$db = mysql_select_db("$db_name") or die ("Couldn't connect to database!");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
/*Check to see if they match! */
if ($username==$dbusername&&$password==$dbpassword)
{
echo "You're in! <a href='member.php'> Click</a> here to enter the member page";
$_SESSION['username']==$username;
}
else
echo "Incorrect password";
}
else
die("That user doesn't exist!");
echo $numrows;
}
else
die("Please enter username and/or password!");
?>
回答by Jay Bhatt
You don't really need JavaScript to do this. You can do it in PHP. As shown below.
您实际上并不需要 JavaScript 来执行此操作。你可以用 PHP 来做。如下所示。
I've modified your PHP code. Place this in the file where you perform login.
我已经修改了您的 PHP 代码。将它放在您执行登录的文件中。
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if (!empty($username) && !empty($password))
{
$host_name = 'localhost';
$db_user ='root';
$db_pass = '';
$db_name = 'login';
$con = mysql_connect($host_name, $db_user, $db_pass) or die ("Couldn't connect!");
$db = mysql_select_db($db_name) or die ("Couldn't connect to database!");
$query = mysql_query("SELECT * FROM users WHERE username=".mysql_real_escape_string($username)." and password = ".mysql_real_escape_string($password));
$numrows = mysql_num_rows($query);
if($numrows == 1)
{
$_SESSION['username'] = $username; //Store username to session for futher authorization
header("Location: member.php"); //Redirect user to home page
}
else {
$_SESSION['errMsg'] = "Invalid username or password";
}
header("Location: login.php"); //Redirect user back to your login form
}
else {
die("Please enter username and/or password!");
}
?>
And simply do something like this on your login form.
只需在您的登录表单上执行类似操作即可。
<?php session_start(); ?>
<html>
<body>
<div id="errMsg">
<?php if(!empty($_SESSION['errMsg'])) { echo $_SESSION['errMsg']; } ?>
</div>
<?php unset($_SESSION['errMsg']); ?>
</body>

