- 论坛徽章:
- 1
|
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');- <title>Your Title</title>
- <?php
- require 'application/view/front/title.inc.html'
- ?>
- </head>
复制代码
其中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" />
复制代码 5.2 创建注册页面register.html- 参数请求为:
- 请求注册页
- P=front
- C=fRegister
- A=show
复制代码 代码为:- <div id="register">
- <h2>会员注册</h2>
- <form method="post" action="post.php">
- <dl>
- <dt>请认真填写一下内容</dt>
- <dd>
- 用 户 名:<input type="text" name="username" class="text" />(*必填,至少两位)
- </dd>
- <dd>
- 密 码:<input type="password" name="password" class="text" />(*必填,至少六位)
- </dd>
- <dd>
- 确认密码:<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>
- 主页地址:<input type="text" name="url" class="text" value="http://" />
- </dd>
- <dd>
- 验 证 码:<input type="text" name="yzm" class="text yzm" />
- </dd>
- <dd>
- <input type="submit" class="submit" value="注册" />
- </dd>
- </dl>
- </form>
- </div>
复制代码
5.3点击头像弹出选择头像框:- <img src="public/front/face/m01.gif" alt="头像选择"
- onclick="javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')" />
复制代码
这个页面存放着64 张头像页面,可以通过数组循环的方式罗列出来- <?php foreach (range(1,9) as $number) {?>
- <dd><img src="face/m0<?php echo $number?>.gif" /></dd>
- <?php }?>
复制代码 6.提交数据
将数据提交到本页,必须做一个名值对,用来判断是否提交了数据。- ?action=register
- 也可以设计一个隐藏字段来做名值对
- <input
- type="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_是需要连接数据库的
复制代码 |
|