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

📄 5.4.php.htm

📁 php5的最新帮助文档
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"NLS_LANG=american_taiwan.zht16big5"</font><font color="#007700">);</font><p>

之后就使用 Oracle 函数库的功能: <a href="function.php-ora_logon.htm" alt="function.php?ora_logon">ora_logon()</a> 等等。详见 <a href="group.php-39.htm" alt="group.php?39">Oracle 数据库函数库</a>。利用这个函数库,可以很轻易的操作 Oracle 数据库。<p>

再来就是整理资料,以便置入 Oracle 数据库中<p>

<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">()));</font><br>
<font color="#0000BB">$ref</font><font color="#007700">=</font><font color="#DD0000">""</font><font color="#007700">;</font><br>
<font color="#0000BB">$id</font><font color="#007700">=</font><font color="#0000BB">$PHP_AUTH_USER</font><font color="#007700">;</font><br>
<font color="#0000BB">$ip</font><font color="#007700">=</font><font color="#0000BB">$REMOTE_ADDR</font><font color="#007700">;</font><br>
<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">);</font><br>
<font color="#0000BB">$flag</font><font color="#007700">=</font><font color="#DD0000">"1"</font><font color="#007700">;</font><br>
<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">;</font><p>

$serial 变量为独一无二的字符串,程序先随机数产生独特的字符串,再用 md5 编码,将字符串弄乱,形成类似哈稀处理后的无意义字符串。由于字符串长,又变得很乱,可防止用户,尤其是黑客或飞客利用序号来戳系统。<p>

$ref 变量目前是无效的。$id 变量为用户认证用,若在程序开始处有加入用户认证的程序,则 $PHP_AUTH_USER 会变成用户的帐号,传入 $id 变量中。<p>

至于用户写的字符串,为了防止数据库或处理时的复杂性甘脆将它用 BASE64 编码。可以让中文字的奇怪字符一字消失,当然这是锯箭法,不过对 Web 程序而言,执行快速、修改方便才是最重要的,实在没有必要再浪费精力去处理这些中文的冲码问题了。值得注意的是使用 BASE64 编码,会让字符串膨胀大约 1/3,若数据库的储存空间有限,可能就不适合用这个方法了,话又说回来,现在硬碟便宜,随便就是十几 GB 以上,应该不会考虑数据库空间有限的问题才对。<p>

最后,将变量整理成 $query 字符串,供数据库执行 SQL 指令使用就可以了。<p>

<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;</font><br>
<font color="#0000BB">ora_exec</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">);</font><br>
<font color="#0000BB">ora_close</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">);</font><br>
<font color="#0000BB">ora_logoff</font><font color="#007700">(</font><font color="#0000BB">$handle</font><font color="#007700">);</font><p>

要执行 Oracle 的 SQL 指令前,要先经过 parse 的步骤。若在前面加上 @ (如: @ora_prase();),可以不让用户看到错误信息。在执行 query 指令后,就可以关闭与 Oracle 之间的连接了。<p>

<font color="#0000BB">Header</font><font color="#007700">(</font><font color="#DD0000">"Location:&nbsp;./index.php"</font><font color="#007700">);<br>
exit;</font><p>

这二行让浏览器重定向到 index.php。让用户看到他的新留言,就完成了留言的步骤。<p>

之后来看看留言的内容显示程序。<p>

