标题位置不重定向
我一直盯着这个代码几个小时了。还请阅读很多关于此网站上发生此错误的建议。但我不明白为什么标题位置不会重定向我。标题位置不重定向
**我知道这可能是一个重复的问题,但我不明白“已经发出错误头,所以我想它可能是不同的,因为我尝试了建议的解决方案**
我尝试了远
ob_start();
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
- 更改文件为UTF-8 BOM
- 删除文件&具有绝对的URL重新创建
- 替换
../dashboard.php
- 删除所有的空格
但它仍然没有工作,页面只是刷新,以及URL保持不变。
这是PHP代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ob_start();
include "config.php";
if (isset ($_POST['lemail']) && isset($_POST['lpassword'])) {
$email = $_POST['lemail'];
$password = $_POST['lpassword'];
$email = mysqli_real_escape_string ($connection, $email);
$password = mysqli_real_escape_string ($connection, $password);
// sha256 password hashing
$hashed_password = hash('sha256', $password);
$query = "SELECT * FROM users WHERE userEmail = '{$email}' AND userPassword = '{$hashed_password}'";
$select_user_query = mysqli_query ($connection, $query);
if (!$select_user_query) {
die ("Query Failed". mysqli_error($connection));
}
$count = mysqli_num_rows($select_user_query);
if($count == 1) {
header("Location:http://localhost/honest/dashboard.php");
exit(0);
} else {
echo "Not OK";
}
}
ob_end_flush();
?>
编辑: 问题被标记为与different question这是不相关的东西,我想实现复制。
我想通过PHP本身而不是通过Javascript重定向页面。
当你使用ajax请求时,不要在php中重定向,你需要在ajax成功调用中重定向,在它下面显示你可以实现这一点。
<script type="text/javascript">
$('document').ready(function(){
$('form').submit(function(e){
e.preventDefault();
var FormData = $('form').serialize();
$.ajax({
type : 'POST',
data : FormData,
url :'Your-login-Page.php',
datatype : 'json',
encode : true,
success : function(response){
response = JSON.parse(response);
if(response == "ok"){
//login sucess
$('#SuccessDiv').html('Login success');
setTimeout(' window.location.href = "dashboard.php"; ', 6000);
}else{
$('#ErrorDiv').html(response);
}
}
});
});
});
</script>
then your login
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ob_start();
$message ='';
include "config.php";
if (isset ($_POST['lemail']) && isset($_POST['lpassword'])) {
$email = $_POST['lemail'];
$password = $_POST['lpassword'];
$email = mysqli_real_escape_string ($connection, $email);
$password = mysqli_real_escape_string ($connection, $password);
// sha256 password hashing
$hashed_password = hash('sha256', $password);
$query = "SELECT * FROM users WHERE userEmail = '{$email}' AND userPassword = '{$hashed_password}'";
$select_user_query = mysqli_query ($connection, $query);
if (!$select_user_query) {
die ("Query Failed". mysqli_error($connection));
}
$count = mysqli_num_rows($select_user_query);
if($count == 1) {
$message = 'ok';
} else {
$message = "username and password does not match";
}
echo json_encode($message);
}
?>
在你的PHP,我会建议你使用的mysqli准备陈述或者 更好地利用PDO预处理语句,并且还使用提供了PHP的更安全 密码哈希值,这是
password_hash();
和password_verify()
功能。
OP特意要求PHP解决方案。 – GordonM
@GordonM请阅读评论 –
@Rayan Sp config.php输出一些东西吗?必须在发送任何输出之前调用header(),或者使用普通的HTML标签,文件中的空行或PHP。 –
@DanielLagiňconfig.php是连接文件。它没有输出到我的知识。除了这个'if(!$ connection){'error'); }'我不认为这是一个输出 –
'count'永远等于条件吗?,你有没有尝试过没有任何代码的重定向? –