Cannot modify header information headr函数问题,代码很简单
login.php
<br /><br /><title><br />登陆界面<br /></title><br /><br /><meta http-equiv="content-type" content="text/html;charset=utf-8" /><br /><br /><body><br /><br /><table><br /><tr><td>用户名:</td><td></td></tr><br /><tr><td>密码:</td><td></td></tr><br /><tr><td><td></td></tr><br /></table><br /><br /><br /><br /><br />loginController.php<br /><br /><title><br />验证控制器<br /></title><br /><br /><meta http-equiv="content-type" content="text/html;charset=utf-8" /><br /><br /><body><br /><?php<br />$username=$_REQUEST['username'];<br />$password=$_REQUEST['password'];<br />if($username=='123'&&$password=='123'){<br /> header("location:Manage.php");<br /> exit();<br />} else{<br /> echo '账号密码有误';<br />}<br />?><br /><br /><br /><br /><br /><title><br />管理界面<br /></title><br /><br /><meta http-equiv="content-type" content="text/html;charset=utf-8" /><br /><br /><body><br /><h1>欢迎管理员</h1><span>%本文来源gaodai#ma#com搞*代#码9网#</span><strong>搞gaodaima代码</strong><br /><br /><br /><br />输入用户名密码123<br />错误提示如下:<br />Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\sqlInjcetion\loginController.php:9) in C:\wamp\www\sqlInjcetion\loginController.php on line 13<br /><br />求解!<br />另外3个php文件都是utf-8编码<br />
——解决方案——————–
<?php 顶格写了没有。前面是否有空行。
——解决方案——————–
你那么多html代码就是输出了
搜索下php缓冲区 header
这个问题的解释还是很多的呀………….
header(“location:manage.php”)
也可以换成
eacho “<script>window.location.href=’manage.php'</script>”;
——解决方案——————–
根据http原理(注意跟php没啥关系)
http头必须先于http实体输出
所以
从你的.php文件输出了第一个非<?php的内容开始,就已经输出了http响应实体
此时再输出http响应头则无济于事,werbserver也做不了这个事情了。
——解决方案——————–
补充一句,header本身就是修改http响应头,重定向location:只是一种的一种用法(实际被加上了302响应码)
——解决方案——————–
注意文件格式。bom头