在javascript呈现的页面上显示开发php错误

在javascript呈现的页面上显示开发php错误,javascript,php,html,Javascript,Php,Html,我曾经用php呈现我所有的html,然后在完成时回显一个html字符串。当我的测试站点出现php错误时(这是开发过程中的错误,就像拼写错误的变量),我会回显错误并退出。很容易看到错误并快速修复。当该网站是活的,我会显示一个一般错误,并通过电子邮件发送错误的细节。这些实时错误不太常见,电子邮件是完美的 目前,我正在使用javascript/jquery呈现页面。现在,当PHP错误发生时,错误不会呈现在页面上。我可以通过电子邮件获得错误,但有时我甚至不知道发生了错误。控制台中没有错误,页面(页眉和页

我曾经用php呈现我所有的html,然后在完成时回显一个html字符串。当我的测试站点出现php错误时(这是开发过程中的错误,就像拼写错误的变量),我会回显错误并退出。很容易看到错误并快速修复。当该网站是活的,我会显示一个一般错误,并通过电子邮件发送错误的细节。这些实时错误不太常见,电子邮件是完美的

目前,我正在使用javascript/jquery呈现页面。现在,当PHP错误发生时,错误不会呈现在页面上。我可以通过电子邮件获得错误,但有时我甚至不知道发生了错误。控制台中没有错误,页面(页眉和页脚除外)将为空

因此,为了显示php错误,我首先执行所有php代码。错误将按预期显示。在php中,我回显页眉和页脚html。javascript代码随后在content div上运行。在此之后的任何php错误都将不可见或很难找到。我能够发送一封电子邮件的错误,这是我现在的调试方法-似乎不正确

以下是我当前的错误处理程序:

$message = "<p>Nice Job moron: A pos error occurred in script '$e_file' on line $e_line: $e_message\n<br />";
// Add the date and time:
$message .= "Date/Time: " . date('n-j-Y H:i:s') . "\n<br />";
// Append $e_vars to the $message:
$message .= "<pre>Error Variables:<br />" . print_r ($e_vars, 1) . "</pre>\n</p>";
// what is the url?
$message .= "<p><pre>URL: " .getPageURL()   . "</pre>\n</p>";
$message .= '<pre>Session variables:<br />' . print_r($_SESSION,1). "</pre>\n</p>";
$message .= '<pre>Bactrace:<br />' . print_r(debug_backtrace(),1). "</pre>\n</p>";
if (!LIVE) 
{ 
// Send an email to the admin:
    mail(SUPPORT_EMAIL, 'TEST Site Error!', $message, 'From: ' . SUPPORT_EMAIL);
    // Development (print the error).

    echo '<div class="error">' . $message . '</div><br />';


}
else 
{ 

    // Send an email to the admin:
    mail(SUPPORT_EMAIL, 'Site Error!', $message, 'From: ' . SUPPORT_EMAIL);
    // Only print an error message if the error isn't a notice:
    include(HEADER_FILE);
    if ($e_number != E_NOTICE) 
    {
        echo '<div class="error">A system error occurred. We apologize for the inconvenience.</div><br />';
    }
    echo '<div class="error">An Error has occurred and has been emailed to the administrator. Please note the conditions that caused this error and send a note to the administrator</div><br />';
}
$message=“干得好,笨蛋:脚本“$e_文件”的第$e_行:$e_message\n行出现pos错误
”; //添加日期和时间: $message.=“日期/时间:”。日期('n-j-Y H:i:s')。“\n
”; //将$e_vars附加到$message: $message.=“错误变量:
”。打印(1美元)。“\n

”; //什么是url? $message.=“URL:”.getPageURL()。“\n

”; $message.='会话变量:
'。打印(会话,1)。“\n

”; $message.='Bactrace:
'。打印(调试回溯(),1)。“\n

”; 如果(!LIVE) { //向管理员发送电子邮件: 邮件(支持电子邮件,“测试站点错误!”,$message,“发件人:”。支持电子邮件); //开发(打印错误)。 回显“.$message”。
; } 其他的 { //向管理员发送电子邮件: 邮件(支持电子邮件,“站点错误!”,$message,“发件人:”。支持电子邮件); //仅当错误不是通知时才打印错误消息: 包括(头文件); 如果($e_编号!=e_通知) { echo“出现系统错误。我们为给您带来的不便深表歉意。
”; } echo“发生错误并已通过电子邮件发送给管理员。请注意导致此错误的情况,并向管理员发送一份说明
”; }
这是我在stackoverflow上从问题中找到的一个错误处理程序 我希望这能奏效,但事实并非如此。看起来脚本执行停止,并且没有发生html呈现

