⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5.4.php.htm

📁 php5的最新帮助文档
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<html>
<head>
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
<title>留言板</title>
<style type="text/css">
  a {text-decoration: none;color:#6666ff;}
  a:hover {color:#ff0000;}
</style>
</head>
<body bgcolor=ffffff leftmargin=0 topmargin=0 marginheight=0 marginwidth=0>
<p>
<div align=center><table border=0 width=70%><tr>
<td valign=middle width=20><hr size=1 width=100%></td>
<td valign=middle nowrap><font color=e06060 size=+2><b>留言板</b></font></td>
<td valign=middle width=100%><hr size=1 width=100%></td>
</tr></table></div><p>
<div align=center><table border=0 width=70%><tr><td>

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

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

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

<div align=center><table border=1 bgcolor=ffe0e0><tr><td>
<pre>
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)
);
</pre>
</td></tr></table></div><p>

上面的 SQL 各字段说明及详细资料见下表<p>

<table border=1>
<tr><th>序号</th><th>字段</th><th>名称</th><th>资料类型</th><th>资料长度</th><th>字段说明</th><th>限制</th><th>Key</th></tr>
<tr><td align=right>0</td><td nowrap>流水号</td><td nowrap>serial</td><td nowrap>varchar2</td><td nowrap>255</td><td nowrap></td><td nowrap>NN</td><td nowrap>PK</td></tr>
<tr><td align=right>1</td><td nowrap>参照流水号</td><td nowrap>ref</td><td nowrap>varchar2</td><td nowrap>255</td><td nowrap>暂保留。供回<br>覆留言功能用</td><td nowrap></td><td nowrap></td></tr>
<tr><td align=right>2</td><td nowrap>帐号</td><td nowrap>id</td><td nowrap>char</td><td nowrap>8</td><td nowrap>用户帐号</td><td nowrap>NN</td><td nowrap></td></tr>
<tr><td align=right>3</td><td nowrap>匿名</td><td nowrap>alias</td><td nowrap>varchar2</td><td nowrap>32</td><td nowrap>显示的名字</td><td nowrap>NN</td><td nowrap></td></tr>
<tr><td align=right>4</td><td nowrap>网址</td><td nowrap>ip</td><td nowrap>varchar2</td><td nowrap>1024</td><td nowrap>上网 IP</td><td nowrap></td><td nowrap></td></tr>
<tr><td align=right>5</td><td nowrap>时间</td><td nowrap>msgdate</td><td nowrap>date</td><td nowrap></td><td nowrap></td><td nowrap>NN</td><td nowrap></td></tr>
<tr><td align=right>6</td><td nowrap>电子邮件</td><td nowrap>email</td><td nowrap>varchar2</td><td nowrap>1024</td><td nowrap></td><td nowrap></td><td nowrap></td></tr>
<tr><td align=right>7</td><td nowrap>留言内容</td><td nowrap>msg</td><td nowrap>varchar2</td><td nowrap>2000</td><td nowrap></td><td nowrap>NN</td><td nowrap></td></tr>
<tr><td align=right>8</td><td nowrap>显示标志</td><td nowrap>flag</td><td nowrap>char</td><td nowrap>1</td><td nowrap>0: 不显示<br>1: 显示 (默认)</td><td nowrap></td><td nowrap></td></tr>
</table><p>

在本节的留言板相关程序中,若加入了<a href="5.2.php.htm" alt="5.2.php">用户认证</a>功能,则可以在 guestbook 资料表的帐号栏中留下用户的认证帐号,方便 Webmaster 日后找寻不当的发信者。在这儿先留下字段,让需要的读者们实习了。<p>

要使用本节的程序,首先要先装好 Oracle 7.x 版,并确定 Web Server 端的 SQL*net 可以顺利连上 Oracle 数据库。之后还要在编译 PHP 时加入 --with-oracle=/home/oracle/product/7.3.2 的选项,当然改成其它的路径也没关系,只要该路径真的是 Oracle 的路径即可。有关 Oracle 装设及使用上的细节请参考相关书籍。<p>

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

