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. jsp脚本语法

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  2. react-native 打包 出apk

    先上步骤: 一. 生成签名文件(my-release-key.keystore文件) Android要求所有应用都有一个数字签名才会被允许安装在用户手机上 1.  在项目目录下运行如下命令: keyt ...

  3. Bean标签的常用属性

    -----------------siwuxie095 Bean 标签的常用属性 1.id 属性:Bean 的唯一标识名,必须以字母开头,且不能 包含特殊字符 2.class 属性:用来定义类的全限定 ...

  4. php之trait 个人笔记

    自从 php 5.4 起 实现了一种代码复用的方式(tarit) 类似 class  但是用tarit 写的类 不能被实例化 和继承.现在来看看他的用法 <?php trait A{ publi ...

  5. 编译参数中-pthread以及-lpthread的区别

    一般情况下,我们在链接一个(文件名为libxxx.so或libxxx.a等的)库时,会使用-lxxx的方式:在Linux中要用到多线程时,需要链接pthread库,按照惯例,我们应该使用-lpthre ...

  6. ubuntu开机执行指令或脚本

    vi /etc/rc.d/rc.localz 将指令添加到exit 0之前,保存.

  7. [Java] 获取当前Project所在的路径

    String projectPath = System.getProperty ("user.dir").toString()

  8. ResourceUtils读取properties文件

    注意: properties文件要放在classPath下面,也就是与src下. path.properties(在properties文件中\代表着没有完,下行同本行是一个内容) perfectMa ...

  9. 优秀前端工程师必备: 我要一个新窗口: js开新窗的2种姿势

    1.<a href="https://www.cnblogs.com/" title="博客园">当前页面打开博客园</a> js代码等 ...

  10. 测试用数据库表设计和SessionFactory

    本篇为struts-2.5.2和spring-3.2.0以及hibernate-4.2.21的整合开篇. 一.测试的数据库表. 用户.角色和权限关系表.数据库是Mysql5.6.为了考虑到一些特殊数据 ...