//新的错误处理
$(“#内容”).append(“

”); $(“#content”).append('Show me all PHP runtime errors'); var nerrors=0;//Javascript中的PHP错误计数 函数phperors() { //包装PHP代码的Javascript函数
是包含php函数“.php”的javascript文件的扩展名?否则不能在文件中执行php代码。是的,转储脚本的文件是.php.php标记,脚本开始执行。所有可重用的javascript都在.js文件中.php中的特定于页面的javascript。我曾在php中构建html字符串,但在关闭div标记时发现了问题,这为我调试html字符串提供了额外的步骤。使用这种javascript方法,我可以创建div,然后以更简单的方式添加。但是我仍然无法处理php错误…尝试了很多事情…仍然在移动我的php gen将页脚文件保存到脚本末尾会使页脚在php错误时失败而不显示,因此我知道有错误。当我打开页面源代码时,使用我原来的错误处理程序会显示错误。仍然有点傻,但我至少可以得到错误。新的错误处理程序不会显示错误。基本上相同的问题在这里:
//new error handling
$("#content").append('<p id="PHPError"> </p>');
$("#content").append('<button onclick="PHPErrors()">Show me all PHP runtime errors</button>'); 
var nerrors = 0;               // PHP Errors count in Javascript

function PHPErrors() 
{         
    // Javascript  Function that wraps the PHP Code
    <?php
        // MyErrorHandler is my function that my custom error handler
        // uses with error parameters in that given order.

         function myErrorHandler($errno, $errstr, $errfile, $errline) {
         echo 'ERror';
         echo "document.getElementById('PHPError').innerHTML += " . 
          "\"$errno: $errstr ($errline)<br>\";\r\n";        
         echo "nerrors = nerrors + 1;\r\n";
         return true;
    }
    // That's the line the set my custom new error-handling
    // disabling the default error handling
    $old_error_handler = set_error_handler("myErrorHandler");

    // Below random PHP code full of errors 
    $b = $a;                 // PHP Error 1
    $c = $a +1;              // PHP Error 2
    $d = $a + 1;             // PHP Error 3  
    $e = $_SESSION['glove'];  // PHP Error 4
    ?>
    // No PHP runtime error deserves a nice messagen
    if (nerrors===0) 
    {
       document.getElementById('PHPError').innerHTML =
                        "Well done! PHP without errors."; 
    } 
}                        // End Javascript Function

$(document).ready(function()
{PHPErrors()});
<!DOCTYPE html >
<html lang="en">
<head>
<meta charset="utf-8">
<title>Create MFG Brand</title>
<link rel="stylesheet" href="https://www.embrasse-moi.com/POS_TEST/Engine/includes/css/style.css" type="text/css" media="all" />
<script>var POS_URL ='https://www.embrasse-moi.com/POS_TEST';</script><script>var LOGOUT_URL ='https://www.embrasse-moi.com/POS_TEST/Engine/login/logout.php';</script><script>POS_ENGINE_URL = "https://www.embrasse-moi.com/POS_TEST/Engine"</script>
<script type="text/javascript" src="https://www.embrasse-moi.com/POS_TEST/3rdParty/jQuery/jquery-1.11.2.min.js"></script>
<link type="text/css" href="https://www.embrasse-moi.com/POS_TEST/3rdParty/jQueryUI/jquery-ui-1.11.4.custom/jquery-ui.css" rel="Stylesheet" />  
<script type="text/javascript" src="https://www.embrasse-moi.com/POS_TEST/3rdParty/jQueryUI/jquery-ui-1.11.4.custom/jquery-ui.min.js"></script>
<script src="https://www.embrasse-moi.com/POS_TEST/Engine/includes/javascript/javascript_library.2015.06.02.js"></script>
<script src="https://www.embrasse-moi.com/POS_TEST/Engine/includes/javascript/check_login.2013.02.16.js"></script>
</head>
<body style="background-color:rgb(255,255,125);">
<div id="header" class =></div>
<div id="content" onmousemove ="UserInput()" onclick="UserInput()" onkeypress="UserInput()" onscroll="UserInput()"> 
<script src="brand.2015.08.03.js"></script>
<script src="https://www.embrasse-moi.com/POS_TEST/Engine/includes/javascript/mySQLTable.2015.08.04.js"></script>
</div><div id="footer">
</div>
</body>
</html>

<script>
$("#content").append('<p id="PHPError"> </p>');
$("#content").append('<button onclick="PHPErrors()">Show me all PHP runtime errors</button>'); 
var nerrors = 0;               

function PHPErrors() 
{         
    ERrordocument.getElementById('PHPError').innerHTML += "8: Undefined variable: a (113)<br>";
    nerrors = nerrors + 1;
    ERrordocument.getElementById('PHPError').innerHTML += "8: Undefined variable: a (114)<br>";
    nerrors = nerrors + 1;
    ERrordocument.getElementById('PHPError').innerHTML += "8: Undefined variable: a (115)<br>";
    nerrors = nerrors + 1;
    ERrordocument.getElementById('PHPError').innerHTML += "8: Undefined index: glove (116)<br>";
    nerrors = nerrors + 1;
    if (nerrors===0) {
       document.getElementById('PHPError').innerHTML =
                        "Well done! PHP without errors."; } 
}                      

$(document).ready(function()
{PHPErrors()});

var type = "view";
var pos_manufacturer_id = 7;
var mfg_tbl_def = [json data sent by php];
var mfg_data = {json data from php};

var account_link = [json data from php];
var act_table_def = [json data from php];

var account_select_table_def = ERrordocument.getElementById('PHPError').innerHTML += "8: Undefined variable: table_object_name (285)<br>";
nerrors = nerrors + 1;