为什么我的应用程序仅在使用ob_start()方法时运行

时间:2012-07-19 12:33:07

标签: php

我写了一个简单的应用程序,它有登录页面。登录后,搜索插入按钮就在那里。我构建这个简单的应用程序并在上个月成功运行。但是现在当我使用它时,我的页面不会重定向到下一页。我仔细检查了我的语法。

我用Google搜索答案并找到了ob_start()方法。现在我的应用程序运行成功。

当我第一次使用这个应用程序时,我没有使用ob_start。但是为什么没有ob_start()它现在不工作;方法

请解释。

搜索功能:

            $email = $_POST['search'];
    $sql = "select * from employee_details where ";
    if($email){
    $sql .= " email = '$email' ";
    }

    $rv = mysql_query($sql);
    if(mysql_num_rows($rv) == 0){
    $errmsg_arr[] = "Employee records are not found.";
    $page = "HomePage.php";
    $errflag = true;    
    errors($page,$errmsg_arr, $errflag );
    }
    while( $row = mysql_fetch_array($rv)){
     $var['employee_id'] = $row['employee_id'];
     $var['employeename'] = $row['employee_name'];
     $var['email'] = $row['email'];
     $var['phone'] = $row['phone'];
     $var['address1'] = $row['address1'];
     $var['state'] = $row['state'];
     $var['country'] = $row['country'];
    }
    addvars($var);
    header("location: EmployeeDetails.php");    

addvars function:

function addvars($vars) {
    session_start();
$_SESSION[] = array();  

    foreach($vars as $keys => $vals) {  

$_SESSION[$keys] = $vals;   

}
 }

错误功能:

function errors($page,$errmsg_arr, $errflag){
if($errflag) {
    session_start();
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    session_write_close();
    header("location: $page");
    exit();
}
}

1 个答案:

答案 0 :(得分:0)

最有可能的原因是您尝试在已经发出标头时设置标头。 (你可以尝试调整输出缓冲,而不是使用ob_start,如果它困扰你)。