您的位置:软件 > 开发者网络 > 开发工具 > Web开发 > PHP > 正文
带Oracle数据库分页显示功能的留言簿
[文章信息]
作者:howtodo
时间:2003-07-19
出处:论坛
责任编辑:方舟
[文章导读]
大部份的网站,都会考虑到和使用者之间的互动关系。这时,用留言版的功能,可让使用者留下到此一游,或者是一些和网站的互动讯息
advertisement
热点推荐
· Flash滚动文本框的两种做法
· VB6中用Oracle数据控件访问Oracle
· Windows 98操作系统优化实战
· 11.1软件精选 Winxp重装技巧
· 常见端口详解及部分攻击策略
[正文]

1 2 3  下一页



  大部份的网站,都会考虑到和使用者之间的互动关系。这时,用留言版的功能,可让使用者留下到此一游,或者是一些和网站的互动讯息。

  在设计上,可以很简单的只留下使用者的短篇留言,也可以设计到依性质分门别类很复杂的 Web BBS 系统。当然,要如何打造一个属于自己网站的留言版,就端赖网站的性质以及 Web 网站开发人员的巧思了。

  在这里介绍的范例,是简单的列示所有留言的内容。供使用者可以一次看到多笔留言的资料。系统的后端存放留言是用 Oracle 7.x 版的资料库系统。范例中的资料库(database) 名称为 WWW,连线的使用者帐号为 user38、密码为 iam3849。要直接使用本例,必须先执行下面的 SQL 指令,建立 guestbook 的资料表格。

CREATE TABLE guestbook (
 serial varchar2(255) not null,
 ref varchar2(255) null,
 id char(8) not null,
 alias varchar2(32) not null,
 ip varchar2(1024) null,
 msgdate date not null,
 email varchar2(1024) null,
 msg varchar2(2000) not null,
 flag char(1) default 1,
 primary key(serial)
);

  上面的 SQL 各栏位说明及详细资料见下表

  序号 栏位   名称  数据类型 长度 栏位 说明  限制 Key
   0 流水号  serial varchar2  255 NN   PK
   1 参照流水号 ref  varchar2  255 暂保留 

  覆留言功能用

  2 帐号 id char 8 使用者帐号 NN

  3 匿名 alias varchar2 32 显示的名字 NN

  4 网址 ip varchar2 1024 上网 IP

  5 时间 msgdate date NN

  6 电子邮件 email varchar2 1024

  7 留言内容 msg varchar2 2000 NN

  8 显示旗标 flag char 1 0: 不显示

   1: 显示 (内定)

  在本节的留言版相关程序中,若加入了使用者认证功能,则可以在 guestbook资料表的帐号栏中留下使用者的认证帐号,方便 Webmaster 日后找寻不当的发信者。在这儿先留下栏位,让需要的读者们实习了。

  要使用本节的程序,首先要先装好 Oracle 7.x 版,并确定 Web Server 端的SQL*net 可以顺利连上 Oracle 资料库。之后还要在编译 PHP 时加

  --with-oracle=/home/oracle/product/7.3.2 的选项,当然改成其它的路径也没关系,只要该路径真的是 Oracle 的路径即可。有关 Oracle 装设及使用上的细节请参考相关书籍。

  下面的程序是将使用者的留言信息加到 guestbook 留言数据表中。若要设定使用者认证功能,可在程序刚开始时检查,发留言者就可以确认身份,而读取留言就不必身份检查。这种设定可以防止不当发言,却又不会让留言功能只有少数人使用。

<?php
file://---------------------------
// 新增留言程序 addmsg.php
// Author: Wilson Peng
// Copyright (C) 2000
file://---------------------------
//
// 可自行在这儿加入身份检查功能
//
if (($alias!="") and ($msg!="")) {
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");

putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$serial=md5(uniqid(rand()));
$ref="";
$id=$PHP_AUTH_USER;
$ip=$REMOTE_ADDR;
$msg=base64_encode($msg);
$flag="1";
$query="INSERT into guestbook(serial, ref, id, alias, ip,
msgdate, email, msg, flag) values('$serial', '$ref', '$id', '$alias', '$ip',
sysdate, '$email', '$msg', '$flag')";

ora_parse($cursor, $query) or die;
ora_exec($cursor);

ora_close($cursor);
ora_logoff($handle);

Header("Location: ./index.php");
exit;

} else {
?>
<html>
<head>
<title>填写留言</title>
</head>
<body bgcolor=ffffff>
<form method=POST action="<? echo $PHP_SELF; ?>">
<table border=0 cellpadding=2 width=395>
<tr>
<td nowrap><font color=004080>代号小名</font></td>
<td width=20%><input type=text name=alias size=8></td>
<td nowrap><font color=004080>电子邮件</font></td>
<td width=50%><input type=text name=email size=18></td>
</tr>
<tr>
<td nowrapvalign=top><font color=004080>内容</font></td>
<td width=80% colspan=3><textarea rows=5 name=msg
cols=33></textarea></td>
</tr>
<tr>
<td width=100% colspan=4 align=center>
<input type=submit value="送出留言">
<input type=reset value="擦掉留言">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
}
?>

  上面的程序在执行时,先检查变数 alias 和 msg 是否有资料,若无资料则送出填写留言的表格到使用者端,供使用者填写留言。

  若使用者填好留言,按下 "送出留言" 的按钮后,则执行程序的前半部份。

  程序大概分成五部份

  1.. 设定 Oracle 需要的环境变数
  2.. 连上 Oracle 资料库
  3.. 整理资料,送入 Oracle 中
  4.. 结束与 Oracle 的连线
  5.. 结束程序,显示最新的留言资料

  在设定 Oracle 环境的部份,用 PHP 的函式 putenv(),可设定作业系统层的环境变数。要使用中文要记得加入下面这行

putenv("NLS_LANG=american_taiwan.zht16big5");

  之后就使用 Oracle 函式库的功能: ora_logon() 等等。详见 Oracle 资料库函式库。利用这个函式库,可以很轻易的操作 Oracle 资料库。


1 2 3  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • PHP设计聊天室步步通
  • Windows下PHP4.0与Oracle 8的连接设置
  • 用PHP构建一个留言本
  • IIS下安装PHP4及MySQL
  • 硬盘造成干扰?音箱竟有杂音
  • 开机就睡眠 这是怎么回事?
  • 新超频王90纳米Althon64登场
  • Pentium 4 Mobile超频到8G?
  • 4900元! 打造安静的电脑
  • 惠威低端恐龙?杜希D1080揭密
  • 外挂 是封杀?还是猎杀?
  • 为中国而造的爱普生打印机现身
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索