程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP Access設計留言版實戰PHP學習網

PHP Access設計留言版實戰PHP學習網

編輯:關於PHP編程

1、什麼是PHP?
php是一種開發動態網站的很好的工具.

2、php輕易學麼?
非常輕易,只要你把握一點c或者c 基礎.

3、為什麼選擇php?
速度,易上手,模板,等等

4、php主要學什麼?
模板和函數

5、支持那些數據設備?
你知道那些就有那些

6、為什麼我要選擇access?
因為很多情況下access簡單,易操作,雖然公認的mysql是no.1,但是鑒於對新手比較生疏,access得了,其實我的mysql水平不怎麼樣...

7、我的特色:
簡單,實用, 經濟 ,xhtml.,沒有設計到smarty技術{太復雜,以後說},這次廢話極少了。

我的這個實例主要實現的功能是:
1:發表留言
2:分頁顯示
3:可回復
4:治理員編輯刪除
5:支持UBB
6:xhtml和一些其他簡單技巧
7:記起再寫

先看看文件目錄:

d:webphp
--<guest>
--------<data>
-----------------db.mdb {數據庫}
---------<js>
-----------------common.js{常用的js}
-----------------ubbcode.js{UBB點擊的使用用的js}
--------<images>
-----------------<ubbimages>{保存ubb的圖片的文件夾}
--------<style>
------------------all.css{公用css樣式表}
--------<inc>
-------------------config.php{ 整體配置 }
-------------------conn.php{ 數據庫配置 }
-------------------header.php{ 頭文件配置 }
-------------------footer.php{ 腳文件配置 }
-------------------function.php{ 一些簡單函數 }
--------index.php{首頁}
--------post.php{發表留言}
--------admin.php{治理界面}

涉及到的源文件下載頁面:點擊這裡下載源文件

公用的all.css文件:

