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(,) 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[] = '';
$_mg[] = '';
$_mg[] = '';
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留言系统(9)的更多相关文章

  1. 一步步学习PHP笔记(李炎恢瓢城web俱乐部-多用户留言系统)01

    本课:div+css实现首页效果: 开发工具:xampp + phpstorm 笔记目的:仅做记录使用,方便日后查看 代码目录结构: index.php: <?php define(" ...

  2. php建立简单的用户留言系统

    php建立简单的用户留言系统 样例 addMsg.php--添加留言页面 doAction.php--响应添加留言页面 . viewMsg.php--显示留言页面 目录结构 addMsg.php--添 ...

  3. 用smarty来做简易留言系统,明细步骤简单操作

    留言信息是之前用php做过的一个例子,现在把它用smarty模板来做 大概是这样子 点击发布信息 然后填写内容,发送后会返回表格,写的内容都会出现在表格里 数据库的数据是这样的: 先建两个文件.php ...

  4. php用smarty来做简易留言系统,明细步骤简单操作

    留言信息是之前用php做过的一个例子,现在把它用smarty模板来做 大概是这样子 点击发布信息 然后填写内容,发送后会返回表格,写的内容都会出现在表格里 数据库的数据是这样的: 先建两个文件.php ...

  5. Struts2 --简单留言系统

    1.创建数据表,与servlet中相同 2.创建web项目,添加struts2模块,url 选 /*,web.xml中会自动注册struts2,同时src下会自动生成struts2配置文件struts ...

  6. Servlet --简单用户留言系统

    1.创建用户表和留言表 2.编写数据库连接工具类 public class SqlserverDBConn { private Statement stmt; private Connection c ...

  7. [课程设计]Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计)

    Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...

  8. WP评论系统更换小结(转)

    第三方评论插件 多说 多说是一款追求极致体验的社会化评论框,可以用微博.QQ.人人.豆瓣等帐号登录并评论. 多说具备优质用户体验.速度和稳定性.社会化推荐.建站程序审核整合.垃圾评论过滤等特性. 自定 ...

  9. 国内免费CMS系统大全

    一.ASP类的CMS程序 1.动易CMS 官方网址:http://www.powereasy.net/(可免费下载) 特点:完全免费,ACCESS数据库,主要功能模块:文章频道.下载频道.图片频道.留 ...

随机推荐

  1. WebFont-前端字体

    WebFont-前端字体 前端设计时使用了一些不常用的字体,如何在客户的浏览器中正确展示? 解决方案是使用webfont,将字体置于服务端,利用 css 中的font-family进行设置,客户端展现 ...

  2. Navigation and Pathfinding

    [Navigation and Pathfinding] 术语: 1)NavMesh 2)NavMesh Agent 3)Off-Mesh Link 4)NavMesh Obstacle A comm ...

  3. js中__proto__, property, prototype, 对象自身属性方法和原型中的属性方法的区别

    __proto__: 这个属性是实例对象的属性,每个实例对象都有一个__proto__属性,这个属性指向实例化该实例的构造函数的原型对象(prototype). proterty:这个方法是对象的属性 ...

  4. android应用程序monkey压力测试(模拟器或真机)

    首先需要安装一个模拟器: 前置条件: 1.jdk环境配置 2.eclipse下载安装(直接解压即可) 3.网站上下载ADT: 由于国内禁止google的浏览,所以需要自己上网找资源,下面这个网站有比较 ...

  5. Python:如何排序(sort)

    一.前言 对Python的列表(list)有两个用于排序的方法: 一个是内建方法list.sort(),可以直接改变列表的内容: >>> list1 = [9,8,7,6,5] &g ...

  6. 5- 如何把MyEclipse中的web项目导入到Eclipse中运行

    from: 如何把MyEclipse中的web项目导入到Eclipse中运行 2016年09月12日 20:57:51 dancheren 阅读数:35329 标签: eclipse 更多 个人分类: ...

  7. 微软AntiXSS防止xss攻击类库

    AntiXSS,由微软推出的用于防止XSS攻击的一个类库,可实现输入白名单机制和输出转义. AntiXSS最新版的下载地址:http://wpl.codeplex.com 下载安装之后,安装目录下有以 ...

  8. NLTK和Stanford NLP两个工具的安装配置

    这里安装的是两个自然语言处理工具,NLTK和Stanford NLP. 声明:笔者操作系统是Windows10,理论上Windows都可以: 版本号:NLTK 3.2 Stanford NLP 3.6 ...

  9. 前端福利之HTML5 UTF-8 中文乱码(转)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. UVA 11865 Stream My Contest (二分+最小树形图)

    题意:给定一个网络,一个服务器,其他的是客户机,有 m 条连线,每条有一个带宽和花费(单向边),让你用不超过 c 的花费,使得 0 到 所有的机器都能到达,并且使得最小带宽最大. 析:很明显是二分题, ...