首页 > 后端开发 > php教程 > 错误 - php提示「headers already sent by」是怎么回事?

错误 - php提示「headers already sent by」是怎么回事?

WBOY
发布: 2016-06-06 20:52:34
原创
1069 人浏览过

错误提示:
SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 9

SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 10

SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 28

SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 29

大致的代码:

<?php /*
* 未完成内容 : 添加判断的url中log?= "" 的if语句,来判断用户是登陆还是退出
*添加一个判断是否已经登陆的if语句
*
*/
include("conn.php");
function clearcookies(){
    setCookie('username','',time()-3600);
    setCookie('logset','',time()-3600);
}
?>
  <?php if ($_POST['loginsubmit'])  //检查是否提交
    {
        clearcookies();
        $sql = "SELECT * FROM user WHERE username = '$_POST[username]'";
        $query = mysql_query($sql);
        $userinfo = mysql_fetch_array($query);
        if ($_POST[password] != "" & $_POST[username] != "") //检查用户名密码是否填写
        {
            if ($userinfo['password'] == $_POST['password'] ) //在SQL中检查用户名密码是否正确
            {
                $username = $_POST[username];
                
                setcookie('username','$username',time()+31536000,'/');
                setcookie('logset','ok',time()+31536000,'/');
                echo "<meta http-equiv=refresh content=0;url=index.php?foo=$_POST[username]>";
            }
            else
            {
                echo "登录失败!";
                echo "请检查您的用户名或密码是否都填写正确";
            }
        }
        else
        {
            echo "登录失败!";
            echo "请检查您的用户名或密码是否为空";
        }
    }
  ?>
登录后复制
登录后复制

处错误的大致是这个位置:
setcookie('username','$username',time()+31536000,'/');
setcookie('logset','ok',time()+31536000,'/');

回复内容:

错误提示:
SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 9

SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 10

SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 28

SAE_Warning: Cannot modify header information - headers already sent by (output started at /data1/www/htdocs/345/leank/1/bbs/login.php:15) in bbs/login.php on line 29

大致的代码:

<?php /*
* 未完成内容 : 添加判断的url中log?= "" 的if语句,来判断用户是登陆还是退出
*添加一个判断是否已经登陆的if语句
*
*/
include("conn.php");
function clearcookies(){
    setCookie('username','',time()-3600);
    setCookie('logset','',time()-3600);
}
?>
  <?php if ($_POST['loginsubmit'])  //检查是否提交
    {
        clearcookies();
        $sql = "SELECT * FROM user WHERE username = '$_POST[username]'";
        $query = mysql_query($sql);
        $userinfo = mysql_fetch_array($query);
        if ($_POST[password] != "" & $_POST[username] != "") //检查用户名密码是否填写
        {
            if ($userinfo['password'] == $_POST['password'] ) //在SQL中检查用户名密码是否正确
            {
                $username = $_POST[username];
                
                setcookie('username','$username',time()+31536000,'/');
                setcookie('logset','ok',time()+31536000,'/');
                echo "<meta http-equiv=refresh content=0;url=index.php?foo=$_POST[username]>";
            }
            else
            {
                echo "登录失败!";
                echo "请检查您的用户名或密码是否都填写正确";
            }
        }
        else
        {
            echo "登录失败!";
            echo "请检查您的用户名或密码是否为空";
        }
    }
  ?>
登录后复制
登录后复制

处错误的大致是这个位置:
setcookie('username','$username',time()+31536000,'/');
setcookie('logset','ok',time()+31536000,'/');

因为在setCookie之前多输出了东西造成的,看代码似乎是输出了空格,把中间的

?>
  <?php 
登录后复制

去掉应该就可以了

亲爱的.记得每次写完程序后把文件保存成UTF-8 无BOM格式哦.否则就容易出现这样的错误的说~

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板