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数据库,主要功能模块:文章频道.下载频道.图片频道.留 ...
随机推荐
- PS7.0快捷键和使用技巧
选择工具:矩形.椭圆选框工具 [M]裁剪工具 [C]移动工具 [V]套索.多边形套索.磁性套索 [L]魔棒工具 [W] 编辑工具:修复画笔.修补工具 [J]画笔.铅笔工具 [B]橡皮图章.图案图章 [ ...
- 通过django创建数据库的方法
在models 文件中实现 a. from django.db import models class UserInfo(models.Model): #id列, 自增, 主键 #用户名列, 字符串类 ...
- Eclipse 安装Hibernate Tools 工具 提高开发效率
1.打开Eclipse 开发工具 2.配置使用hibernate Tools 3.选择search 选项卡,搜索 hibernate 关键字 点击Install Next finish ...
- django中文件下载(HttpResponse)
最近一个用django开发的web项目要进行数据的导入导出,所以有必要了解下. django中主要用HttpResponse将请求结果返回给浏览器,所以文件的下载也是通过改对象进行处理的,具体的一个列 ...
- 在 springboot 中如何整合 shiro 应用 ?
Shiro是Apache下的一个开源项目,我们称之为Apache Shiro. 它是一个很易用与Java项目的的安全框架,提供了认证.授权.加密.会话管理,与spring Security 一样都是 ...
- 什么是2MSL
[什么是2MSL] MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃.因为tcp报文( ...
- 启动JAR Hadoop任务
[启动JAR Hadoop任务] 一般情况下,我们会使用下面的命令来运行一个hadoop任务: 这个命令实际上是转化成下面的命令来运行的 在RunJar中,会读取abc.jar文件,然后尝试从mani ...
- out.println(session.getLastAccessedTime());的返回值到底是毛线意思???
out.println(session.getLastAccessedTime());这个语句是输出最后一次成功获取session对象Attribute值的一个指令, 他的返回值是一个long型数据, ...
- 如何阅读一个Web项目 【转载】
摘自网络博客. ============================================================================================ ...
- 动量Momentum梯度下降算法
梯度下降是机器学习中用来使模型逼近真实分布的最小偏差的优化方法. 在普通的随机梯度下降和批梯度下降当中,参数的更新是按照如下公式进行的: W = W - αdW b = b - αdb 其中α是学习率 ...