国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

帶Oracle數據庫分頁顯示功能的留言簿(2)

2024-08-29 13:32:37
字體:
來源:轉載
供稿:網友


再來就是整理資料,以便置入 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 之間的連線了。

header("location: ./index.php");
exit;

  這二行讓瀏覽器重導到 index.php。讓使用者看到他的新留言,就完成了留言的動作。

  之后來看看留言的內容顯示程序。

<html>
<head>
<meta content="text/html; charset=gb2312"
http-equiv=content-type>
<title>留言版</title>
</head>
<body bgcolor=ffffff>
<?php
file://---------------------------
// 留言顯示程序 index.php
// author: wilson peng
// copyright (c) 2000
file://---------------------------

$webmasteriparray =
ay(
"10.0.1.30", // 管理人員甲的機器 ip
"10.0.2.28" // 管理人員乙的機器 ip
);

$webmasterip=false;
for ($i=0; $i<count($webmasteriparray); $i++) {
if ($remote_addr == $webmasteriparray[$i]) $webmasterip=true;
}

putenv("oracle_sid=www");
putenv("nls_lang=american_taiwan.zht16big5");
putenv("oracle_home=/home/oracle/product/7.3.2");
putenv("ld_library_path=/home/oracle/product/7.3.2/lib");
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("[email protected]","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="select serial, ref, id, alias, ip, to_char(msgdate, 'yyyy/mm/dd hh:mi:ss'), email, msg from guestbook where flag='1' order by msgdate desc";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
$i=0;
while(ora_fetch($cursor)) {
$guestbook[$i][0] = ora_getcolumn($cursor,0);
$guestbook[$i][1] = ora_getcolumn($cursor,1);
$guestbook[$i][2] = ora_getcolumn($cursor,2);
$guestbook[$i][3] = ora_getcolumn($cursor,3);
$gu
estbook[$i][4] = ora_getcolumn($cursor,4);
$guestbook[$i][5] = ora_getcolumn($cursor,5);
$guestbook[$i][6] = ora_getcolumn($cursor,6);
$guestbook[$i][7] = ora_getcolumn($cursor,7);
$i++;
}
ora_close($cursor);
ora_logoff($handle);

echo "<a href=addmsg.php>新增留言....</a><p>/n";

if ($query_string!="")

$page = $query_string;
} else

$page = 0;
}

$i=count($guestbook);
$msgnum=20; // 每頁二十筆
$start = $page * $msgnum;
$end = $start + $msgnum;
if ($end > $i) $end=$i;
$totalpage=$i/$msgnum;

$pagestr="";
if ($page>0) $pagestr=$pagestr."<a
href=index.php?".($page-1)."><上頁</a> - ";
$pagestr=$pagestr."[第 ";
for ($i=0; $i<$totalpage; $i++)

if ($i!=$page)

$pagestr = $pagestr."<a href=index.php?$i>".($i+1)."</a> ";
} else

$pagestr = $pagestr.($i+1)." ";
}
}
$pagestr=$pagestr." 頁] ";
if ($page<($totalpage-1)) $pagestr=$pagestr."- <a
href=index.php?".($page+1).">下頁></a> ";

$pagestr="<div align=center>$pagestr</div>";
echo "<p>".$pagestr."<hr><p>/n";

for ($i=$start; $i<$end; $i++)

echo "<p><hr><p>/n";
echo "<p>/n<font color=e06060>".$guestbook[$i][5]."</font>
  ";
if ($guestbook[$i][6]!="") echo "<a
href=mailto:".$guestbook[$i][6].">";
echo "<strong>".$guestbook[$i][3]."</strong>";
if ($guestbook[$i][6]!="") echo "</a>";
echo "<br>/n";
if ($webmasterip) echo "<a
href=erase.php?".$guestbook[$i][0].">刪除本篇!!</a> (".$guestbook[$i][2].")
  ";
echo "<font size=-1 color=c0c0c0>from:
".$guestbook[$i][4]."</font><p>/n";
$msg=base64_decode($guestbook[$i][7]);
$msg=nl2br($msg);
echo $msg;
echo "<p>/n";
}

echo "<p><hr><p>/n";
echo $pagestr;

?>
</body>
</html>

  在顯示留言的部份,考慮到留言內容若很多,加上網路慢的話,可能會讓使用者在線路慢的時候拖累整個資料庫,因此,盡快的連上資料庫,取得需要的資料后,馬上關閉資料庫,再慢慢送給使用者,應是最好的對策。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城固县| 闻喜县| 都昌县| 咸宁市| 江北区| 承德县| 班戈县| 灵宝市| 凤山县| 太原市| 渝中区| 綦江县| 新津县| 涪陵区| 集安市| 东安县| 贺州市| 沅陵县| 台东县| 同仁县| 贺州市| 泊头市| 泰和县| 拜城县| 江津市| 奎屯市| 华安县| 剑河县| 延吉市| 陆丰市| 湄潭县| 库车县| 石泉县| 白水县| 沁源县| 石嘴山市| 白玉县| 梅河口市| 郁南县| 凯里市| 葫芦岛市|