template_dir = "./templates"; $smarty->compile_dir = "./templates_c"; //---------------------- 設定相關的 SESSION 變數 -------------------- //如果 SESSION 的 admin 與 adminUser 變數尚未建立, 則初始化之 if ( ! isset($_SESSION['admin']) ) { $_SESSION['admin'] = FALSE; $_SESSION['adminUser'] = ''; } //將 SESSION 的 admin 與 adminUser 變數指定給樣版變數, //以便讓樣版顯示管理模式應有的功能 $smarty->assign('admin',$_SESSION['admin']); $smarty->assign('adminUser',$_SESSION['adminUser']); //$_SESSION['totalRows'] 代表留言的總筆數, 如果尚未設定, //則查詢資料庫取得筆數, 然後指定給 $_SESSION['totalRows'] if (! isset($_SESSION['totalRows']) ) { $result=mysql_query("SELECT `留言編號` FROM $tbGuestbook"); $_SESSION['totalRows']=mysql_numRows($result); } $smarty->assign('totalRows',$_SESSION['totalRows']); //---------------------- 取得分頁資料 ------------------------------- //如果在分頁連結上選擇其他頁, 連結中會傳遞 "pageID=要瀏覽的頁碼" if ( ! isset($_GET['pageID']) || empty($_GET['pageID']) ){ //如果 $_GET['pageID'] 未設定或是沒有值, 則將 //代表目前頁碼的 $currentPage 變數設定為 1 $currentPage=1; } else { //如果 $_GET['pageID'] 有值, 則將其值設定給 //代表目前頁碼的 $currentPage 變數 $currentPage=myStripslashes($_GET['pageID']); } //稍後的 SQL 敘述中會使用 $currentPage 的值, 所以 //使用 mysql_real_escape_string() 過濾不合法的字元 $currentPage=mysql_real_escape_string($currentPage); $rangeStart=( $currentPage - 1) * $perPage; //查詢資料表, 取得目前頁碼範圍內的資料 $sql="SELECT * FROM $tbGuestbook ORDER BY `留言編號` DESC LIMIT $rangeStart, $perPage"; $result=mysql_query($sql); //逐筆讀出目前頁碼範圍內各留言的資料, 放入 $all 二維陣列 while ($row = mysql_fetch_array($result)) { //將姓名中的特殊字元轉成 HTML 碼 $name=htmlspecialchars($row['姓名'], ENT_QUOTES); //將留言中的特殊字元、換行字元、與空白轉成 HTML 碼 $message=htmlspecialchars($row['留言'], ENT_QUOTES); $message=str_replace(' ', '  ', nl2br($message)); //將此筆留言的所有資料加入 $all 陣列 $all[] = array('id'=>$row['留言編號'], 'name'=>$name, 'time'=>$row['日期時間'], 'msg' =>$message ); } //將 $all 陣列指定給樣版變數 $all, 讓樣版顯示目前頁碼的分頁內容 $smarty->assign('all',$all); //---------------------- 建立分頁連結 ------------------------------- //設定分頁參數 $params = array( 'mode' => 'Sliding', 'perPage' => $perPage, 'totalItems' => $_SESSION['totalRows'] ); //建立分頁 $pager = Pager::factory($params); //取得分頁連結 $links = $pager->getLinks(); //將分頁連結指定給樣版變數 $pageLinks $smarty->assign('pageLinks',$links['all']); $smarty->display('index.tpl'); ?>