Chinaunix

标题: 帮我看看这条出错信息,多谢!望高手指点!!! [打印本页]

作者: ayitula    时间: 2003-05-25 15:55
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
Warning: Cannot add header information - headers already sent by (output started at d:\society\ourforum.php:14) in d:\society\ourforum.php on line 138


我用PHP+mysql实现用户申请
作者: baorongabc    时间: 2003-05-25 20:00
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
可能是header()函数有误,
  请把line的代码写出!
作者: chinaght    时间: 2003-05-26 22:14
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
应该是在这个文件中的header前面有了输出了,正常情况下header之前不能有任何的输出,你看一下程序相应的行
作者: ayitula    时间: 2003-05-28 00:49
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
不知道在head前不能有输出是何意,所指的输出指的是社么,能具体说明吗?
作者: chinaght    时间: 2003-05-28 22:03
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
在你调用header()函数之前可以有计算语句,但是不能有输出语句
输出语句一般就是指浏览器的输出
比如
echo “good”;
header();这样就不行。
作者: ayitula    时间: 2003-05-28 23:11
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
原帖由 "chinaght" 发表:
在你调用header()函数之前可以有计算语句,但是不能有输出语句
输出语句一般就是指浏览器的输出
比如
echo “good”;
header();这样就不行。
  

我看了我的程序,在header()前没有如echo “”的输出语句阿
我的程序如下,请给我指点迷经:
<?
  include "common.inc.php";

/********************************
*检查用户的昵称是否已经被注册了 *
*如果已经被注册了,就返回该昵称 *
*否则返回空                     *
*********************************/
function Checknicker($nicker) {            
//说明$USER_LOG_TABLE是页面全局变量
  global $USER_LOG_TABLE;
//查询“昵称”的语句
  $SQL="SELECT nicker FROM $USER_LOG_TABLE WHERE nicker='$nicker'";
//以下两句用来返回查询结果
  $result=mysql_query($SQL) or die(mysql_error());
  $row=mysql_fetch_Array($result);
//取出查询并返回
  $nicker=$row[nicker];
  return $nicker;
}

/********************************
*在数据库中增加一个用户         *
*并填写用户的基本信息           *
*返回用户的ID号作为其标识       *
*********************************/
function AddUser() {
  global $USER_LOG_TABLE;
  global $id,$REMOTE_ADDR,$nicker;
  global $password, $log_count, $last_time,
          $last_ip, $arc_count, $gender, $level, $righter,
          $exp_count;

  //最后一次的登录时间
  $last_time=date("Y:m:d";
  //总的登录次数
  $log_count=0;
  //最后一次登录的IP地址
  $last_ip=$REMOTE_ADDR;
  //发表的文章数   
  $arc_count=0;
  //该用户的等级,9为最低级,1是最高级
  $level=9;                  
  //该用户的权限,NONE为最低权限
  $righter='NONE';               
  //该用户的经验值,100是开始的经验点数
  $exp_count=100;                     
  //用INSERT语句添加用户到uesr_log表中
  $SQL="INSERT INTO $USER_LOG_TABLE (
          nicker, password,log_count,last_time,last_ip,arc_count,
          gender,level,righter,exp_count) VALUES (
          '$nicker', '$password', '$log_count', '$last_time',
          '$last_ip', '$arc_count', '$gender', '$level', '$righter','$exp_count')";

  // 取出该用户的ID号,作为标识
  mysql_query($SQL) or die(mysql_error());
  $SQL="SELECT log_id FROM $USER_LOG_TABLE WHERE nicker='$nicker'";
  $result=mysql_query($SQL) or die(mysql_error());
  $row=mysql_fetch_Array($result);
  $id=$row[log_id];
}                          

