【问题标题】:header location issue in php [duplicate]php中的标头位置问题[重复]
【发布时间】:2012-09-25 21:26:10
【问题描述】:

可能重复:
Headers already sent by PHP

    if ($_SERVER['REQUEST_METHOD'] == 'POST') 
    {   
include 'verify.php';
$verify = new Verify();
$vali = $verify->VerifyUserLogin($_POST['UserEmail'], $_POST['Password']);
if($_SESSION['umUser'] == true)
{
    header("Location: ../index.php");

}
else
{
    $errorLogin = $_SESSION['loginForm'];
}
    }


                    function VerifyUserLogin($userEmail, $password)
                {
            $this->connect();
            $pass = md5($password);
            $result = mysql_query("SELECT * FROM umuser where umUserIsAdmin = 1 and umUserEmail = '".mysql_real_escape_string($userEmail)."' and umUserPassword = '".mysql_real_escape_string($pass)."'");
            if (mysql_num_rows($result) > 0)
            {
        while($row = mysql_fetch_array($result))
        {
            $_SESSION['umAnanymousGid'] = $row['umUserGID'];
            $_SESSION['umUserName'] = $row['umUserName'];
            $_SESSION['umUserEmail'] = $row['umUserEmail'];
            $_SESSION['umUserId'] = $row['umUserID'];
            $_SESSION['umUser'] = true;
        }


        //echo $_SESSION['umUser'];
        //header('Location:../');

    }

问题在于它没有重定向到位置并产生警告 警告:无法修改标头信息 - 标头已发送(输出开始于 ....)

请帮忙

谢谢

【问题讨论】:

  • output started at 错误会告诉您问题出在哪里。
  • 您应该尝试将该错误消息放在 SO 搜索框中。大约 5000 个结果。

标签: php oop http-headers


【解决方案1】:

你可以这样做:

<?php
ob_start();
/**
content of your page
*/
ob_end_flush();
?>

或者您可以测试 $_SESSION 的长度(计数),如果它为空,那么任何会话都是打开的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 2011-12-05
    • 2017-01-20
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多