2012-07-19 50 views
0

我写了一个简单的应用程序,它具有登录页面。登录后,搜索插入按钮在那里。我构建这个简单的应用程序,并在上个月成功运行但现在,当我使用这个时,我的页面不会重定向到下一页。我再次检查了我的语法。为什么我的应用程序仅在使用ob_start()方法时才运行

我用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 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(); 
} 
} 
+0

我们需要代码。 ob_ *函数缓冲页面的输出。根据您的使用情况,这可能会导致问题。确保您在发送标题之前没有发送任何内容。 – secretformula 2012-07-19 12:35:42

+0

今天我的水晶球坏了。我不能亲自看到你的代码,你必须被打扰并分享它:( – 2012-07-19 12:39:09

+0

你们应该把更多的精力投入到你的水晶球维护;-) – 2012-07-19 13:16:03

回答

0

很有可能是因为你尝试设置头时,他们已经送出。 (如果它困扰你,你可以尝试调整输出缓冲而不是使用ob_start)。

+0

嗯真的犯了一个愚蠢的错误。其实我手动配置了PHP,Apache,MySQL,并将output_buffering变成了“off”在php.ini文件中。现在改变了价值和它的工作正常。非常感谢您的回复。 – Cindrella 2012-07-19 12:50:17

+0

不客气;) – 2012-07-19 13:15:22

相关问题