2013-04-11 32 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的教程!