0

我在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>";

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

4

3 回答 3

0

CodeIgniter 使用视图/模板渲染系统正式回复客户端。在框架过程的那一部分之前回显某些内容会导致服务器提前回复客户端,因此“标头已发送”。此后,CodeIgniter 无法再按预期做任何事情,因为您强制服务器过早回复。

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

于 2013-01-21T07:42:44.773 回答
0

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

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

于 2013-01-21T07:43:34.693 回答
0

在此处检查接受的答案:如何修复 PHP 中的“标头已发送”错误

剧透:你不能在控制器中开始输出,这就是你有视图的原因。

于 2013-01-21T07:43:59.463 回答