Javascript警报无法在codeigniter中的实时服务器上运行

时间:2013-01-21 07:39:10

标签: php javascript codeigniter

我在codeigniter工作。我在javascript代码中有错误。我有一个登录表单,如果登录名或用户名错误,我想显示一个javascript警告框。我在localhost上完成了我的项目,javascript在localhost上运行正常。但是当我在实时服务器上传项目时,它会显示一条错误消息。

遇到PHP错误

  

严重性:警告消息:无法修改标头信息 - 标头   已发送(输出开始于   /home/servername/public_html/projectdemo/wms/application/controllers/login.php:36)   文件名:helpers / url_helper.php行号:540

我把这个javascript代码放在控制器中

<script type='text/javascript'>
function jsfunction()
{
    window.alert("Wrong User Name or Password");
}
</script>

在控制器中,我调用了这个函数:

echo "<script type='text/javascript'>jsfunction();</script>";

后来我把脚本放在头部,但出现了同样的错误信息 你能帮我么。 提前谢谢。

3 个答案:

答案 0 :(得分:0)

CodeIgniter使用视图/模板渲染系统正式回复客户端。回应早于框架程序部分的内容会导致服务器提前回复客户端,因此“已发送标头”。在这之后,CodeIgniter不能再对预期做任何事情了,因为你强迫服务器提前回复。

您应该做的是设置一些标记以及模板/视图数据,以便视图可以有条件地在视图/模板中呈现HTML的一部分(这将是您的错误警报代码)

答案 1 :(得分:0)

必须在任何HTML,JS,CSS等之前解析标头。

https://stackoverflow.com/users/920374/setsuna所述,您应该将JavaScript放入视图文件中。您的PHP错误基本上是说在页面标题发送之前有输出,这会搞砸它。

答案 2 :(得分:0)

在此处查看已接受的答案:How to fix "Headers already sent" error in PHP

剧透:你不允许在控制器中启动输出,这就是你有意见的原因。