/********************************
*对用户输入的信息进行检查       *
*如果通过就添加用户             *
*否则就返回错误信息             *
*********************************/
if ($Ok) {

  //  用户的昵称必须填的
  if (!$nicker) $error="用 户 名 不 能 为 空";

  // 用户的昵称只能使用小写字母“a-z”,数字“0-9”,和下划线“_”
  if ((!isset($error)) and (!ereg("[_0-9a-z]*",$nicker))) $error="请 使 用 小 写 字 母“a-z”,数 字 “0-9”,和 下 划 线 “_”";

  //用户的昵称必须大于三位
  if ((!isset($error)) and (strlen($nicker)<4)) $error="昵称的长度应大于3位";

  //该昵称已被注册了
  if ((!isset($error)) and (Checknicker($nicker))) $error="此 用 户 名 已 存 在";

  //  请输入密码
  if ((!isset($error)) and (!$password)) $error="请 输 入 您 的 密 码";

  //两次输入的密码不同
  if ((!isset($error)) and ($password!=$password2)) $error="两 次 输 入 的 密 码 不 同";
  //如果通过检查就开始添加用户
  if (!isset($error)) {
    //  注册新用户
    AddUser();
    //  成功页面
    header("Location: login_ok.php?id=$id\n";
  } else
  //否则报错
  {
    //  失败页面
    header("Location: login_error.php?error=$error\n";
  }
  exit;
}
?>;
<?
/********************************
*下面是用户的输入表单           *
*当输入完后再次调用本程序       *
*以进行错误检查和用户的添加     *
*********************************/
include "header.inc.php";
//缺省的性别是“男”
$gender="M"
?>;

<BODY>;
<!--用户申请表的标题-->;
<TABLE width=100% border=0 align=center>;
  <TR class=myBlue>;
    <TD height=25 align=center>;
        <FONT class=myRed>;
         <?echo "用 户 申 请 表"?>;
        </FONT>;
    </TD>;
  </TR>;
</TABLE>;         

<hr color=red>;
<!--以下是用户申请的表单-->;
<FORM METHOD="OST" ACTION="<? echo $PHP_SELF; ?>;">;
  <TABLE width=80% border=1  align=center bgcolor=yellow>;
    <TR class=myBlack bgcolor=green>;
      <TD colspan=2 height=20 align=center>;
          <FONT class=myYellow>;
             请按照要求填写下列各项!
          </FONT>;
      </td>;
    </TR>;                  
    <!--输入昵称-->;
    <TR class=myBlack>;
      <TD height=20 width=10% align=center class=myRed>;昵 称:</TD>;
      <TD height=20 width=72% align=left>;
        <INPUT type=text name=nicker maxlength=20 value="<? echo $nicker; ?>;" >;
        <FONT class=myRed>;
        长度不少于4位的字母数字和下划线
        </FONT>;
      </TD>;
    </TR>;
    <!--输入性别-->;
    <TR class=myBlack>;
      <TD height=30 width=10% align=center class=myRed>;性别:</TD>;
      <TD height=30 width=70% align=left>;
        <INPUT type=radio name=gender value="M"
           <? echo ($gender=="M" ? "checked" : ""; ?>;>;
              <font class=myBlue>;
                 俊男
              </font>;  
        <INPUT type=radio name=gender value="W"
           <? echo ($gender=="W" ? "checked" : ""; ?>;>;
               <font class=myBlue>;
                美女
               </font>;
        <FONT class=myRed>;            
          &nbsp当心,别错了!
        </FONT>;
      </TD>;
    </TR>;
    <!--输入密码-->;
    <TR class=myBlack>;
      <TD height=30 width=10% align=center class=myRed>;
          密    码:
      </TD>;
      <TD height=30 width=70%>;
        <input type=password name="password" maxlength=8 >;
        <FONT class=myRed>;
        一定要把它记牢了!进入社区的钥匙!
        </FONT>;
      </TD>;
    </TR>;  
    <!--再次输入密码 -->;
    <TR class=myBlack>;
      <TD height=30 width=10% align=center class=myRed>;
          重复密码:
      </TD>;
      <TD height=30 width=70%>;
        <input type=password name="password2" maxlength=8 >;
        <FONT class=myRed>;
        请再确认一下密码!
        </FONT>;
      </TD>;
    </TR>;  
    <!--输入时的选择按钮-->;
    <TR class=myBlack>;
      <TD height=30 width=80% colspan=2 align=center class=myRed>;
;
        <INPUT type=reset  name=Start value=" 重置 " class=myBlack>;                   
        <INPUT type=submit name=Ok value=" 发送 " class=myBlack>;                   
        <INPUT type=button name=Back value=" 返回 " class=myBlack
            onClick=JavaScript:history.back()>;
      </TD>;
    </TR>;
  </TABLE>;

</FORM>;
<!--显示版权等信息,使用的是CSS标记-->;
<DIV class=myGreen align=center>;
    <? echo $COPYRIGHT; ?>;
</DIV>;

;

</BODY>;
</HTML>;
作者: redfox    时间: 2003-05-28 23:41
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
用js跳把。
作者: baorongabc    时间: 2003-05-29 06:29
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
如果是不是header前面的有echo的话,

那就是header(“路径”);路径有问题!
作者: ayitula    时间: 2003-05-29 13:04
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
[quote]原帖由 "redfox"]用js跳把。[/quote 发表:
     

怎么用js跳阿?
作者: ayitula    时间: 2003-05-29 16:22
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
原帖由 "baorongabc" 发表:
如果是不是header前面的有echo的话,

那就是header(“路径”);路径有问题!


路径没问题阿,怎么办?我要急死拉!!!!
作者: redfox    时间: 2003-05-29 16:39
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
<script language='javascript'>;window.location='df.htm'</script>;
作者: ayitula    时间: 2003-05-29 17:11
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
[quote]原帖由 "redfox"]<script language='javascript'>;window.location='df.htm'</script>;[/quote 发表:


我按照你的方法改了不能用,在帮帮我改一下好吗?
    //如果通过检查就开始添加用户
  if (!isset($error)) {
    //  注册新用户
    AddUser();
    //  成功页面
    header("Location: login_ok.php?id=$id\n"
  } else
  //否则报错
  {
    //  失败页面
    header("Location: login_error.php?error=$error\n";
  }
  exit;
}
?>;
作者: judite    时间: 2003-05-29 20:47
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
原帖由 "ayitula" 发表:


我按照你的方法改了不能用,在帮帮我改一下好吗?
    //如果通过检查就开始添加用户
  if (!isset($error)) {
    //  注册新用户
    AddUser();
    //  成功页面
    header("Location: login_ok.php?i..........
   


  1. //如果通过检查就开始添加用户
  2. if (!isset($error)) {
  3. // 注册新用户
  4. AddUser();
  5. // 成功页面
  6. <script language="javascript">;
  7. <!--
  8. window.location="login_error.php?error=$error";
  9. -->;
  10. } else
  11. //否则报错
  12. {
  13. // 失败页面
  14. <script language="javascript">;
  15. <!--
  16. window.location="login_error.php?error=$error";
  17. -->;
  18. }
  19. exit;
  20. }
  21. ?>;

复制代码

作者: ayitula    时间: 2003-05-30 00:45
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
我按照楼上的修改运行,还是不行阿
希望版主 redfox  给我的程序修改一下,劳驾,小弟感激不尽!!
作者: somebodygp    时间: 2003-05-30 08:33
标题: 帮我看看这条出错信息,多谢!望高手指点!!!
检查你include的文件,看看在<? 或者 ?>;标记前后有没有空格之类的字符,如果有,去掉,则问题解决




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2