首页 >后端开发 >php教程 >Cannot modify header information headr函数有关问题,代码很简单

Cannot modify header information headr函数有关问题,代码很简单

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原创
2016-06-13 11:13:29693浏览

Cannot modify header information headr函数问题,代码很简单
login.php

<br /><html><br /><title><br />登陆界面<br /></title><br /><head><br /><meta http-equiv="content-type" content="text/html;charset=utf-8" /><br /></head><br /><body><br /><form action="loginController.php" method="post"><br /><table><br /><tr><td>用户名:</td><td><input type="text" name="username"/></td></tr><br /><tr><td>密码:</td><td><input type="text" name="password"/></td></tr><br /><tr><td><input type="submit" value="登陆"/><td><input type="reset" name="重新填写"/></td></tr><br /></table><br /></form><br /></body><br /></html><br /><br />loginController.php<br /><html><br /><title><br />验证控制器<br /></title><br /><head><br /><meta http-equiv="content-type" content="text/html;charset=utf-8" /><br /></head><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 /></body><br /></html><br /><br /><html><br /><title><br />管理界面<br /></title><br /><head><br /><meta http-equiv="content-type" content="text/html;charset=utf-8" /><br /></head><br /><body><br /><h1>欢迎管理员</h1><br /></body><br /></html><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 />


------解决方案--------------------
------解决方案--------------------
你那么多html代码就是输出了
搜索下php缓冲区 header
这个问题的解释还是很多的呀.............

header("location:manage.php")
也可以换成
eacho "<script>window.location.href='manage.php'</script>";

------解决方案--------------------
根据http原理(注意跟php没啥关系)
http头必须先于http实体输出
所以
从你的.php文件输出了第一个非此时再输出http响应头则无济于事,werbserver也做不了这个事情了。
------解决方案--------------------
补充一句,header本身就是修改http响应头,重定向location:只是一种的一种用法(实际被加上了302响应码)
------解决方案--------------------
引用:
引用:采用js跳转或者将header前面的html代码删掉

我删除了前面的HTML代码。现在代码如下:
PHP code?12345678910


注意文件格式。bom头
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn