• λ我爱Aspx >> C#.Net >> PHP 留言簿(带Oracle数据库分页的显示功能)_PHP实例
  • PHP 留言簿(带Oracle数据库分页的显示功能)_PHP实例

  • :aspxer  Դ:internet  :2007-4-28 23:46:00  ؼ:数据库,数据
  • 程式大概分成五部份

    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_prase();),可以不让使用者看到错误讯息。在执行 query 指令后,就可以关闭与 Oracle 之间的连线了。

    Ҷƪл˵?
  • һƪVisualInterDev6.0七种实现分页显示的方法_ASP技巧
    һƪ用PHP实现ODBC数据分页显示一例_PHP技巧