当前位置:  编程技术>php
本页文章导读:
    ▪PHP+DBM的同学录程序(4)       8、注册文件reg.php3 <? require("common.php3"); require("mail.php3"); if($submit){   if($id=="")error("请填写您的注册用户名!");   elseif(!eregi("^[0-9a-zA_Z]+$",$id))error("你的用户名不能含有其他字符!");   els.........
    ▪PHP+DBM的同学录程序(1)       这个同学录原来给我们班级用的,因为服务器没有mysql支持,就选择了dbm 国内还没有什么dbm程序,国外也几乎没有 花了一个晚上,在几乎没有任何参考的情况下写了出来 现在公布出来 是一.........
    ▪基于mysql的bbs设计(四)       5。版面模块设计   所谓分类,更多的是为telnet服务端考虑的,在cq66模式下,用户可以按 照自己的意愿进行分类,反正最后都是直接以版为基本单位访问的。   对于版面文章的访问,存.........

[1]PHP+DBM的同学录程序(4)
    来源: 互联网  发布时间: 2013-11-30
8、注册文件reg.php3
<?
require("common.php3");
require("mail.php3");
if($submit){
  if($id=="")error("请填写您的注册用户名!");
  elseif(!eregi("^[0-9a-zA_Z]+$",$id))error("你的用户名不能含有其他字符!");
  elseif($password=="")error("请填写您的密码!");
  elseif($password<>$password1)error("您的密码填写不正确!");
  elseif($name=="")error("请填写您的名字!");
  elseif($mail=="")error("请填写您的邮件地址!");
  else{
    $dbm=dbmopen("class","w");
    if(dbmexists($dbm,$id))error("这个用户名已经给别人注册了!");
    else{
      $intro=nl2br($intro);
      $data="$name|!:!|$nickname|!:!|$mail|!:!|$home|!:!|$oicq|!:!|$icq|!:!|$add|!:!|$tel|!:!|$birth|!:!|$job|!:!|$intro|!:!|$sex";
      dbminsert($dbm,$id,$data);
      $pwd=dbmopen("password","w");
      dbminsert($pwd,$id,$password);
    }
    dbmclose($dbm);
    $sendmsg="欢迎注册《深圳中学2000届高中(12)班同学录》n";
    $sendmsg.="下面是您的注册信息:n";
    $sendmsg.="用户名:$idn用户密码;$passwordn";
    $sendmsg.="=====================================================";
    $sendmsg.="注册姓名:$namen注册昵称:$nicknamen注册邮箱:$mailn主页地址:$homen";
    $sendmsg.="您的OICQ:$oicqn您的 ICQ:$icqn联系地址:$addn联系电话:$teln";
    $sendmsg.="您的生日:$birthn您的职业:$jobn您的性别;$sexn您的个人介绍:n$intronn";
    $sendmsg.="======================================================";
    $sendmsg.="欢迎注册《深圳中学2000届高中(12)班同学录》";
    $sendmsg.="登陆地址:http://5212.net/class/";
    mail2("欢迎注册《深圳中学2000届高中(12)班同学录》",$sendmsg,$mail);
    header("Location:index.php3");
  }
}else{
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>同学录用户注册</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<link rel="stylesheet" href="/blog_article/style.css">
<META content="MSHTML 5.00.2614.3500" name=GENERATOR>
</HEAD><BODY bgcolor="#FFFFFF" topMargin=0>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%"><BR>
<DIV align=center></DIV><CENTER><TBODY></TBODY></center>
  </TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="60%" align="center">
<TBODY> <TR vAlign=top>
    <TD bgColor=#000000 width="100%" height="336">  
      <DIV align=center>
        <TABLE border=0 cellPadding=4 cellSpacing=1 height=390 width=586>
          <TBODY>  
          <TR>  
            <TD align=middle bgColor=#2f5e8c colSpan=2 height=14 vAlign=top><form method="POST" action="/blog_article/reg.html"> <FONT color=#ffffff>注册同学录</FONT></TD>
          </TR>
          <TR>  
            <TD align=middle bgColor=#ffffff height=25 width=150>注册用户名: </TD>
            <TD align=left bgColor=#ffffff height=25 width=400>  
              <INPUT password">
              *必须填写 </td>
          </tr>
          <tr>  
            <td align=middle bgcolor=#ffffff height=25 width=121>重复密码: </td>
            <td align=left bgcolor=#ffffff height=25 width=486>  
              <input type="password" name="password1" size="23" value="">
              *必须填写 </td>
          </tr>
          <tr>  
            <td align=middle bgcolor=#ffffff height=25 width=121>NickName: </td>
            <td align=left bgcolor=#ffffff height=25 width=486>  
              <input http://">
            </td>
          </tr>
          <tr>  
            <td align=middle bgcolor=#ffffff height=25 width=121>您的 ICQ: </td>
            <td align=left bgcolor=#ffffff height=25 width=486>  
              <input job">
                <option value="学 生">学 生</option>
                <option value="老 师">老 师</option>
                <option value="其 他">其 他</option>
              </select>
            </td>
          </tr>
          <tr>  
            <td align=middle bgcolor=#ffffff height=25 width=121>您的性别: </td>
            <td align=left bgcolor=#ffffff height=25 width=486>  
              <select name="sex">
                <option value="俊  男">俊  男</option>
                <option value="靓  女">靓  女</option>
                <option value="其  他">其  他</option>
              </select>
            </td>
          </tr>
          <tr>  
            <td align=middle bgcolor=#ffffff height=25 width=121>个人简介: </td>
            <td align=left bgcolor=#ffffff height=25 width=486>  
              <textarea name="intro" cols="40" rows="4"></textarea>
            </td>
          </tr>
          <TR bgColor=#ffedc8>  
            <TD bgColor=#ffffff colSpan=2>  
              <div align="center">  
                <input type="submit" name="submit" value="确认申请" >
                  
                <input type="reset" name="reset" value="注册重置" >
              </div></form>
            </TD>
          </TR>
          </TBODY>  
        </TABLE>
      </DIV></TR></TBODY></TABLE><BR><TR><TD></TD></TR>
</BODY>
</HTML>
<?
}
?>

9、建立数据库的文件run.php3
<?

$dbm=dbmopen("class","c");
dbmclose($dbm);
$dbm=dbmopen("password","c");
dbmclose($dbm);
?> 

    
[2]PHP+DBM的同学录程序(1)
    来源: 互联网  发布时间: 2013-11-30
这个同学录原来给我们班级用的,因为服务器没有mysql支持,就选择了dbm
国内还没有什么dbm程序,国外也几乎没有
花了一个晚上,在几乎没有任何参考的情况下写了出来
现在公布出来
是一个非常好的dbm使用范例

1、index.php3
<?
if($login){
?>
<HTML>
<HEAD>
<TITLE>深圳中学2000届高中(12)班同学录</TITLE>

<style type="text/css">
A {text-decoration: none; color: #336699; font-family: "宋体"; font-size: 9pt}
A:hover {text-decoration: underline; color: #FF0000; font-family: "宋体"; font-size: 9pt}  
body {font-family: "宋体", "serif"; font-size: 9pt}
td {font-family: "宋体", "serif"; font-size: 9pt}
input {font-size: 9pt}
p {font-size: 9pt}
br {font-size: 9pt}
tr {font-size: 9pt}
table {font-size: 9pt}
INPUT {    FONT-FAMILY: arial,宋体; FONT-SIZE: 9pt; PADDING-TOP: 3px }
INPUT.text {
    BACKGROUND-COLOR: #f0f0f0; BORDER-BOTTOM: #101010 1px solid; BORDER-LEFT: #101010 1px solid; BORDER-RIGHT: #101010 1px solid; BORDER-TOP: #101010 1px solid; COLOR: #000000
}
INPUT.file {
    BACKGROUND-COLOR: #f0f0f0; BORDER-BOTTOM: #101010 1px solid; BORDER-LEFT: #101010 1px solid; BORDER-RIGHT: #101010 1px solid; BORDER-TOP: #101010 1px solid; COLOR: #000000
}
SELECT {
    BACKGROUND-COLOR: #f0f0f0; BORDER-BOTTOM: #101010 1px solid; BORDER-LEFT: #101010 1px solid; BORDER-RIGHT: #101010 1px solid; BORDER-TOP: #101010 1px solid; COLOR: #000000
}
TEXTAREA {
    BACKGROUND-COLOR: #f0f0f0; BORDER-BOTTOM: #101010 1px solid; BORDER-LEFT: #101010 1px solid; BORDER-RIGHT: #101010 1px solid; BORDER-TOP: #101010 1px solid; COLOR: #000000
}
.stedit { font-size: 9pt; border-left: 1px solid #4a3163;  
border-right: 1px solid #4a3163; border-top: 1px solid #4a3163;  
border-bottom: 1px solid #000066 }
.stbtm { background-color: #cococo; color: #000000; font-size: 9pt; height: 20px;  
border-left: 1px solid #ffffff; border-right: 1px solid #665b8e;  
border-top: 1px solid #ffffff; border-bottom: 1px solid #665b8e }
.ddd {COLOR: #ffffff; FILTER: glow(color=black,strength=1); FONT-SIZE: 9pt; LINE-HEIGHT: 13pt; POSITION: relative; WIDTH: 100%}
</style>

</HEAD>
<body bgcolor="#FFFFFF">
<p 0" width="80%" cellpadding="2" cellspacing="1" bgcolor="#000000" align="center">
  <tr align=center>  
    <td width=19% bgcolor="#336699"><font color="#FFFFFF">姓名</FONT></td>
    <td width=17% bgcolor="#336699"><font color="#FFFFFF">NickName</font></td>
    <td width=18% bgcolor="#336699"><font color="#FFFFFF">OICQ</FONT></td>
    <td width=27% bgcolor="#336699"><font color="#FFFFFF">邮件地址</font></td>
    <td width=19% bgcolor="#336699"><font color="#FFFFFF">详细信息</font></td>
  </tr>
<?
$dbm=dbmopen("class","r");
$key = dbmfirstkey($dbm);
while ($key) {
    $data=dbmfetch($dbm, $key);
    $info=explode("|!:!|",$data);
    echo "<tr BGCOLOR=\"#FFF5E1\" align=\"center\"><td width=19%><a href=/blog_article/show/id/$key/gt;$info[0]/lt;/a/gt;/lt;/td/gt;/lt;td.html width=17%>$info[1]</td><td width=18%>$info[4]</td><td width=27%>$info[2]</td><td width=19%><a href=/index.html"show.php3?id=$key\">点击查看</a></td></tr>";
    $key = dbmnextkey($dbm, $key);
}
?>
  <tr BGCOLOR="#336699" align="center">  
    <td colspan="5"><font color=#FFFFFF><a href="/blog_article/modify.html"><font color=#FFFFFF>修改资料</font></a>||<a href="/blog_article/changepwd.html"><font color=#FFFFFF>修改密码</font></a>||<a href="/blog_article/logout.html"><font color=#FFFFFF>点击退出</font></a></font></td>
  </tr>
</table>
<p align="center"> Ex同学录v1.0版本程序制作:<a href="mailto:y10k@963.net">y10k</a><br>
  欢迎访问:<a href="http://www.best4cn.com" target="_blank">http://www.best4cn.com</a> </p>
</body></html>
<?
}else header("location:login.php3");
?>

2、更改密码的changepwd.php3
<?
require("common.php3");
if($submit){
$id=$login;
if($id==false)error("请登陆后再修改密码");
else{
  $data=dbmopen("password","w");
  $pass=dbmfetch($data,$login);
  if($password==$pass){
    if($password2==$password1){
      dbmreplace($data,$id,$password2);
      header("location:index.php3");
    }else error("您两次输入的密码不一样啊!");
  }else error("对不起,您输入的原来的密码错误,不能修改密码!");
}
}else{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK  
href="/blog_article/style.css" rel=stylesheet>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<FORM action=changepwd.php3 method=post>
<CENTER>
    <TABLE bgColor=#000000 border=0 cellSpacing=1>
      <TBODY>  
      <TR align=middle>  
        <TD align=middle bgColor=#336699 colSpan=4><FONT  
      color=#ffffff>用户修改密码</FONT></TD>
      </TR>
      <TR align=middle>  
        <TD align=middle bgColor=#f7f7f7 width="122">  
          <P align=center>老的密码</P>
        </TD>
        <TD align=middle bgColor=#f7f7f7 colspan="3" width="205">     
          <INPUT  
      122">  
          <p align=center>新的密码</p>
        </td>
        <td align=middle bgcolor=#f7f7f7 colspan="3" width="205">     
          <input  
      122">  
          <p align=center>重复密码</p>
        </td>
        <td align=middle bgcolor=#f7f7f7 colspan="3" width="205">     
          <input  
      reset">
            </P>
          </DIV>
        </TD>
      </TR>
      </TBODY>  
    </TABLE>
  </CENTER></FORM></BODY></HTML>
<?
}
?>

    
[3]基于mysql的bbs设计(四)
    来源: 互联网  发布时间: 2013-11-30
5。版面模块设计
  所谓分类,更多的是为telnet服务端考虑的,在cq66模式下,用户可以按
照自己的意愿进行分类,反正最后都是直接以版为基本单位访问的。
  对于版面文章的访问,存放的时候以整篇文章为参数,文章的分块由本层
完成,如果上层以块为单位传送,则在上层全部传完,组合后,再传参到本层
分解;在读取 的时候,本层则以块为单位访问,如果上层要以全文为单位访问
,则在上层做合并 工作,本层不管。
  至于要不要独立出索引,不影响上层的操作,主要和下层的数据库构造有
关, 主要考虑可行性,效率需求等。
  权限的检查放在哪里进行呢?还是放在上层吧,其实就telnet服务器端,
和cq66 的客户端,根本不会给一般用户显示特殊指令的菜单,当然,用户可
以直接发送cq66 的指令,服务器方还是要检查的。但应该不用在它下面的功
能模块层再检查一次吧
。   Class BoardManage {
  private:

  public:
    // 有关分类的操作
    int GetClassNameInfo( int maxclass, char **classid,
              char ** classname );
      返回分类的信息,中英文名。
    int GetBoardName( int maxboards, char *classid,
              char **boardname );
      返回某分类中的版面信息,一般分类,直接select ..
      from sboard
      where boardclass == .... 特殊分类则查相应的表。。。。

    // 修改需要版面管理员以上的特权
    int NewClass( char * newclassname, int type );
      新建分类,普通分类还是特殊分类,
    int DeleteClass( char *newclassname );
      删除分类,但不cascade,即本层不负责一致性,由上层负责将
      相应的版面的分类信息改为别的。分类改名也是先删再建,
    int AddClassBoard( const char *classname, char *newboardname );
      将已建好的版加入某分类中,专门针对特殊分类,对一般分类,其
      效果和modifyboardinfo一样,
    int DeleteClassBoard( const char *classname, char *boardname );
      从分类中删除某个版,也是针对特殊分类,对一般分类,效果也
      是和modifyboardinfo一样,一个版的分类属性可以为空,即不属
      于任何分类。

    // 有关版的信息的操作。
    int NewBoard( const char *boardid,char *boardname);
      新建一个版,建立对应的表。其他参数取默认值。
    int DeleteBoard( const char *boardid );
      删除一个版,删除对应的表。
    int GetBoardInfo( const char *boardid, char *boardname,
            int& numposts, char *masters, char *class,
            long &level );
      取的版面的信息。
    int ModifyBoardId( const char *oldid, char *newid );
      改变版的英文id,对应table的名称也要改变,
    int ModifyBoardInfo( const char *boardid, char *boardname,
            int numposts, char *masters, char *class,
            long level );
      修改版面信息,需要特权。

    // 有关版面文章的操作。
    int AddText( char *boardid, char *title, char *writer,
            char *text );
      往版面中增加文章,内部将长文章分割成2k的块。
    int DeleteText( char *boardid, int num );
      删除文章,只是做一个标记,并不立刻修改对应的table。
    int FlushTable( char *boardid );
      刷新版面,删除被删文章的对应的记录。
    int MarkText( char *boardid, int num, char mark );
      给文章做标记。
    int ModifyTitle( char *boardid, int num, char *newtitle );
      修改文章的标题。
    int ModifyText( char *boardid, int num, char *newtext );
      修改文章内容,不是自己的文章需要特权。
    int GetTextInfo( const char *boardid, int num, char *title,
            char *writer, char& mark );
      取得文章的标题信息。
    int GetText( const char *boardid, int num, int block,
            char *text );
      读取文章的内容,以块为单位。

    // 文章和作者的查询
    // 一次将查询的结果全部返回?
    int QueryWriter( const char *boardid, char *writer,
            char **result );
      查询版面上,某作者的文章。
    int QueryTitle( const char *boardid, char *title,
            char **result );
      查询版面上,标题中包含指定内容的文章。
  }
    参数的传递是一件比较讨厌的事,从抽象的角度,希望返回的数据与
  底层无关,所以应该加以处理,但从效率的角度,又不希望数据进行多次
  复制,另一方面,空间的申请释放,究竟是在上层中完成还是在本层中完成
  呢?一不小心,很容易有内存错误。

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3