亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

創(chuàng)造世界上最簡單的 PHP 開發(fā)模式

 更新時間:2006年12月04日 00:00:00   投稿:mdxy-dxy  
這篇文章主要介紹了創(chuàng)造世界上最簡單的 PHP 開發(fā)模式
, 5); 
$data[asphotlist] = getArticleList(2, "clicks DESC, id DESC", 1, 3); 
dbDisconnect(); 

renderTpl(’list2.htm’, $data); 

?> 

--------view.htm--------------
<!-- BEGIN content -->
編號:{id}<br>標題:{title}<br>內(nèi)容:{content}
<!-- END content -->


--------view.php------------------
<?php 

require_once "config.inc.php"; 

dbConnect(); 
$data = array(); 
$data[content] = getArticle((int)$_GET[id]); 
dbDisconnect(); 

renderTpl(’view.htm’, $data); 

?>

八:文章添加實現(xiàn)和模板處理(萬里長征的再來一步)

---------------new.htm-----------
<form action="add.php" method="post">
標題:<input type="text" size="20"><br>
內(nèi)容:<textarea cols="50" rows="4"></textarea><br>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="提交">
</form>


---------------new.php------------
<?php 

require_once "config.inc.php"; 

renderTpl(’new.htm’, array()); 

?> 



---------------CoreUtil.php--------------
<?php 

function doPostVar(&$data){ 
    $keys = array_keys($data); 
    foreach($keys as $key){ 
        $data[$key] = addslashes(htmlspecialchars(trim($data[$key]))); 
        if($data[$key]==null) $data[$key] = "$key default"; 
    } 

?> 


---------------add.htm------------
<!-- BEGIN success -->
{content}
<!-- END success -->


---------------add.php------------
<?php 

require_once "config.inc.php"; 

dbConnect(); 
$data = action(); 
doPostVar($data); 
addArticle($data); 
$result[success][content] = "文章添加成功"; 
dbDisconnect(); 

renderTpl(’add.htm’, $result); 

function action(){ 
    $data = array(); 
    $data[title] = $_POST[title]; 
    $data[content] = $_POST[content]; 
    $data[datetime] = date(’Y-m-d H:i:s’); 
    $data[pid] = 1; 
    return $data; 


?> 

這樣一個最最簡單的文章的發(fā)布系統(tǒng)就完成了,不知道對您有什么收獲沒有。

九、總結


程序?qū)懲炅?,大家來總結一下吧,看看實現(xiàn)過程,應該可以說是簡單明了吧。
1、統(tǒng)一實現(xiàn)數(shù)據(jù)庫訪問接口。更改后臺數(shù)據(jù)庫結構的時候,只要簡單的修改相應的接口函數(shù),其他部分的php代碼根本就不用理會。
2、整個系統(tǒng)php代碼和html代碼分開管理,php代碼前臺實現(xiàn)起來也很簡單,你也應該已經(jīng)可以發(fā)現(xiàn)了,基本上是在10行代碼左右。
3、可以任意的擴充功能。用函數(shù)對新的功能進行包裝后,在具體的前臺的查詢顯示頁面中只有加入對相應的函數(shù)的簡單的調(diào)用就可以了,一行代碼就搞定了。
4、代碼復用。通過對功能的包裝,減少了大量的不必要的重復代碼工作,效率應該是提高了很多吧?
5、可以移植性。如果將來做其他的網(wǎng)站,要是遇到了和這個項目相同的實現(xiàn)功能,你可以怎么做呢?把這里的函數(shù)和數(shù)據(jù)庫結構copy過去,修改一下新項目的模板,是不是就可一完成這個新的項目了呢?根本就不用考慮修改php代碼。
6、結構代碼清晰。別人可以輕易的和你共同開發(fā)一個項目,代碼沖突也會減少至最低。

當然實際工作中遇到的情況可能比這個例子復雜的多,但是再復雜的任務都是可以拆分的。


十、后言

不知道大家有沒有學過jsp和servlet這樣的東西,他們有很多優(yōu)秀的設計思路,值得我們?nèi)パ芯亢蚦opy(說句實在話,有時間的都應該去接觸一下java,不是為了學習這門語言而學習,是要學習他的設計模式和優(yōu)秀的功能實現(xiàn)方式)。jsp至少有兩樣東西對我們很有用,action和filter。

