PHP POST 请求重定向到 root/xampp 仪表板
PHP POST request redirects to root/xampp dashboard
我有一个登录页面,其中的表单带有 POST 方法,但没有定义操作(或对自己的操作)。我使用一些功能进行登录,当表单的某些字段留空或登录凭据无效时,我将被重定向到 XAMPP 仪表板。好像我的 else 语句没有生效。知道为什么吗?
if(ifItIsMethod('post')){
if(isset($_POST['username']) && isset($_POST['password'])){
login_user($_POST['username'], $_POST['password']);
}else{
echo "bla bla";
}
}
我试过 else{ header(..)} 但没有任何反应,它只是重定向到仪表板。
我有一个在线测试版本,同样的情况发生在此处:http://hotfol.com/cms/login_page.php
谢谢!!
编辑:函数
function ifItIsMethod($method=null){
if($_SERVER['REQUEST_METHOD'] == strtoupper($method)){
return true;
}else{
return false;
}
}
function login_user($typed_username, $typed_password){
global $connection;
$typed_username = escape($typed_username);
$typed_password = escape($typed_password);
$query = "SELECT * FROM users WHERE username = '$typed_username'";
$select_user_query = mysqli_query($connection, $query);
if(!$select_user_query) {
die ("query failed" . mysqli_error($connection));
}
$row = mysqli_fetch_assoc($select_user_query);
$user_id = escape($row['user_id']);
$username = escape($row['username']);
$password = escape($row['user_password']);
$firstname = escape($row['user_firstname']);
$lastname = escape($row['user_lastname']);
$user_role = escape($row['user_role']);
if (password_verify($typed_password, $password)) {
$_SESSION['username'] = $username;
$_SESSION['firstname'] = $firstname;
$_SESSION['lastname'] = $lastname;
$_SESSION['user_role'] = $user_role;
$_SESSION['user_id'] = $user_id;
header('Location: admin/index.php');
}else{
header('Location: ../index.php');
}
}
你的内部if语句总是为真,但是当一个为空时你无法登录。始终设置用户名和密码,但其中一个为空(仍设置)并且 login_user 函数接收到空数据,因此无法登录用户。使用 empty()
- 当有一个空字符串时它显示为真。
我有一个登录页面,其中的表单带有 POST 方法,但没有定义操作(或对自己的操作)。我使用一些功能进行登录,当表单的某些字段留空或登录凭据无效时,我将被重定向到 XAMPP 仪表板。好像我的 else 语句没有生效。知道为什么吗?
if(ifItIsMethod('post')){
if(isset($_POST['username']) && isset($_POST['password'])){
login_user($_POST['username'], $_POST['password']);
}else{
echo "bla bla";
}
}
我试过 else{ header(..)} 但没有任何反应,它只是重定向到仪表板。
我有一个在线测试版本,同样的情况发生在此处:http://hotfol.com/cms/login_page.php
谢谢!!
编辑:函数
function ifItIsMethod($method=null){
if($_SERVER['REQUEST_METHOD'] == strtoupper($method)){
return true;
}else{
return false;
}
}
function login_user($typed_username, $typed_password){
global $connection;
$typed_username = escape($typed_username);
$typed_password = escape($typed_password);
$query = "SELECT * FROM users WHERE username = '$typed_username'";
$select_user_query = mysqli_query($connection, $query);
if(!$select_user_query) {
die ("query failed" . mysqli_error($connection));
}
$row = mysqli_fetch_assoc($select_user_query);
$user_id = escape($row['user_id']);
$username = escape($row['username']);
$password = escape($row['user_password']);
$firstname = escape($row['user_firstname']);
$lastname = escape($row['user_lastname']);
$user_role = escape($row['user_role']);
if (password_verify($typed_password, $password)) {
$_SESSION['username'] = $username;
$_SESSION['firstname'] = $firstname;
$_SESSION['lastname'] = $lastname;
$_SESSION['user_role'] = $user_role;
$_SESSION['user_id'] = $user_id;
header('Location: admin/index.php');
}else{
header('Location: ../index.php');
}
}
你的内部if语句总是为真,但是当一个为空时你无法登录。始终设置用户名和密码,但其中一个为空(仍设置)并且 login_user 函数接收到空数据,因此无法登录用户。使用 empty()
- 当有一个空字符串时它显示为真。