如果我以管理员身份而不是普通用户身份登录,我的php登录系统就可以工作
我正在做一个类项目的网站,如果我作为一个管理员用户登录它的工作,但如果我作为一个普通用户登录,它不会登录我,但它保持cookies 以下是登录php代码:如果我以管理员身份而不是普通用户身份登录,我的php登录系统就可以工作,php,login,Php,Login,我正在做一个类项目的网站,如果我作为一个管理员用户登录它的工作,但如果我作为一个普通用户登录,它不会登录我,但它保持cookies 以下是登录php代码: ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); if(isset($_POST['username'])){ require "config.php"; $usuario = mysqli_real_esc
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if(isset($_POST['username'])){
require "config.php";
$usuario = mysqli_real_escape_string($con,$_POST['username']);
$contra = mysqli_real_escape_string($con, $_POST['password']);
$consulta = $con->prepare("SELECT cod_usuario, Contra, id FROM Usuario WHERE cod_usuario = ?");
$consulta->bind_param("s",$usuario);
$consulta->execute();
$consulta->bind_result($username, $password, $id);
$consulta->store_result();
if($consulta->num_rows == 1){
if($consulta->fetch()){
if(password_verify($contra, $password)){
session_start();
session_name('login');
if($usuario == 'aleaallee' || $usuario == 'administrator'){
setcookie('loggeduser', $usuario, time() + (86400 * 30), '/');
setcookie('token', $id, time() + (86400 * 30), '/');
setcookie('admin', true, time() + (86400 * 30), '/');
$_SESSION["username"] = $usuario;
$consulta->close();
header('location: index.php');
}else{
setcookie('loggeduser', $usuario, time() + (86400 * 30), '/');
setcookie('token', $id, time() + (86400 * 30), '/');
$_SESSION["username"] = $usuario;
$consulta->close();
header('location: index.php');
}
}else{
echo "<h1>Password doesn't match</h1>";
$consulta->close();
header('location: index.php');
}
}
}
}您不应该将mysqli_real_escape_字符串与准备好的语句组合在一起,因为它们已经在bind_参数中进行了转义。对于代码的其余部分,可以尝试添加一些回音,以了解在每个登录测试中代码的哪个部分到达。您不能同时使用、
mysqli\u real\u escape\u string
和参数绑定。这会引起问题。对不起,这不是问题的答案。这也许应该是一个评论。我知道,但我没有必要的声誉去做这件事。
function register($name, $lastname, $user, $pass, $repeated_password, $mail, $birthdate, $location, $address){
require "config.php";
$con = mysqli_connect($server, $username, $password, $dbname);
if($pass == $repeated_password){
$cryptpassword = password_hash(trim($password), PASSWORD_DEFAULT);
$id = bin2hex(random_bytes(8));
$consulta = "INSERT INTO Usuario VALUES('$user', '$name', '$lastname', '$cryptpassword', '$mail', '$address', '$birthdate', '$location', '$id');";
mysqli_query($con, $consulta);
mysqli_close($con);
}