Javascript警告不能在codeigniter的实时服务器上工作


Javascript alert not working on live server in codeigniter

我在codeigniter工作。我有一个错误的javascript代码。我有一个登录表单,并希望显示一个javascript警报框,如果登录名或用户名是错误的。我已经完成了我的项目在本地主机和javascript在本地主机上工作得很好。但是当我将项目上传到实时服务器时,它显示一个错误消息。

遇到PHP错误

严重性:Warning Message: Cannot modify header information - headers已发送(输出开始于)/home/servername/public_html/projectdemo/wms/应用程序/控制器/login: 36)文件名:helpers/url_helper.php行号:540

我把这段javascript代码放在controller

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

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

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

后来我把脚本放在头部部分,但出现了相同的错误信息。
你能帮帮我吗?

CodeIgniter使用视图/模板呈现系统正式回复客户端。回显比框架过程的那一部分更早的东西会导致服务器提前回复客户端,因此"headers already sent"。在此之后,CodeIgniter不能再对预期的内容做任何事情,因为您强制服务器过早地响应。

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

必须在任何HTML, JS, CSS等之前解析头文件

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

检查这里接受的答案:如何修复"头已经发送"PHP出错

剧透:你不允许在控制器中开始输出,这就是为什么你有视图。