扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在这里介绍的范例,是简单的列示所有留言的内容。供使用者可以一次看到多笔留言的资料。系统的后端存放留言是用 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 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; $serial=md5(uniqid(rand())); ora_parse($cursor, $query) or die; ora_close($cursor); Header("Location: ./index.php"); } else { |
上面的程序在执行时,先检查变数 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 资料库。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者