2012-01-21 87 views
0

我遇到了該標題的問題。 當頁面被處理時,我只會退出();功能「標題」不起作用

if($validate=='true') { 
     $_SESSION['nome'] = $nome; 
     $_SESSION['cognome'] = $cognome; 
     $_SESSION['email'] = $email; 
     $_SESSION['telefono'] = $telefono; 
     $_SESSION['cellulare'] = $cellulare; 
     $_SESSION['password'] = $password; 
     $_SESSION['societa'] = $societa; 
     $_SESSION['pi'] = $pi; 
     $_SESSION['cf'] = $tax; 
     $controllor = md5(uniqid(rand(), TRUE)); 

     ob_start(); 
      header("Location: index.php?nav=8&controllor=".$controllor); 
     ob_end_flush(); 
     exit(); 


    } 

上面的所有變量都被正確填充,$ validate等於'true'。

+0

必須在發生任何輸出之前使用'ob_start()';就像'header()'應該一樣。 – mario

回答

1

首先,應避免使用輸出緩衝來避免編寫正確的代碼;它可能已經幫你解決了這個問題。其次,您使用輸出緩衝來避免標題錯誤消息的方式是錯誤的。 輸出緩衝應該作爲第一件事開始。

沒有錯誤消息或更多代碼來解決您的問題,顯而易見的建議是刪除輸出緩衝區,在將任何輸出發送到瀏覽器之前將頭函數()的功能移到某個點。

+0

我解決了把ob_start();頂部,然後: header(「Location:google.it」); ob_end_flush(),exit(),. 感謝您的建議。 –

0

由於您的$ validate等於true。我建議這個解決方案,否則我不會

你可以用這個Javascript代替你的頭()。

echo "<script>location.href=index.php?nav=8&controllor='$controllor'</script>"; 
+0

我不想使用因爲該用戶可能已禁用JavaScript。 –