天天看点

PHP的bbs实现之一

0.sql

CREATE TABLE user_log (

  log_id int(10) NOT NULL auto_increment,

  nicker        varchar(20),

  password varchar(10) NOT NULL,

  log_count  int(10),

  last_time varchar(20),

  last_ip       varchar(30),

  arc_count int(10),

  gender enum('M','W') DEFAULT 'M' NOT NULL,

  level         int(1),

  right         varchar(10),

  exp_count     int(10),

  PRIMARY KEY (log_id),

  UNIQUE log_id (log_id)

);

CREATE TABLE user_attr (  

  log_id        int(10) NOT NULL,

  realname varchar(20),

  email         varchar(40),

  address varchar(50),

  birthday  varchar(20),

  oicq          int(8),

  homepage      varchar(50),

  merriage enum('Y','N') DEFAULT 'N' NOT NULL,

  edu_level varchar(8),

  edu_school    varchar(30),

  province      varchar(20),

  city          varchar(20),

  postalcode    int(6),

  fond          varchar(8),  

  present       text,

CREATE TABLE user_online (

  log_id int(10) NOT NULL,

  log_time varchar(20),

  log_ip        varchar(30),

1.register.php

<?

  include "common.inc.php";

function Checknicker($nicker) {            

  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;

}

function AddUser() {

  global $id,$REMOTE_ADDR,$nicker;

  global $password, $log_count, $last_time,

          $last_ip, $arc_count, $gender, $level, $right,

          $exp_count;

  $last_time=date("Y:m:d");

  $log_count=0;

  $last_ip=$REMOTE_ADDR;

  $arc_count=0; 

  $level=9;                   

  $right='NONE';                

  $exp_count=100;                      

  $SQL="INSERT INTO $USER_LOG_TABLE (

          nicker, password,log_count,last_time,last_ip,arc_count,

          gender,level,right,exp_count) VALUES (

          '$nicker', '$password', '$log_count', '$last_time',

          '$last_ip', '$arc_count', '$gender', '$level', '$right','$exp_count')";

  mysql_query($SQL) or die(mysql_error());

  $SQL="SELECT log_id FROM $USER_LOG_TABLE WHERE nicker='$nicker'";

  $id=$row[log_id];

}                         

if ($Ok) {

  if (!$nicker) $error="用 户 名 不 能 为 空";

  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="POST" 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; ?>" >

        长度不少于4位的字母数字和下划线

      </TD>

    </TR> 

      <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当心,别错了!

      <TD height=30 width=10% align=center class=myRed>

          密    码:

      <TD height=30 width=70%>

        <input type=password name="password" maxlength=8 > 

        一定要把它记牢了!进入社区的钥匙!

    </TR>  

          重复密码:

        <input type=password name="password2" maxlength=8 >

        请再确认一下密码!

      <TD height=30 width=80% colspan=2 align=center class=myRed><BR>

        <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()>

    </TR>

  </TABLE>

</FORM>

<DIV class=myGreen align=center>

    <? echo $COPYRIGHT; ?>

</DIV>

<BR>

</BODY>

</HTML> 

2. common.inc

<?                                                                 

//数据库所在的主机地址,localhost是本机地址                        

  $MYSQL_HOSTNAME = "localhost";                                   

//数据库登录的用户名称                                             

  $MYSQL_USERNAME = "root";                                        

//数据库登录的密码                                                 

  $MYSQL_PASSWORD = "";                                            

//要登录的数据库的名称                                             

  $DATABASE = "goldenwind";                                        

//所有登录的用户名表                                               

  $USER_LOG_TABLE = "user_log";                                    

//用户的详细情况表                                                 

  $USER_ATTR_TABLE = "user_attr";                                  

  $USER_ONLINE_TABLE = "user_online";                              

//显示的版权信息                                                   

  $COPYRIGHT.="All Rights Reserved<BR>飞思教育 版权所有!";        

//数据库的连接操作                                                 

  mysql_connect($MYSQL_HOSTNAME, $MYSQL_USERNAME, $MYSQL_PASSWORD);

  mysql_select_db($DATABASE) or die(mysql_error());                

?>               

3. login_error.php

<?                                                                            

  include "header.inc.php";                                                   

?>                                                                            

<HTML>                                                                        

<!--HTML的头定义-->                                                           

  <HEAD>                                                                      

    <META http-equiv="Content-Type" content="text/html; charset=gb2312">      

  </HEAD>                                                                     

<BODY>                                                                        

<!--滚动显示提示信息-->                                                       

<marquee scrolldelay="165" class=myYellow bgcolor=green>                      

   欢迎光临金风社区&nbsp&nbsp&nbsp&nbsp&nbsp                                  

   这是我们的PHP乐园&nbsp&nbsp&nbsp&nbsp&nbsp                                 

   希望您能喜欢它~&nbsp&nbsp&nbsp&nbsp&nbsp                                  

</marquee>                                                                    

<!--显示一面迎风飘扬的旗帜作为提示信息-->                                     

<img src="images/flag.gif" align=left>                                        

<!--显示本页面的大标题-->                                                     

<h2 align=center color=red>                                                   

  错误信息!                                                                  

</h2>                                                                         

<!--显示一条红色的水平的分隔线-->                                             

<hr color=red>                                                                

<!--显示错误信息的提示语句-->                                                 

<p align=center>                                                              

     <FONT color=red size=5 align=center>                                     

       <b>                                                                    

          &nbsp&nbsp&nbsp&nbsp错误信息提示                                    

       </b>                                                                   

     </FONT>                                                                  

</p>                                                                          

<!--显示具体的错误-->                                                         

      <FONT color=green size=5 align=center>                                  

         <b>                                                                  

            &nbsp&nbsp<?echo"$error"?>                                        

         </b>                                                                 

      </FONT>                                                                 

<!--显示返回的按钮-->                                                         

<div align=center>                                                            

      <a href="JavaScript:history.back()"><image src="images/clickme.gif"></a>

</div>                                                                        

</BODY>                                                                       

</HTML>                   

4. login_ok.php     

<?                                                                          

  include "header.inc.php";                                                 

?>                                                                          

<!--HTML的头定义-->                                                         

<HTML>                                                                      

<HEAD>                                                                      

   <META http-equiv="Content-Type" content="text/html; charset=gb2312">     

</HEAD>                                                                     

<BODY>                                                                      

<!--滚动显示提示信息-->                                                     

<marquee scrolldelay="165" class=myYellow bgcolor=green>                    

  欢迎光临金风社区&nbsp&nbsp&nbsp&nbsp&nbsp                                 

  这是我们的PHP乐园&nbsp&nbsp&nbsp&nbsp&nbsp                                

  希望您能喜欢它~&nbsp&nbsp&nbsp&nbsp&nbsp                                 

</marquee>                                                                  

<!--显示一面迎风飘扬的旗帜作为欢迎信息-->                                   

<img src="images/flag.gif" align=left>                                      

<!--显示本页面的大标题-->                                                   

<h2 align=center color=red>                                                 

   金风社区欢迎您!                                                         

</h2>                                                                       

<!--显示一条红色的水平的分隔线-->                                           

<hr color=red>                                                              

<!--显示欢迎信息-->                                                         

<p align=center>                                                            

  <FONT color=red size=5 align=center>                                      

   <b>                                                                      

     &nbsp&nbsp&nbsp&nbsp您已经成功了!恭喜恭喜                             

   </b>                                                                     

  </FONT>                                                                   

</p>                                                                        

     <?echo"您的标识号是".$id ?>                                            

<!--提示用户继续进行选择-->                                                 

   <FONT color=red size=5 align=center>                                     

      <b>                                                                   

        &nbsp&nbsp请选择继续或者退回                                        

      </b>                                                                  

   </FONT>                                                                  

<!--对最下面的按钮进行说明-->                                               

    <FONT color=green size=4>                                               

        &nbsp&nbsp选择左边的按钮继续登记                                    

    </FONT>                                                                 

        &nbsp&nbsp选择右边的按钮退回到主界面                                

<!--显示两个动态的按钮-->                                                   

<div align=center>                                                          

      <a href="login.php"><image src="images/continue.gif" align=center></a>

      <a href="mainform.php"><image src="images/back.gif"align=center></a>  

</div>                                                                      

</BODY>                                                                     

</HTML>  

本文转自 牛海彬 51CTO博客,原文链接:http://blog.51cto.com/newhappy/76898,如需转载请自行联系原作者