2013-04-11 62 views
0

如何使die()消息在同一頁的HTML部分的某個地方回顯?style die()錯誤消息

$files = array(); 
    $upload = $_FILES['upload']['tmp_name']; 
    foreach($upload as $uploaded){ 
if(!empty($uploaded)) { 
if(isset($uploaded)){ 
$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mime= finfo_file($finfo, $uploaded); 
    switch($mime) { 
    case 'application/pdf': 
    break; 
    default: 
die('pdf file only.');  
break; 
     } 
    } 
    } 
} 
+1

只有一種情況下切換有點傻。 – JJJ 2013-04-11 19:20:10

+0

在這種情況下,如果你想在錯誤發生後執行一部分執行,你不應該使用'die()',編寫一些適當的錯誤處理。 'die()'應該只在[執行*不能*和*不應該*繼續]的災難性錯誤的情況下[在生產中]使用。 – Sammitch 2013-04-11 19:23:34

+1

@Juhana,但是當開始擴展應用程序時,這是一個很好的觀點 – Voitcus 2013-04-11 19:24:14

回答

1

die結束將立即停止執行,並在緩衝區瀏覽器發送任何之後你做的事情。

就個人而言,我喜歡做這樣的事情:

function halt($str="") { 
    if($str) echo "<div class=\"server_notice\">".$str."</div>"; 
    require("template/foot.php"); 
    exit; 
} 
1

有沒有辦法做到這一點。 die()exit()將停止執行腳本。

你可以製作一些錯誤報告系統。 $lastError = null

然後做你想要的,並設置此錯誤。

然後你可以在一些地方檢查:

if ($lastError == 2){ 
    echo "The file is no in PDF format" ; 
} //and so on. 

你也可以創建一些常量,如:

define("ERROR_WRONG_FORMAT", 2); //Make the error clear. 
1

你需要呼應了div標籤,然後使用CSS定位它們。

die('<div id="error">pdf file only.</div>'); 

然後將下面的文本添加到您的CSS:

#error{position:absolute;top:10;left:10;} 

您需要根據您wnat他們是改變頂部和左側值。

如果你不知道什麼是CSS,我建議你在YouTube上觀看TheNewBoston的教程!