action是主要是處理一些事件邏輯,就像add.php中我們定義的action()函數(shù)一樣,用來驗證和獲取表單提交上來的數(shù)據(jù)。當然這樣寫的代碼量和你以前方法的代碼量是一樣的,好像沒有什么區(qū)別,但是它實現(xiàn)了代碼的分離,結構是不是比你以前的方法清晰很多呢?

filter是一個過濾功能,用來過濾和重新定向網(wǎng)絡的訪問,對一些非法的請求和錯誤的請求進行重新的定向。讓我們來通過一個后臺管理的程序來看看他具體的作用。


將下面的這個函數(shù)copy到你的CoreUtil.php里面,這個函數(shù)是一個后臺管理登陸的過濾函數(shù),一個是不在本地緩存web頁面的函數(shù):

function windowNoCache($cache){ 
    if(!$cache || headers_sent()) return ; 
    header(’Expires: ’.date(’D,d M Y H:i:s’,mktime(0,0,0,1,1,2000)).’ GMT’); 
    header(’Last-Modified:’.gmdate(’D,d M Y H:i:s’).’ GMT’); 
    header(’Cache-control: private, no-cache,must-revalidate’); 
    header(’Pragma: no-cache’); 

function isAdminLogin(){ 
    if($_SESSION[relogin]=="ok") return; 
    if($_SESSION[adminuser]!=SYS_ADMIN_NAME){ 
        $_SESSION[relogin] = "ok"; 
        die("<script language=\"javascript\"> top.location=’adminlogin.php’; </script>"); 
    } 
    $_SESSION[relogin] = "no"; 


然后在 根目錄 底下加上如下的文件
------------adminconfig.inc.php------------
<?php 

define(’SYS_ADMIN_NAME’, ’hello’); //后臺管理登陸名 
define(’SYS_ADMIN_PASSWORD’, ’hello’); //后臺管理登陸密碼 
include ’config.inc.php’; 
windowNoCache(true); 
isAdminLogin(); 

?> 



------------adminindex.php----------------
<?php 

require_once "adminconfig.inc.php"; 

renderTpl(’adminindex.htm’, array()); 

?> 



------------adminlogin.php------------------
<?php 

include "adminconfig.inc.php"; 

if($_POST[name]==SYS_ADMIN_NAME && $_POST[code]==SYS_ADMIN_PASSWORD){ 
    $_SESSION[adminuser] = SYS_ADMIN_NAME; 
    header("location: adminindex.php"); 
}else{ 
    renderTpl(’adminlogin.htm’, array()); 


?> 


在 smart/template 目錄下面加上如下的文件
------------adminlogin.htm------------------
<form name="form1" method="post" action="">
<input type="text" name="name" size="20" value="">
<input type="password" name="code" size="20" value="">
<input type="submit" name="Submit" value=" 登 陸 ">
</form>


------------adminindex.htm----------------
<h2>您好歡迎登陸后臺管理</h2>

現(xiàn)在訪問adminindex.php看看會發(fā)生什么事情,然后用adminconfig.inc.php里面設定的用戶名密碼登陸。這種功能在web的很多地方都可以派上用場,應該是一個好的方法吧。其他的后臺訪問的頁面只要也都加載了adminconfig.inc.php ,就不用再考慮后臺訪問權限的問題了。


十一 附錄

簡單的隱藏文件的擴展名,搞暈瀏覽者,讓他不知道你是用什么語言編的程序。

就以list1.php為例子吧,

1、我們修改list1.php的名稱為list1.tmp
2、進入命令行窗口(dos窗口),在web的目錄下面建立一個文件,文件名是“.htaccess”。
3、編輯“.htaccess”文件,輸入以下的內(nèi)容

AddType application/x-httpd-php .tmp

通過瀏覽器訪問list1.tmp,看看是不是ok了。

相關文章

最新評論