php留言系统(9)
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)的更多相关文章
- 一步步学习PHP笔记(李炎恢瓢城web俱乐部-多用户留言系统)01
本课:div+css实现首页效果: 开发工具:xampp + phpstorm 笔记目的:仅做记录使用,方便日后查看 代码目录结构: index.php: <?php define(" ...
- php建立简单的用户留言系统
php建立简单的用户留言系统 样例 addMsg.php--添加留言页面 doAction.php--响应添加留言页面 . viewMsg.php--显示留言页面 目录结构 addMsg.php--添 ...
- 用smarty来做简易留言系统,明细步骤简单操作
留言信息是之前用php做过的一个例子,现在把它用smarty模板来做 大概是这样子 点击发布信息 然后填写内容,发送后会返回表格,写的内容都会出现在表格里 数据库的数据是这样的: 先建两个文件.php ...
- php用smarty来做简易留言系统,明细步骤简单操作
留言信息是之前用php做过的一个例子,现在把它用smarty模板来做 大概是这样子 点击发布信息 然后填写内容,发送后会返回表格,写的内容都会出现在表格里 数据库的数据是这样的: 先建两个文件.php ...
- Struts2 --简单留言系统
1.创建数据表,与servlet中相同 2.创建web项目,添加struts2模块,url 选 /*,web.xml中会自动注册struts2,同时src下会自动生成struts2配置文件struts ...
- Servlet --简单用户留言系统
1.创建用户表和留言表 2.编写数据库连接工具类 public class SqlserverDBConn { private Statement stmt; private Connection c ...
- [课程设计]Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计)
Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...
- WP评论系统更换小结(转)
第三方评论插件 多说 多说是一款追求极致体验的社会化评论框,可以用微博.QQ.人人.豆瓣等帐号登录并评论. 多说具备优质用户体验.速度和稳定性.社会化推荐.建站程序审核整合.垃圾评论过滤等特性. 自定 ...
- 国内免费CMS系统大全
一.ASP类的CMS程序 1.动易CMS 官方网址:http://www.powereasy.net/(可免费下载) 特点:完全免费,ACCESS数据库,主要功能模块:文章频道.下载频道.图片频道.留 ...
随机推荐
- leetcode225
public class MyStack { Queue<int> Q = new Queue<int>(); /** Initialize your data structu ...
- UGUI 事件穿透规则
UGUI事件分为两大类:点击和拖拽. 点击包括 pointerdown, pointerup. 拖拽包括 begindrag, drag, enddrag. 点击事件无穿透:只会被最上层UI响应,不会 ...
- Apache Shiro学习-2-Apache Shiro Web Support
Apache Shiro Web Support 1. 配置 将 Shiro 整合到 Web 应用中的最简单方式是在 web.xml 的 Servlet ContextListener 和 Fil ...
- 【322】python控制键盘鼠标:pynput
参考:python实战===python控制键盘鼠标:pynput 参考:[Python Study Notes]pynput实现对鼠标控制 参考:pynput doc 参考:pynput Packa ...
- js 实现数组深度copy
1. slice() slice() 方法可从已有的数组中返回选定的元素.arrayObject.slice(start,end) ,返回一个新的数组,包含从 start 到 end (不包括该元素) ...
- 【Git】一、Git简介
一.什么是Git Git是一款免费的开源分布式版本控制系统,可以有效的,高速的处理从很小到非常大的文件. 二.Git VS SVN 1. Git 是分布式的,SVN 是集中式的 2. Git 存储的是 ...
- ColorMask
[ColorMask] When using multiple render target (MRT) rendering, it is possible to set up different co ...
- Android开发之通过包管理器获取安装应用信息
最近在自己写一个APP,有一个模块需要获取手机应用的一些信息.坑还是有,但都基本踩过了,自己把他实现了出来,实现方法还是很需要掌握的.底部弹出的对话框中四个选项的实现不多做说明,主要讲讲如何获取这些安 ...
- Server.Transfer和Response.Redirect的区别
(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页 ...
- 稀疏矩阵乘法 · Sparse Matrix Multiplication
[抄题]: 给定两个 稀疏矩阵 A 和 B,返回AB的结果.您可以假设A的列数等于B的行数. [暴力解法]: 时间分析: 空间分析: [思维问题]: [一句话思路]: 如果为零则不相乘,优化常数的复杂 ...