- 論壇徽章:
- 1
|
1、參照之前的(mvc框架總結(jié))將整體框架定下來(lái)之后,那么請(qǐng)求默認(rèn)參數(shù)將變?yōu)椋?div id="a9ur7n9vt" class="blockcode">- //默認(rèn)請(qǐng)求首頁(yè):
- //P=front
- //C=fIndex
- //A=show
復(fù)制代碼1.1 找到控制器fIndexController下的動(dòng)作:- //首頁(yè)展示動(dòng)作
- public function showAction()
- {
- //防止惡意調(diào)用
- $this->checkAuthority();
- //不需要具體模型,直接載入模版
- require CUR_VIE_PATH.'index.html';
- }
復(fù)制代碼 2、防止惡意調(diào)用這一塊放于我們的Controller層面,所有模型幾乎都要用到,因此將其放于基礎(chǔ)模型,、- /*
- * 防止惡意調(diào)用方法,適用于全部方法
- */
- protected function checkAuthority()
- {
- if(!defined('IN_NG'))
- {
- exit("you no authority");
- }
- }
復(fù)制代碼 隨時(shí)調(diào)用該方法
3、拒絕php低版本,由于總是在運(yùn)行,所以直接放入初始文件Framework.class.php
4.1將 CSS做成包含文件
每個(gè)頁(yè)面都要導(dǎo)入CSS,著實(shí)麻煩,我們定一個(gè)文件title.inc.html。
但是每個(gè)頁(yè)面卻有一個(gè)不相同的CSS,那么可以定義一個(gè)常量來(lái)證明本頁(yè)。
define('SCRIPT','index');- <title>Your Title</title>
- <?php
- require 'application/view/front/title.inc.html'
- ?>
- </head>
復(fù)制代碼
191725397356242.png (6.4 KB, 下載次數(shù): 42)
下載附件
2015-07-09 12:38 上傳
其中title.inc.html代碼- <link rel="shortcut icon" href="favicon.ico" />
- <link rel="stylesheet" type="text/css" href="public/front/css/1/basic.css" />
- <link rel="stylesheet" type="text/css" href="public/front/css/1/<?php echo SCRIPT?>.css" />
復(fù)制代碼 5.2 創(chuàng)建注冊(cè)頁(yè)面register.html- 參數(shù)請(qǐng)求為:
- 請(qǐng)求注冊(cè)頁(yè)
- P=front
- C=fRegister
- A=show
復(fù)制代碼 代碼為:- <div id="register">
- <h2>會(huì)員注冊(cè)</h2>
- <form method="post" action="post.php">
- <dl>
- <dt>請(qǐng)認(rèn)真填寫一下內(nèi)容</dt>
- <dd>
- 用 戶 名:<input type="text" name="username" class="text" />(*必填,至少兩位)
- </dd>
- <dd>
- 密 碼:<input type="password" name="password" class="text" />(*必填,至少六位)
- </dd>
- <dd>
- 確認(rèn)密碼:<input type="password" name="notpassword" class="text" />(*必填,同上)
- </dd>
- <dd>
- 密碼提示:<input type="text" name="passt" class="text" />(*必填,至少兩位)
- </dd>
- <dd>
- 密碼回答:<input type="text" name="passd" class="text" />(*必填,至少兩位)
- </dd>
- <dd>
- 性 別:<input type="radio" name="sex" value="男" checked="checked" />男
- <input type="radio" name="sex" value="女" />女
- </dd>
- <dd class="face">
- <img src="public/front/face/m01.gif" alt="頭像選擇"
- onclick="javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')" />
- </dd>
- <dd>
- 電子郵件:<input type="text" name="email" class="text" />
- </dd>
- <dd>
- Q Q :<input type="text" name="qq" class="text" />
- </dd>
- <dd>
- 主頁(yè)地址:<input type="text" name="url" class="text" value="http://" />
- </dd>
- <dd>
- 驗(yàn) 證 碼:<input type="text" name="yzm" class="text yzm" />
- </dd>
- <dd>
- <input type="submit" class="submit" value="注冊(cè)" />
- </dd>
- </dl>
- </form>
- </div>
復(fù)制代碼
1.png (20.93 KB, 下載次數(shù): 42)
下載附件
2015-07-09 12:39 上傳
5.3點(diǎn)擊頭像彈出選擇頭像框:- <img src="public/front/face/m01.gif" alt="頭像選擇"
- onclick="javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')" />
復(fù)制代碼
2.png (161.83 KB, 下載次數(shù): 40)
下載附件
2015-07-09 12:39 上傳
這個(gè)頁(yè)面存放著64 張頭像頁(yè)面,可以通過(guò)數(shù)組循環(huán)的方式羅列出來(lái)- <?php foreach (range(1,9) as $number) {?>
- <dd><img src="face/m0<?php echo $number?>.gif" /></dd>
- <?php }?>
復(fù)制代碼 6.提交數(shù)據(jù)
將數(shù)據(jù)提交到本頁(yè),必須做一個(gè)名值對(duì),用來(lái)判斷是否提交了數(shù)據(jù)。- ?action=register
- 也可以設(shè)計(jì)一個(gè)隱藏字段來(lái)做名值對(duì)
- <input
- type="hidden"
- name="action"
- value="register"
- />
復(fù)制代碼 6.1核對(duì)驗(yàn)證碼
驗(yàn)證碼的用途是為了防止惡意注冊(cè)和一些表單偽造跨站攻擊等。
驗(yàn)證碼里保存在session 里面,可以判斷是否是當(dāng)前表單提交,而刷新一次后驗(yàn)證碼隨
即變化,又可以防止多次惡意注冊(cè)。- if (!($_POST['yzm'] == $_SESSION['code'])) {
- _alert_back('驗(yàn)證碼有誤,請(qǐng)重新輸入!');
- }
復(fù)制代碼 6.2.接受數(shù)據(jù)- 設(shè)計(jì)變量,將數(shù)據(jù)提交出來(lái)賦值給變量
- $_username
- =
- $_POST['username'];
- 也可以通過(guò)一個(gè)數(shù)組來(lái)存放提交過(guò)來(lái)的值
- $_clean
- =
- array();
- $_clean['username']
- =
- $_POST['username']
復(fù)制代碼 6.3各種限制與過(guò)濾- 1.首先,必須去掉兩邊的空格
- $_string = trim($_string);
復(fù)制代碼- 2.其次長(zhǎng)度限制
- if (mb_strlen($_string,'utf-8') < $_min_num || mb_strlen($_string,'utf-8') > $_max_num)
復(fù)制代碼- 3.敏感字符限制
- $_char_pattern = '/[<>\'\"\ \ ]/';
- if (preg_match($_char_pattern,$_string)) {}
復(fù)制代碼- 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.'以上敏感用戶名不得注冊(cè)!');
- }
復(fù)制代碼- 5.轉(zhuǎn)義輸入,有效防止SQL 注入問(wèn)題
- //mysql_escape_string();
- //addslashes()
- return mysql_real_escape_string($_string); //這個(gè)mysql_是需要連接數(shù)據(jù)庫(kù)的
復(fù)制代碼 |
|