<div align=center><table border=1 bgcolor=ffe0e0><tr><td>
<font color="#000000">
&lt;html&gt;
<br>&lt;head&gt;
<br>&lt;meta&nbsp;content="text/html;&nbsp;charset=gb2312"&nbsp;http-equiv=Content-Type&gt;
<br>&lt;title&gt;留言板&lt;/title&gt;
<br>&lt;/head&gt;
<br>&lt;body&nbsp;bgcolor=ffffff&gt;
<br><font color="#0000BB">&lt;?php
<br></font><font color="#FF8000">//---------------------------
<br>//&nbsp;留言显示程序&nbsp;index.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></font><font color="#0000BB">$WebmasterIPArray&nbsp;</font><font color="#007700">=&nbsp;array(
<br>&nbsp;&nbsp;</font><font color="#DD0000">"10.0.1.30"</font><font color="#007700">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//&nbsp;管理人员甲的机器&nbsp;IP
<br>&nbsp;&nbsp;</font><font color="#DD0000">"10.0.2.28"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">//&nbsp;管理人员乙的机器&nbsp;IP
<br></font><font color="#007700">);
<br>
<br></font><font color="#0000BB">$WebmasterIP</font><font color="#007700">=</font><font color="#0000BB">false</font><font color="#007700">;
<br>for&nbsp;(</font><font color="#0000BB">$i</font><font color="#007700">=</font><font color="#0000BB">0</font><font color="#007700">;&nbsp;</font><font color="#0000BB">$i</font><font color="#007700">&lt;</font><font color="#0000BB">Count</font><font color="#007700">(</font><font color="#0000BB">$WebmasterIPArray</font><font color="#007700">);&nbsp;</font><font color="#0000BB">$i</font><font color="#007700">++)&nbsp;{
<br>&nbsp;&nbsp;if&nbsp;(</font><font color="#0000BB">$REMOTE_ADDR&nbsp;</font><font color="#007700">==&nbsp;</font><font color="#0000BB">$WebmasterIPArray</font><font color="#007700">[</font><font color="#0000BB">$i</font><font color="#007700">])&nbsp;</font><font color="#0000BB">$WebmasterIP</font><font color="#007700">=</font><font color="#0000BB">true</font><font color="#007700">;
<br>}
<br>
<br></font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"ORACLE_SID=WWW"</font><font color="#007700">);
<br></font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">"NLS_LANG=american_taiwan.zht16big5"</font><font color="#007700">);
<br></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></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></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></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></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></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></font><font color="#0000BB">ora_commitoff</font><font color="#007700">(</font><font color="#0000BB">$handle</font><font color="#007700">);
<br>
<br></font><font color="#0000BB">$query</font><font color="#007700">=</font><font color="#DD0000">"SELECT&nbsp;serial,&nbsp;ref,&nbsp;id,&nbsp;alias,&nbsp;ip,&nbsp;TO_CHAR(msgdate,&nbsp;'yyyy/mm/dd&nbsp;hh:mi:ss'),&nbsp;email,&nbsp;msg&nbsp;FROM&nbsp;guestbook&nbsp;where&nbsp;flag='1'&nbsp;order&nbsp;by&nbsp;msgdate&nbsp;desc"</font><font color="#007700">;
<br></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></font><font color="#0000BB">ora_exec</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">);
<br></font><font color="#0000BB">$i</font><font color="#007700">=</font><font color="#0000BB">0</font><font color="#007700">;
<br>while(</font><font color="#0000BB">ora_fetch</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">))&nbsp;{
<br>&nbsp;&nbsp;</font><font color="#0000BB">$guestbook</font><font color="#007700">[</font><font color="#0000BB">$i</font><font color="#007700">][</font><font color="#0000BB">0</font><font color="#007700">]&nbsp;=&nbsp;</font><font color="#0000BB">ora_getcolumn</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">,</font><font color="#0000BB">0</font><font color="#007700">);
<br>&nbsp;&nbsp;</font><font color="#0000BB">$guestbook</font><font color="#007700">[</font><font color="#0000BB">$i</font><font color="#007700">][</font><font color="#0000BB">1</font><font color="#007700">]&nbsp;=&nbsp;</font><font color="#0000BB">ora_getcolumn</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">,</font><font color="#0000BB">1</font><font color="#007700">);
<br>&nbsp;&nbsp;</font><font color="#0000BB">$guestbook</font><font color="#007700">[</font><font color="#0000BB">$i</font><font color="#007700">][</font><font color="#0000BB">2</font><font color="#007700">]&nbsp;=&nbsp;</font><font color="#0000BB">ora_getcolumn</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">,</font><font color="#0000BB">2</font><font color="#007700">);
<br>&nbsp;&nbsp;</font><font color="#0000BB">$guestbook</font><font color="#007700">[</font><font color="#0000BB">$i</font><font color="#007700">][</font><font color="#0000BB">3</font><font color="#007700">]&nbsp;=&nbsp;</font><font color="#0000BB">ora_getcolumn</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">,</font><font color="#0000BB">3</font><font color="#007700">);
<br>&nbsp;&nbsp;</font><font color="#0000BB">$guestbook</font><font color="#007700">[</font><font color="#0000BB">$i</font><font color="#007700">][</font><font color="#0000BB">4</font><font color="#007700">]&nbsp;=&nbsp;</font><font color="#0000BB">ora_getcolumn</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">,</font><font color="#0000BB">4</font><font color="#007700">);
<br>&nbsp;&nbsp;</font><font color="#0000BB">$guestbook</font><font color="#007700">[</font><font color="#0000BB">$i</font><font color="#007700">][</font><font color="#0000BB">5</font><font color="#007700">]&nbsp;=&nbsp;</font><font color="#0000BB">ora_getcolumn</font><font color="#007700">(</font><font color="#0000BB">$cursor</font><font color="#007700">,</font><font color="#0000BB">5</font><font color="#007700">);

⌨️ 快捷键说明

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