*{margin:0;padding:0;}
body{FONT-FAMILY: Tahoma, MS Shell Dlg,betty, female; table-layout:fixed;
word-break:break-all; color: #000;line-height: 1.166;margin:0;padding: 0px;
background-color:#401F00;word-wrap: break-word;font-size:12px;}
a{color:#008;TEXT-DECORATION:none;font-weight:bold;}
a:hover{color:#009;TEXT-DECORATION:none;}
h5 {background-color:#00AEEF;padding:3px 10px;font-size:12px}

h4 {padding:5px 10px;background-color:#000080;font-size:12px;color:#fff;}
h4 a{color:#fff}
h4 a:hover{color:#b00;border-bottom:2px solid #fff}
#format_all{width:500px;padding:0;margin:auto;float:none;border:2px solid #000080;background-color:#fff}
#top_ul{background-color:#BBDDFF}
#top_ul p{padding:50px 0 5px 10px;height:30px;color:#b00;font-size:14.6px}
#top_ul ul{display:block;clear:both;background-color:#313A97;height:22px}
#top_ul ul li{list-style:none;float:left;padding:5px 3px;}
#top_ul ul li a{color:#b00;padding:0 5px;}
#top_ul ul li a:hover{color:#FFF100;border-bottom:2px solid #00AEEF;}
#show_c{background-color:#BBfbFF;padding:3px 0;}
#show_c h6{background-color:#00AEEF;padding:3px 10px;font-size:12px}
#show_c h6 a{color:#313A97}
#show_c h6 a:hover{color:#b00;border-bottom:2px solid #b00}
#show_c div{padding:5px 10px}
#show_c div sub{font-size:105%;color:#313A97;padding:2px 15px;display:block;float:none}
#show_c ul{padding:5px 10px 5px 20px;color:#E82B2B}
#show_c ul li{padding:5px 10px}

#show_c ul li a:hover{border-bottom:2px solid #FFF100;}
label {padding:2px 0 2px 20px;display:block}

#footer{background-color:#BBDDFF;padding:8px;font-weight:bold}
#footer a:hover{color:#b00;border-bottom:2px solid #00AEEF;}

php代碼寫的時候以 <??>最為長用,注釋的時候以單行//這裡是注釋 ,多行以注釋/*這裡是注釋*/ 都行。

php主要是以函數和模板聞名吧,它支持class的繼續。學好數組和模板技術是必須把握的,但這裡牽扯到的函數比較多,以後我5do8慢慢的給新手們介紹,關於php開發,函數那句話,模塊化,能很好的於xhtml結合,模板技術,很有錢途的。

我在下面提到的深度就是指程序執行的 if..else 層數,一次判定是一個深度。

相關php的庫函數請查看詳盡書籍或者文章介紹,此處只講"怎麼用"

----->style/css.all抄上面的也可以,估計速度比較慢,哈哈哈...
先說說數據庫吧:

表 php_guest ,沒啥說的,一看圖就會了:

PHP

表php_admin,也沒啥說的look here :

PHP

下面看看inc/config.php是怎麼設置的:

<?php
ob_start();
$NowPathArray=explode("inc",str_replace("","/",dirname(__FILE__))) ;
@define("root_path", $NowPathArray[0]);
@define("confign_path", root_path . "inc/");
@define("db_path", root_path."data/db.mdb");
$scriptFullPath = $_SERVER["PHP_SELF"];
$scriptArray = split("/",$scriptFullPath);
//$myfilename = $scriptArray[sizeof($scriptArray)-2];
$myfilename = end($scriptArray);
$szd_title="我的留言版";
$page_size=5;
require_once(confign_path.'conn.php');
require_once(confign_path.'function.php');
?>

解釋:

<?
ob_start();//緩存開始,提高速度

$NowPathArray=explode("inc",str_replace("","/",dirname(__FILE__))) ;//強制將windows下"分隔符"轉化為/

@define("root_path", $NowPathArray[0]);//定義本文件的上一位置,也就是定位到了跟目錄下面.

@define("confign_path", root_path . "inc/");//定義整體配置文件夾

@define("db_path", root_path."data/db.mdb"); //定義數據庫路徑

$scriptFullPath = $_SERVER["PHP_SELF"];//得到引用頁文件的url地址.

$scriptArray = split("/",$scriptFullPath);//切割成數組

$myfilename = end($scriptArray);//得到本頁名稱

$szd_title="我的留言";//留言班的標題

$page_size=5; //每頁的數目

require_once(confign_path.'conn.php'); //包含數據庫文件,只一次

require_once(confign_path.'function.php');//包含公用函數庫文件,只一次
?>

下面是inc/conn.asp的文件:

<?php
$conn = new COM('ADODB.Connection');
$accessdsn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=".db_path.";Uid=;Pwd=;";
$conn->Open($accessdsn);
?>

解釋:

<?
$conn = new COM('ADODB.Connection'); //--------------->創建對象

$accessdsn = "Driver={Microsoft Access Driver(*.mdb)};DBQ=".db_path.";Uid=;Pwd=;";
//$accessdsn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=".db_path."";

//--------------->2中連接mdb數據庫的字符串,都行,前者在asp裡面不被推薦,在php裡面似乎經常使用,c-blog是前者,我....

$conn->Open($accessdsn);//---------------> 實例

?>

inc/function.php函數庫用的使用我就一個一個的說到了,下面開始走正路:

我看這個東西有3部分比較合理就用了3部分了,呵呵,so創建了

1、inc/header.php :

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<head><title><?=$szd_title?></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="style/all.css" type="text/css">
</head>
<body>
<div id="format_all">
<div id="top_ul">
<p>老農:PHP留言版</p>
<ul><li><a href="index.php">首頁</a></li>
<li> <a href="POST.php">發表</a></li>
<li><a href="FAQ.php">FAQ</a></li>
<li><a href="admin.php">治理</a></li>
</ul>
</div>

 

2、inc/footer.php :

 

 

<div id="footer">技術支持:老農,網站:<a href="http://www.cjjer.com">http://www.cjjer.com</a></div>
</div></body></html>

 

3、要包含兩個文件的這樣使用,比方index.php :

 

 

<?php
require_once('inc/config.php');
require_once(confign_path.'header.php');
?>

這裡你自定義哦,有點模板的味道,我在一下的教程裡面都是修改這裡面的內容的.,以後替換的就是這行哦,5do8這樣說.

<?php
require_once(confign_path.'footer.php');
?>

index.php

 

 

<?
$page_sql="select * from php_guest order by id desc";
$rs = new COM('ADODB.recordset');
$rs->open($page_sql,$conn,1,1);
$pagesize=$rs->Pagesize=$page_size ;
if($rs->PageCount<>0){
if(!empty($_GET['page'])){
if($_GET['page']<=0){
$rs->AbsolutePage=1;
$nowpage=1;}
elseif($_GET['page']>$rs->PageCount){
$rs->AbsolutePage=$rs->PageCount;
$nowpage=$rs->PageCount;
}else{
$rs->AbsolutePage=$_GET['page'];
$nowpage=$_GET['page'];}
}else{
$rs->AbsolutePage=1;
$nowpage=1;}
}else{
$nowpage = 1;
$pagesize = 0;
}
for ($m=1; $m<=$pagesize; $m )
{
if (!$rs->EOF){
?>
<h6>[<?= $rs->Fields[1] ?>]AT[<?=str2time($rs->Fields[7]) ?>]Title:[<?=htmlspecialchars($rs->Fields[2]) ?>] <?=admin_rep($rs->Fields[0] )?></h6>
<div><?= ubb($rs->Fields[4]) ?>[<?=$rs->Fields[5] ?>]
<sub><?= $rs->Fields[6] ?></sub>
</div>

<? $rs->MoveNext();
}
}
if($rs->PageCount==0){
echo "沒有信息哦";}
if($rs->PageCount<>0){
echo "<h4>共有".$rs->RecordCount."條記錄,每頁".$pagesize."條,共".$rs->PageCount."頁. ";
echo "<a href=".$myfilename."?page=1>首頁</a> ";
if (!($nowpage<=1)){
echo "<a href=".$myfilename."?page=".($nowpage-1).">上一頁</a> ";
}
if (!($nowpage>=$rs->PageCount)){
echo "<a href=".$myfilename."?page=".($nowpage 1).">下一頁</a> ";
}
echo "<a href=".$myfilename."?page=".$rs->PageCount.">尾頁</a></h4> ";
}
$conn->Close();
$rs=NULL;
$conn =NULL;

?>

 

這是首頁的全部文件,你只要替換我前面說的那個地方就行了,下面開始解釋:

和asp的分頁沒啥大的區別,假如您明白asp的分頁的話這個也很簡單:sql讀取記錄,假如空的話輸出為空的信息,假如不是空的話,讀取當前的頁數,頁數為空或者大於記錄總數的話游標定位到第一條,負責定位到 頁數 * 每頁的數目上.注重else對應和它相鄰最近的if.

$page_sql="select * from php_guest order by id desc";
//------------------>創建sql語句
$rs = new COM('ADODB.recordset');

if($rs->PageCount<>0){
//------------------>防止數據庫為空,執行深度 1

for ($m=1; $m<=$pagesize; $m )
//------------------>按照每頁顯示條數的設定進行循環

{

 

admin_rep($ids)函數是判定治理員是否登陸,然後打印2個超鏈接的,寫在inc/function.php裡面的:

 

//治理員登陸成功時候自動出現的選項,---------------
function admin_rep($ids=0)
{ session_start();
$thisadmin=$_SESSION["admin"] ;
//echo $thisadmin;
if ($thisadmin<>1)
{return false;}
$stradmin="Admin:<a href=admin.php?doaction=editor&id=".$ids.">editor</a> <a href='admin.php?doaction=delete&id=".$ids."' onClick='if(confirm("確定這個[---刪除---]操作麼?"))window.location.href=this.href;else return false;'>delete</a>";


return $stradmin;
}

 

session 驗證的時候首先 session_start(); ,然後 if...else 判定,返回值。

首頁顯示頁面:

PHP

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved