以 Intranet 的模式组建和运行企业内部网络是近年来比较流行的组网方法。
在安装和配置好您的 web server, 精心制作出您的内部主页之后,您一定想让您的主页像 Internet
上的许多网页一样具有“电子留言板”的功能,以方便浏览者的信息发布和反馈。笔者利用从 Web 页面访问
Intranet 数据库的 IDC 编程法,成功地建立了本单位内部的“电子留言板”,效果很好,朋友们不妨在您的
Intranet上试试。若有问题,请与我联系:zhangking@263.net。
一、硬件和软件环境:
笔者单位的 Intranet 在原星形拓扑结构的局域网的基础上组建。笔者以一台联想
pentium/166,16M 内存的机器作服务器,安装正版的中文 Win97,以 pwin97 内置的 Personal Web Server 提供
Web Server 服务(关于 Web Server 服务的安装和组建 Intranet 的方法请参考专业报纸上的有关文章)。 ODBC
驱动程序在安装中文 Visual Foxpor5.0 后也被附带安装,正确设置后,支持对 Visual Foxpro 数据库的驱动。
各工作站全部运行中文 Windows95,安装 IE3.0 浏览器。
二、从 Web 网页访问 Intranet 数据库的 IDC 编程原理:
客户端用户从浏览器网页通过调用 .idc 文件,向 Web Server 发出请求;Web Server 服务器接收到客户端送过来的 URL,从中得到 .idc 文件名,然后装载运行 httpodbc.dll 库文件,.idc 文件被映射到 httpodbc.dll;根据 .idc 文件中提供的 ODBC 数据源,执行 .idc 文件中的 SQL 查询语句;SQL 的执行结果,与 .idc 文件中指定的 HTML 扩展文件 .htx 合并,形成 HTML 文档;合并后的 HTML文档被送回 Web Server,再返回给用户客户端,在浏览器上呈现出来。
三、ODBC 的设置:
ODBC 的意思是“开放数据库互连”,它提供了管理和访问目前几乎所有类型数据库的软件接口,通过 ODBC,应用程序可对所有数据库进行存取访问。安装 ODBC 驱动程序后,打开控制面板,会看到一个“32位ODBC”图标,双击该图标,选“系统DSN”页,添加 Microsoft Visual Foxpro Driver 驱动程序,在“ODBC Visual Foxpro Setup”设置窗口中的“Data Source Name”栏中填入数据源名,选中 database type 栏的“Free table directory”,再在 Path 文本框中填入 .DBF 数据库文件所在的路径。本例中数据源名为 pvfp50,路径为 C:\database.dbf。
四、建立“电子留言板”:
pwin97 的 Personal Web Server 安装后,会自动创建一个 C:\webshare 目录,并包含三个子目录:Wwwroot,Scripts 和 Ftproot。您的个人主页就存放在C:\Webshare\Wwwroot 路径下,默认的主页文件名为 default.htm;而 httpodbc.dll 和 *.idc 文件存放在 C:\webshare\Scripts 路径下。(C:\Webshare\Ftproot为提供Ftp服务的根目录,与我们的讨论无关。)
为说明问题,笔者将自己 Web Server 上的有关文件经过合理简化,附于文后,存放留言记录的数据库 C:\dadabase.dbf\bbs.dbf 的库结构也附在其后 。其中,Default.htm 为电子留言板的主页文件。Tobbs.idc 为向 bbs.dbf 库中添加留言记录的 IDC 文件,其中注明了数据源(Datasource)为 pvfp50,与我们在第二步中所设置的数据源名相对应;Tobbs.idc 文件还注明了与其相对应的模板文件 Tobbs.htx,实质上是一个 HTML 扩展文件,用于承载 Tobbs.idc 执行后的返回信息。而本 Tobbs.htx 文件实际上只提供了一些提示信息。
Frombbs.idc 文件用于打开留言板时从 bbs.dbf 库中取回所有留言记录,其对应的模板文件 Frombbs.htx 将各条留言记录以表格的形式在网页中显示出来。注意:所有数据库字段变量的引用,都必须用 <% %> 扩起来,如 <%email_addr%>(电子邮箱地址),且只能在标签 <%begindetail%><%enddetail%> 内引用。
本“电子留言板”的大致工作流程是这样的:在主页上的各文本框中输入留言和留言者姓名等有关信息,点击“粘贴到《留言板》上”按钮,主页调用 Tobbs.idc 文件(参见 Default.htm文件第9行),将记录存放于 bbs,dbf 库文件中,然后告知用户“您的留言已被粘贴在《留言板》上!”在 Default.htm 文件的头部(第 5 行)和 Tobbs.htx 文件的尾部(第 8 行),都有一个“打开留言板”按钮,点按之,即执行Frombbs.idc 文件,将各条留言以表格的形式呈现给用户。
这样,位于 Intranet 网上不同地理位置的用户都可通过浏览器在同一个“电子留言板上”进行信息交流。
// Default.htm:
1.
2. 电子留言板
3.
4.
5.
9.
29.
30.
31.
32. 欢迎您到此一游!
33. 严禁反动、低级、不健康的留言!
34.
35.
36.
//表结构: C:\DATABASE.DBF\BBS.DBF
数据记录数: 16
最近更新的时间: 01/31/99
字段 字段名 类型 宽度 小数位
1 WORDS 字符型 254 (留言)
2 DATE 日期型 8 (日期)
3 TIME 字符型 11 (时间)
4 MAN_NAME 字符型 24 (留言者姓名)
5 PH_NUMBER 字符型 26 (电话/传呼号码)
6 EMAIL_ADDR 字符型 70 (电子邮箱地址)
** 总计 ** 394
// Tobbs.idc:
Datasource: pvfp50
Template: tobbs.HTX
RequiredParameters:newwords,man_name,ph_number,email_addr
SQLStatement:
+insert into bbs.dbf values('%newwords%',date(),time(0),
+'%man_name%','%ph_number%',
+''+'%email_addr%'+'')
Maxrecords: 5000
// Tobbs.htx:
1.
2.
3.
4.
5. 您的留言已被粘贴在《留言板》上!
6.
7.
8.
11.
12. 还想留言!
13.
14.
// Frombbs.idc:
Datasource: pvfp50
Template: frombbs.HTX
SQLStatement:
+select words,man_name,ph_number,email_addr from bbs.dbf
Maxrecords: 5000
// Frombbs.htx:
1.
2.
3.
4.
5.
6. 蓝田地税留言板
7.
8.
9.
10.<%begindetail%>
11.
12. 留言 | 留言者简况 |
13. <%words%> | 姓名:<%man_name%> |
14. 电话/传呼号码:<%ph_number%> |
15. E-mail:<%email_addr%> |
16.
17.
18.<%enddetail%>
19.还想留言
20.
21. 张 庆 1999.02.01
|
|