<div align=center><table border=1 bgcolor=ffe0e0><tr><td>
<font color="#000000">
<font color="#0000BB">&lt;?php<br></font><font color="#FF8000">//---------------------------<br>//&nbsp;新增留言程序&nbsp;addmsg.php<br>//&nbsp;Author:&nbsp;Wilson&nbsp;Peng<br>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copyright&nbsp;(C)&nbsp;2000<br>//---------------------------<br>//<br>//&nbsp;可自行在这儿加入身份检查功能<br>//<br></font><font color="#007700">if&nbsp;((</font><font color="#0000BB">$alias</font><font color="#007700">!=</font><font color="#DD0000">""</font><font color="#007700">)&nbsp;and&nbsp;(</font><font color="#0000BB">$msg</font><font color="#007700">!=</font><font color="#DD0000">""</font><font color="#007700">))&nbsp;{<br>&nbsp;&nbsp;</font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"ORACLE_SID=WWW"</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"NLS_LANG=american_taiwan.zht16big5"</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"ORACLE_HOME=/home/oracle/product/7.3.2"</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib"</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data"</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data"</font><font color="#007700">);<br><br>&nbsp;&nbsp;</font><font color="#0000BB">$handle</font><font color="#007700">=</font><font color="#0000BB">ora_logon</font><font color="#007700">(</font><font color="#DD0000">"user38@WWW"</font><font color="#007700">,</font><font color="#DD0000">"iam3849"</font><font color="#007700">)&nbsp;or&nbsp;die;<br>&nbsp;&nbsp;</font><font color="#0000BB">$cursor</font><font color="#007700">=</font><font color="#0000BB">ora_open</font><font color="#007700">(</font><font color="#0000BB">$handle</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">ora_commitoff</font><font color="#007700">(</font><font color="#0000BB">$handle</font><font color="#007700">);<br><br>&nbsp;&nbsp;</font><font color="#0000BB">$serial</font><font color="#007700">=</font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#0000BB">uniqid</font><font color="#007700">(</font><font color="#0000BB">rand</font><font color="#007700">()));<br>&nbsp;&nbsp;</font><font color="#0000BB">$ref</font><font color="#007700">=</font><font color="#DD0000">""</font><font color="#007700">;<br>&nbsp;&nbsp;</font><font color="#0000BB">$id</font><font color="#007700">=</font><font color="#0000BB">$PHP_AUTH_USER</font><font color="#007700">;<br>&nbsp;&nbsp;</font><font color="#0000BB">$ip</font><font color="#007700">=</font><font color="#0000BB">$REMOTE_ADDR</font><font color="#007700">;<br>&nbsp;&nbsp;</font><font color="#0000BB">$msg</font><font color="#007700">=</font><font color="#0000BB">base64_encode</font><font color="#007700">(</font><font color="#0000BB">$msg</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">$flag</font><font color="#007700">=</font><font color="#DD0000">"1"</font><font color="#007700">;<br>&nbsp;&nbsp;</font><font color="#0000BB">$query</font><font color="#007700">=</font><font color="#DD0000">"INSERT&nbsp;into&nbsp;guestbook(serial,&nbsp;ref,&nbsp;id,&nbsp;alias,&nbsp;ip,&nbsp;msgdate,&nbsp;email,&nbsp;msg,&nbsp;flag)&nbsp;values('$serial',&nbsp;'$ref',&nbsp;'$id',&nbsp;'$alias',&nbsp;'$ip',&nbsp;sysdate,&nbsp;'$email',&nbsp;'$msg',&nbsp;'$flag')"</font><font color="#007700">;<br><br>&nbsp;&nbsp;</font><font color="#0000BB">ora_parse</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">,&nbsp;</font><font color="#0000BB">$query</font><font color="#007700">)&nbsp;or&nbsp;die;<br>&nbsp;&nbsp;</font><font color="#0000BB">ora_exec</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">);<br><br>&nbsp;&nbsp;</font><font color="#0000BB">ora_close</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">);<br>&nbsp;&nbsp;</font><font color="#0000BB">ora_logoff</font><font color="#007700">(</font><font color="#0000BB">$handle</font><font color="#007700">);<br><br>&nbsp;&nbsp;</font><font color="#0000BB">Header</font><font color="#007700">(</font><font color="#DD0000">"Location:&nbsp;./index.php"</font><font color="#007700">);<br>&nbsp;&nbsp;exit;<br><br>}&nbsp;else&nbsp;{<br></font><font color="#0000BB">?&gt;<br></font>&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;填写留言&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&nbsp;bgcolor=ffffff&gt;<br>&lt;form&nbsp;method=POST&nbsp;action="<font color="#0000BB">&lt;?&nbsp;</font><font color="#007700">echo&nbsp;</font><font color="#0000BB">$PHP_SELF</font><font color="#007700">;&nbsp;</font><font color="#0000BB">?&gt;</font>"&gt;<br>&lt;table&nbsp;border=0&nbsp;cellpadding=2&nbsp;width=395&gt;<br>&nbsp;&nbsp;&lt;tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;nowrap&gt;&lt;font&nbsp;color=004080&gt;代号小名&lt;/font&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width=20%&gt;&lt;input&nbsp;type=text&nbsp;name=alias&nbsp;size=8&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;nowrap&gt;&lt;font&nbsp;color=004080&gt;电子邮件&lt;/font&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width=50%&gt;&lt;input&nbsp;type=text&nbsp;name=email&nbsp;size=18&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&lt;/tr&gt;<br>&nbsp;&nbsp;&lt;tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;nowrapvalign=top&gt;&lt;font&nbsp;color=004080&gt;内容&lt;/font&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width=80%&nbsp;colspan=3&gt;&lt;textarea&nbsp;rows=5&nbsp;name=msg&nbsp;cols=33&gt;&lt;/textarea&gt;&lt;/td&gt;<br>&nbsp;&nbsp;&lt;/tr&gt;<br>&nbsp;&nbsp;&lt;tr&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;width=100%&nbsp;colspan=4&nbsp;align=center&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=submit&nbsp;value="送出留言"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=reset&nbsp;value="擦掉留言"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br>&nbsp;&nbsp;&lt;/tr&gt;<br>&lt;/table&gt;<br>&lt;/form&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;<br><font color="#0000BB">&lt;?php<br></font><font color="#007700">}<br></font><font color="#0000BB">?&gt;<br></font>
</font>
</td></tr></table></div><p>

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

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

程序大概分成五部份
<ol type=1>
<li>配置 Oracle 需要的环境变量
<li>连上 Oracle 数据库
<li>整理资料,送入 Oracle 中
<li>结束与 Oracle 的连接
<li>结束程序,显示最新的留言资料
</ol><p>

在配置 Oracle 环境的部份,用 PHP 的函数 <a href="function.php-putenv.htm" alt="function.php?putenv">putenv()</a>,可配置操作系统层的环境变量。要使用中文要记得加入下面这行<p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -