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

首頁 > 數據庫 > Oracle > 正文

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

2024-08-29 13:32:37
字體:
來源:轉載
供稿:網友
大部份的網站,都會考慮到和使用者之間的互動關系。這時,用留言版的功能,可讓使用者留下到此一游,或者是一些和網站的互動訊息。

  在設計上,可以很簡單的只留下使用者的短篇留言,也可以設計到依性質分門別類很復雜的 web bbs 系統。當然,要如何打造一個屬于自己網站的留言版,就端賴網站的性質以及 web 網站開發人員的巧思了。

  在這里介紹的范例,是簡單的列示所有留言的內容。供使用者可以一次看到多筆留言的資料。系統的后端存放留言是用 oracle 7.x 版的資料庫系統。范例中的資料庫(database) 名稱為 www,連線的使用者帳號為 user38、密碼為 iam3849。要直接使用本例,必須先執行下面的 sql 指令,建立 guestbook 的資料表格。

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)
);

  上面的 sql 各欄位說明及詳細資料見下表

  序號 欄位   名稱  數據類型 長度 欄位 說明  限制 key
   0 流水號  serial varchar2  255 nn   pk
   1 參照流水號 ref  varchar2  255 暫保留 

  覆留言功能用

  2 帳號 id char 8 使用者帳號 nn

  3 匿名 alias varchar2 32 顯示的名字 nn

  4 網址 ip varchar2 1024 上網 ip

  5 時間 msgdate date nn

  6 電子郵件 email varchar2 1024

  7 留言內容 msg varchar2 2000 nn

  8 顯示旗標 flag char 1 0: 不顯示

   1: 顯示 (內定)

  在本節的留言版相關程序中,若加入了使用者認證功能,則可以在 guestbook資料表的帳號欄中留下使用者的認證帳號,方便 webmaster 日后找尋不當的發信者。在這兒先留下欄位,讓需要的讀者們實習了。

  要使用本節的程序,首先要先裝好 oracle 7.x 版,并確定 web server 端的sql*net 可以順利連上 oracle 資料庫。之后還要在編譯 php 時加

  --with-oracle=/home/oracle/product/7.3.2 的選項,當然改成其它的路徑也沒關系,只要該路徑真的是 oracle 的路徑即可。有關 oracle 裝設及使用上的細節請參考相關書籍。

  下面的程序是將使用者的留言信息加到 guestbook 留言數據表中。若要設定使用者認證功能,可在程序剛開始時檢查,發留言者就可以確認身份,而讀取留言就不必身份檢查。這種設定可以防止不當發言,卻又不會讓留言功能只有少數人使用。

<?php
file://---------------------------
// 新增留言程序 addmsg.php
// author: wilson peng
// copyright (c) 2000
file://---------------------------
//
// 可自行在這兒加入身份檢查功能
//
if (($alias!="") and ($msg!="")) {
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);

$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')";

ora_parse($cursor, $query) or die;
ora_exec($cursor);

ora_close($cursor);
ora_logoff($handle);

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

} else {
?>
<html>
<head>
<title>填寫留言</title>
</head>
<body bgcolor=ffffff>
<form method=post action="<? echo $php_self; ?>">
<table border=0 cellpadding=2 width=395>
<tr>
<td nowrap><font color=004080>代號小名</font></td>
<td width=20%><input type=text name=alias size=8></td>
<td nowrap><font color=004080>電子郵件</font></td>
<td width=50%><input type=text name=email size=18></td>
</tr>
<tr>
<td nowrapvalign=top><font color=004080>內容</font></td>
<td width=80% colspan=3><textarea rows=5 name=msg
cols=33></textarea></td>
</tr>
<tr>
<td width=100% colspan=4 align=center>
<input type=submit value="送出留言">
<input type=reset value="擦掉留言">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
}
?>

  上面的程序在執行時,先檢查變數 alias 和 msg 是否有資料,若無資料則送出填寫留言的表格到使用者端,供使用者填寫留言。

  若使用者填好留言,按下 "送出留言" 的按鈕后,則執行程序的前半部份。

  程序大概分成五部份

  1.. 設定 oracle 需要的環境變數
  2.. 連上 oracle 資料庫
  3.. 整理資料,送入 oracle 中
  4.. 結束與 oracle 的連線
  5.. 結束程序,顯示最新的留言資料

  在設定 oracle 環境的部份,用 php 的函式 putenv(),可設定作業系統層的環境變數。要使用中文要記得加入下面這行

putenv("nls_lang=american_taiwan.zht16big5");

  之后就使用 oracle 函式庫的功能: ora_logon() 等等。詳見 oracle 資料庫函式庫。利用這個函式庫,可以很輕易的操作 oracle 資料庫。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九江县| 洛扎县| 华亭县| 永济市| 睢宁县| 顺义区| 宝鸡市| 威宁| 金门县| 弋阳县| 巨野县| 聊城市| 望谟县| 大英县| 惠安县| 汉沽区| 嘉黎县| 沂水县| 阿瓦提县| 平利县| 莱芜市| 潮安县| 景洪市| 阿瓦提县| 丹东市| 铜陵市| 新安县| 邵阳市| 鄂州市| 临桂县| 山西省| 马边| 岐山县| 惠安县| 凭祥市| 克东县| 湘潭市| 蚌埠市| 清原| 抚松县| 搜索|