使用PHP制作简单的留言板.doc_第1页
使用PHP制作简单的留言板.doc_第2页
使用PHP制作简单的留言板.doc_第3页
使用PHP制作简单的留言板.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

何使用 PHP制作留言板上 大部份的网站,都会考虑到和用户之间的互动关系。这时,用留言板的功能,可让用户留下到此一游,或者是一些和网站的互动信息。 在设计上,可以很简单的只留下用户的短篇留言,也可以设计到依性质分门别类很复杂的 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 各字段说明及详细资料见下表 序号字段名称资料类型资料长度字段说明限制Key0流水号serialvarchar2255NNPK1参照流水号refvarchar2255暂保留。供回覆留言功能用2帐号idchar8用户帐号NN3匿名aliasvarchar232显示的名字NN4网址ipvarchar21024上网 IP5时间msgdatedateNN6电子邮件emailvarchar210247留言内容msgvarchar22000NN8显示标志flagchar10: 不显示1: 显示 (默认)在本节的留言板相关程序中,若加入了用户认证功能,则可以在 guestbook 资料表的帐号栏中留下用户的认证帐号,方便 Webmaster 日后找寻不当的发信者。在这儿先留下字段,让需要的读者们实习了。 要使用本节的程序,首先要先装好 Oracle 7.x 版,并确定 Web Server 端的 SQL*net 可以顺利连上 Oracle 数据库。之后还要在编译 PHP 时加入 -with-oracle=/home/oracle/product/7.3.2 的选项,当然改成其它的路径也没关系,只要该路径真的是 Oracle 的路径即可。有关 Oracle 装设及使用上的细节请参考相关书籍。 下面的程序是将用户的留言信息加到 guestbook 留言资料表中。若要配置用户认证功能,可在程序刚开始时检查,发留言者就可以确认身份,而读取留言就不必身份检查。这种配置可以防止不当发言,却又不会让留言功能只有少数人使用。 填写留言form method=POST action= 代号小名 电子邮件 内容 上面的程序在执行时,先检查变量 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 数据库。 再来就是整理资料,以便置入 Oracle 数据库中 $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); $serial 变量为独一无二的字符串,程序先随机数产生独特的字符串,再用 md5 编码,将字符串弄乱,形成类似哈稀处理后的无意义字符串。由于字符串长,又变得很乱,可防止用户,尤其是黑客或飞客利用序号来戳系统。 $ref 变量目前是无效的。$id 变量为用户认证用,若在程序开始处有加入用户认证的程序,则 $PHP_AUTH_USER 会变成用户的帐号,传入 $id 变量中。 至于用户写的字符串,为了防止数据库或处理时的复杂性甘脆将它用 BASE64 编码。可以让中文字的奇怪字符一字消失,当然这是锯箭法,不过对 Web 程序而言,执行快速、修改方便才是最重要的,实在没有必要再浪费精力去处理这些中文的冲码问题了。值得注意的是使用 BASE64 编码,会让字符串膨胀大约 1/3,若数据库的储存空间有限,可能就不适合用这个方法了,话又说回来,现在硬碟便宜,随便就是十几 GB 以上,应该不会考虑数据库空间有限的问题才对。 最后,将变量整理成 $query 字符串,供数据库执行 SQL 指令使用就可以了。 ora_parse($cursor, $query) or die;ora_exec($cursor);ora_close($cursor);ora_logoff($handle); 要执行 Oracle 的 SQL 指令前,要先经过 parse 的步骤。若在前面加上 (如: ora_pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论