我的php标头标签不会重定向

时间:2014-04-28 21:58:57

标签: php redirect

我尝试过我的研究,看起来我的成功并不成功。我确保在标题标记之前没有内容打印到屏幕上。

此页面将从上一个登录页面中的表单中获取信息,并使用该信息确定用户应重定向到哪个页面。不幸的是,它并不像我的任何标头标签重定向到任何东西,它只是停留在这个php页面。

为了进行调试,我对每个场景(登录,出局,错误的pw)都有回应,并且每个场景都有效,但显然当我回应时,重定向将无法正常工作。我只想测试信息是否正确传输。

其他人可以帮助并给我一个局外人的观点吗?

<?php
session_start();
include('dbconnect.php');
$email = trim($_POST['email']);
$password = trim($_POST['password']);
$query = "SELECT password FROM artists WHERE email='$email'";
$passwordMatch = mysqli_query($db, $query);
$row = mysqli_fetch_array($passwordMatch);
if($row[0] == $password){
    $query = "SELECT active FROM artists WHERE email = '$email'";
    $active = mysqli_query($db, $query);
    $active = mysqli_fetch_array($active);
    $active = $active[0];
    if ( $active == 0 ){
        header('Location: validate.php');
    }
    else{
        header('Location: artistHome.php'); //redirect to user home page and update session
        $_SESSION['user']= $email;
        unset($_SESSION['error']);
    }
}
else{
    header("Location: login.php");
    $_SESSION['error']= 'Invalid Password';
}
?>

2 个答案:

答案 0 :(得分:0)

在这里有大约数千个像这样的帖子。在php打开标签?>之前,取消php关闭标签<?php和空格,html,空白行。还要检查之前是否没有输出:

header("Location:");

printvar_dumpecho等相似。

同时检查if条件,也许您只是跳过它。

如果您includeinclude_oncerequire_oncerequire也会检查所包含文件中的所有内容。

要缩小要修改的内容,请查看您的php error_log,并向我们提供错误说明。

答案 1 :(得分:0)

如果任何在此之前返回到浏览器,则

header("Location: login.php");将始终失败。这包括空格,甚至是PHP返回的错误。确保在使用header功能之前返回