1、參照之前的(mvc架構總結)將整體架構定下來之後,那麼請求預設參數將變為:
//預設請求首頁: //P=front //C=fIndex //A=show
1.1 找到控制器fIndexController下的動作:
//首頁展示動作 public function showAction() { //防止惡意調用 $this->checkAuthority(); //不需要具體模型,直接載入模版 require CUR_VIE_PATH.'index.html'; }
2、防止惡意調用這一塊放於我們的Controller層面,所有模型幾乎都要用到,因此將其放於基本模型,、
/* * 防止惡意調用方法,適用於全部方法 */ protected function checkAuthority() { if(!defined('IN_NG')) { exit("you no authority"); } }
隨時調用該方法
3、拒絕php低版本,由於總是在運行,所以直接放入初始檔案Framework.class.php
4.1將 CSS做成包含檔案
每個頁面都要匯入CSS,著實麻煩,我們定一個檔案title.inc.html。
但是每個頁面卻有一個不相同的CSS,那麼可以定義一個常量來證明本頁。
define('SCRIPT','index');
Your Title php require 'application/view/front/title.inc.html' ?>
其中title.inc.html代碼
"shortcut icon" href="favicon.ico" />"stylesheet" type="text/css" href="public/front/css/1/basic.css" />"stylesheet" type="text/css" href="public/front/css/1/.css" />
5.2 建立註冊頁面register.html
參數請求為: 請求註冊頁 P=front C=fRegister A=show
代碼為:
"register"> 會員註冊
5.3點擊頭像彈出選擇頭像框:
"public/front/face/m01.gif" alt="頭像選擇" onclick="javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')" />
這個頁面存放著64 張頭像頁面,可以通過數組迴圈的方式羅列出來
foreach (range(1,9) as $number) {?>
"face/m0.gif" />
6.提交資料
將資料提交到本頁,必須做一個名值對,用來判斷是否提交了資料。
?action=register也可以設計一個隱藏欄位來做名值對<inputtype="hidden"name="action"value="register"/>
6.1核對驗證碼
驗證碼的用途是為了防止惡意註冊和一些表單偽造跨站攻擊等。
驗證碼裡儲存在session 裡面,可以判斷是否是當前表單提交,而重新整理一次後驗證碼隨
即變化,又可以防止多次惡意註冊。
if (!($_POST['yzm'] == $_SESSION['code'])) {_alert_back('驗證碼有誤,請重新輸入!');}
6.2.接受資料
設計變數,將資料提交出來賦值給變數$_username=$_POST['username'];也可以通過一個數組來存放提交過來的值$_clean=array();$_clean['username']=$_POST['username']
6.3各種限制與過濾
1.首先,必須去掉兩邊的空格$_string = trim($_string);
2.其次長度限制if (mb_strlen($_string,'utf-8') < $_min_num || mb_strlen($_string,'utf-8') > $_max_num)
3.敏感字元限制$_char_pattern = '/[<>\'\"\ \ ]/';if (preg_match($_char_pattern,$_string)) {}
4.敏感使用者名稱限制$_mg[0] = '22';$_mg[1] = '11';$_mg[2] = '33';foreach ($_mg as $value) {$_mg_string .= '['.$value.']'.'\n';}if (in_array($_string,$_mg)) {_alert_back($_mg_string.'以上敏感使用者名稱不得註冊!');}
5.轉義輸入,有效防止SQL 注入問題//mysql_escape_string();//addslashes()return mysql_real_escape_string($_string); //這個mysql_是需要串連資料庫的
以上就介紹了php留言系統(2),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。