php - 如何使用 php 在弹出窗口中显示服务器端错误消息

标签 php javascript thickbox

我在这里发现了一些类似的问题,但它们都是用 C# 编写的。

请告诉我使用弹出窗口显示服务器端错误消息的最简单方法。

弹出窗口可能是诸如thickbox、modalpopup 等之类的东西...

这是示例代码。我没有在弹出窗口中收到错误消息。

<script type="text/javascript" src="thickbox/jquery-latest.js"></script>
<script type="text/javascript" src="thickbox/thickbox.js"></script>
<link href="thickbox/thickbox.css" rel="stylesheet" type="text/css" />



<span class="prtexterror" style="color:#FF0000;display:none;" id="hiddenModalContent" >{$error_login}</span>


{literal}
<script language="javascript" type="text/javascript">



  $(document).ready(function() {
    tb_show("Please, login", "?tb_inline=true&inlineId=hiddenModalContent&height=180&width=300&modal=true", null);
});



</script>
{/literal}

任何其他方式总是受欢迎的。 提前致谢

最佳答案

通常,PHP 会在发生错误时将其错误输出到输出 HTML 流中,除非您将 .ini 设置“display_errors”设置为关闭。如果您想在模式弹出窗口(警报框、 float div 等)中显示它们,则必须在脚本中添加适当的逻辑来捕获它们:

<?php

$val = some_function_that_causes_an_error();
if (error_get_last()) {
    $lasterror = error_get_last();
}

error_get_last()返回一个数组,请点击 PHP 文档的链接查看格式是什么。

稍后在页面中,您必须将错误转换为您希望显示的任何格式。基本设置是:

<script type="text/javascript">

var errmsg = <?php echo json_encode($lasterror) ?>;

alert('Server error of type ' + errmsg.type + ' at line ' + errmsg.line + ' in script ' + errmsg.file + ': ' + errmsg.message);

</script>

此外,请记住, fatal error (语法错误、内存不足等)无法被捕获,并且会中止脚本,因此除非您通过 AJAX 访问脚本,否则您将得到一个空白页面或以 PHP 错误消息结尾的部分页面。

关于php - 如何使用 php 在弹出窗口中显示服务器端错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788103/

相关文章:

html - Thickbox 3.1 IE8 滚动问题

php - 如何从 php/mysql 的日期时间中减去日期?

php - Composer : Require a specific version of a non-required package

php - 使用 PHP 和 MySQL 生成最大的报告

javascript - 匹配部分代码

jquery - 关闭 thickbox 窗口后刷新父窗口

php - 从用户 ip 地址查找位置和区域

javascript - 将函数分配给变量 angularjs

javascript - 如何使用 JavaScript 刷新 HTML5 数据列表?

javascript - Thickbox Overlay 影响所有元素