0

所以我正在为我的网站进行错误处理。我希望能够通过使用激活错误处理程序

include_once("errorhandler.php");

到目前为止它工作得很好,如果发生错误,它会显示错误,但是我面临另一个问题。我制作了一个名为“test.php”的 php 文件,如下所示:

<?php
include("errorhandler.php");
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <h1>My awesome page :D</h1>
        <?php
            mysql_connect("test","test");
            opendir("test");
        ?>
    </body>
</html>

现在的问题是,错误被显示,但标题也被显示,因为它在脚本崩溃并启动错误处理程序之前执行该部分。

它使页面看起来像这样: 错误图片

基本上,我需要错误处理程序在写入 Html 之前清除所有内容。

我试过使用<script> document.write('');</script>

在我的错误处理方法的开始,没有运气。

所以现在我被困住了,关于如何解决这个问题的任何想法?

4

3 回答 3

0

把死();在包含之后,将停止页面的其余部分运行,或者将 if 包装在您的异常周围,以便if (exception) { //do include } else { //show normal code }

于 2013-03-15T10:48:23.850 回答
0

您可以尝试将您的 html 放入函数中:

public function render() {
    $this->ht_content = '<html> Your html </html>';
    return $this->ht_content;
}

然后在您的错误处理程序中,您可以这样说:

if($errors) {
    // Error stuff here
} else {
    $ht = new html();
    $ht->render();
}

你可以把它做得像你想要的那样大和漂亮:)

于 2013-03-15T10:50:58.487 回答
0

在错误处理程序的开始使用ob_clean(); ,所以当它发生时它会清理页面!

于 2013-03-15T10:52:32.130 回答