-1
以下是我在php中的登录页面代码。如何在php登录页面中使用多个标题
<?php
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = $_POST['username'];
$mypassword = $_POST['password'];
$f_password = md5($mypassword);
$sql = "SELECT id,user_name FROM users WHERE user_name = '$myusername' and password = '$f_password'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_assoc($result);
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1) {
$_SESSION['us_name'] = $row['user_name'];
header("Location: /main-page.php");
}else {
$error = "<script>alert('Incorrect Credentials.Please login again');</script>";
echo $error;
}
}
?>
当我在else块中使用另一个头时,它会引发一些错误。 但我希望用户在输入错误凭证时重定向到相同的登录页面。 我如何在php中执行此操作? 请不要告诉我使用js方法window.location。
当然,“一些错误”是告诉你什么问题与你写的任何代码? – David
您的代码容易受到SQL注入攻击。您应该使用参数化查询和准备语句来帮助防止攻击者通过使用恶意输入值来危害数据库。 http://bobby-tables.com给出了风险的解释,以及如何使用PHP/mysqli安全编写查询的一些示例。 **从不**将未经协商的数据直接插入到您的SQL中。 – ADyson
并且不要使用md5进行密码加密,它很容易被现代计算能力破解 - 这在一段时间后才被发现。而是使用PHP的内置密码散列函数。 – ADyson