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. Spring JDBC Framework详解——批量JDBC操作、ORM映射

    转自:https://blog.csdn.net/yuyulover/article/details/5826948 一.spring JDBC 概述 Spring 提供了一个强有力的模板类JdbcT ...

  2. Spring启动时获取自定义注解的属性值

    1.自定义注解 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documen ...

  3. eval函数的使用之一

    把从后台传到前端的json格式的字符串转成json success: function(data){ var json =eval("("+data+")"); ...

  4. windchill 跑物料变更流程后无法发送物料到SAP

    2042000065.2042000064.2042000074.2042000066在发主数据时,流程卡住,SAP返回信息为空 核查:PLM后台日志只显示变更零件,开始,然后就结束 原因:ECR号为 ...

  5. leetcode 7 reverse integer 反转整数

    描述: 给定32位整数,反转,如321转成123. 解决: 关键是溢出检测: int reverse(int x) { ; int temp; while (x) { temp = ret * + x ...

  6. hibernate与ssm多数据源配置

    hibernate: 1.配置多个数据源,比如2个:hibernate.cfg1.xml~hibernate.cfg8.xml <?xml version='1.0' encoding='UTF ...

  7. vbs执行系统命令

    首先说明一下,我的所有代码都是vbscript,jscript我没有研究过,不过我想也差不多. 关于最基础的语法比如变量的申明,分支,循环,函数的调用,等等这些我就不讲了,不懂得自己看一下. 1.我们 ...

  8. [OS] 远程启动计划任务时以管理员身份运行

    在Jenkins建了一个task自动启动Selenium的Grid,命令行是这样写的: schtasks /end /tn RestartGrid /s SZTEST201606 /u szdomai ...

  9. Appium自动化测试-iOS

    Appium的哲学 我们相信,对原生应用的自动化测试,应当不必要包含其他的SDK组件或者特别编译您的App,并且应当可以选择任何您喜欢的测试方法,框架和工具.基于这些出发点我们开发了Appium.现在 ...

  10. win7搭建node+npm+bower的环境

    原文的地址:https://my.oschina.net/JeeChou/blog/219699 Windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native ...