验证用户登录php

验证用户登录php,php,validation,login,Php,Validation,Login,快速提问。。。我现在让我的登录页面正常工作,这样当用户输入正确的信息时,它会在会话中将他们重定向到主页。当他们输入错误的信息时,它只会将他们重定向回登录页面 我想做的是,当他们输入错误的信息时,我希望它仍然将他们重定向到登录页面,但我希望它显示无效登录,请重试。我试图回应,但它只是刷新页面,没有回应 登录页面 <?php include '../../view/header.php'; ?> <div id="main"> <?php // Inialize se

快速提问。。。我现在让我的登录页面正常工作,这样当用户输入正确的信息时,它会在会话中将他们重定向到主页。当他们输入错误的信息时,它只会将他们重定向回登录页面

我想做的是,当他们输入错误的信息时,我希望它仍然将他们重定向到登录页面,但我希望它显示无效登录,请重试。我试图回应,但它只是刷新页面,没有回应

登录页面

<?php include '../../view/header.php'; ?>
<div id="main">
<?php

// Inialize session
session_start();

// Check, if user is already login, then jump to secured page
if (isset($_SESSION['username'])) {
header('Location: ../../admin');
}

?>

<html>

<head>
<title>Login</title>
</head>

<body>

<h3>Admin Login</h3>

<table>
<form method="POST" action="loginproc.php">
<tr><td>Username</td><td>:</td><td><input type="text" name="username" size="20"></td></tr>
<tr><td>Password</td><td>:</td><td><input type="password" name="password" size="20"></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td><input type="submit" value="Login"></td></tr>
</form>
</table>

</body>

</html>
</div>
<?php include '../../view/footer.php'; ?>

登录
管理员登录
用户名:
密码:
loginproc.php

<?php

// Inialize session
session_start();

// Include database connection settings
require_once('database.php');

// Retrieve username and password from database according to user's input
$login = mysql_query("SELECT * FROM user WHERE (username = '" . mysql_real_escape_string($_POST['username']) . "') and (password = '" . mysql_real_escape_string($_POST['password']) . "')");




// Check username and password match
if (mysql_num_rows($login) == 1) {
// Set username session variable
$_SESSION['username'] = $_POST['username'];
// Jump to secured page
header('Location: ../../admin');
}
else {
// Jump to login page

header('Location: index.php');

}

?>
<?php

// Inialize session
session_start();

// Include database connection settings
require_once('database.php');

// Retrieve username and password from database according to user's input
$login = mysql_query("SELECT * FROM user WHERE (username = '" . mysql_real_escape_string($_POST['username']) . "') and (password = '" . mysql_real_escape_string($_POST['password']) . "')");




// Check username and password match
if (mysql_num_rows($login) == 1) {
// Set username session variable
$_SESSION['username'] = $_POST['username'];
// Jump to secured page
header('Location: ../../admin');
}
else {
// Jump to login page

header('Location: index.php?loginfail=1');

}

?>

在重定向之前不应使用任何输出。它可以工作,但也可以在不重定向的情况下打印错误


至于重定向和输出。您可以将一些信息存储到
会话
,执行重定向,然后根据
会话
打印错误。如果您的错误报告非常简单,您可以使用
GET
并通过重定向页面将其传递到参数中。

在重定向之前,您不应该使用任何输出。它可以工作,但也可以在不重定向的情况下打印错误

<?php include '../../view/header.php'; ?>
<div id="main">
<?php

// Inialize session
session_start();

// Check, if user is already login, then jump to secured page
if (isset($_SESSION['username'])) {
header('Location: ../../admin');
}
else if (isset($_GET['loginfail']) {
    echo "Please try again later";
}
?>

<html>

<head>
<title>Login</title>
</head>

<body>

<h3>Admin Login</h3>

<table>
<form method="POST" action="loginproc.php">
<tr><td>Username</td><td>:</td><td><input type="text" name="username" size="20"></td></tr>
<tr><td>Password</td><td>:</td><td><input type="password" name="password" size="20"></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td><input type="submit" value="Login"></td></tr>
</form>
</table>

</body>
至于重定向和输出。您可以将一些信息存储到
会话
,执行重定向,然后根据
会话
打印错误。如果您的错误报告非常简单,您可以使用
GET
并通过重定向页面将其传递到参数中。


<?php include '../../view/header.php'; ?>
<div id="main">
<?php

// Inialize session
session_start();

// Check, if user is already login, then jump to secured page
if (isset($_SESSION['username'])) {
header('Location: ../../admin');
}
else if (isset($_GET['loginfail']) {
    echo "Please try again later";
}
?>

<html>

<head>
<title>Login</title>
</head>

<body>

<h3>Admin Login</h3>

<table>
<form method="POST" action="loginproc.php">
<tr><td>Username</td><td>:</td><td><input type="text" name="username" size="20"></td></tr>
<tr><td>Password</td><td>:</td><td><input type="password" name="password" size="20"></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td><input type="submit" value="Login"></td></tr>
</form>
</table>

</body>


您可以在重定向中添加GET参数:
标题('location:url/page?loginfail=1')注意会话如果不增加安全性(例如检查会话IP vs REMOTE_ADDR等),很容易被劫持。这个问题每周都会被问几次。如果搜索以前关于这个主题的问题,你肯定会找到答案。你可以在重定向:
标题中添加GET参数('location:url/page?loginfail=1');
注意,如果您不为会话添加更多安全性(例如检查会话IP与远程地址等),会话很容易被劫持。这个问题每周都会被问几次。如果您搜索有关此主题的先前问题,您肯定会找到答案。