2012-07-19 66 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

相關問題