标题位置不重定向

问题描述:

我一直盯着这个代码几个小时了。还请阅读很多关于此网站上发生此错误的建议。但我不明白为什么标题位置不会重定向我。标题位置不重定向

**我知道这可能是一个重复的问题,但我不明白“已经发出错误头,所以我想它可能是不同的,因为我尝试了建议的解决方案**

我尝试了远

  • 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重定向页面。

+0

@Rayan Sp config.php输出一些东西吗?必须在发送任何输出之前调用header(),或者使用普通的HTML标签,文件中的空行或PHP。 –

+0

@DanielLagiňconfig.php是连接文件。它没有输出到我的知识。除了这个'if(!$ connection){'error'); }'我不认为这是一个输出 –

+0

'count'永远等于条件吗?,你有没有尝试过没有任何代码的重定向? –

当你使用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()功能。

+0

OP特意要求PHP解决方案。 – GordonM

+0

@GordonM请阅读评论 –