免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1925 | 回复: 1
打印 上一主题 下一主题

php留言系统 [复制链接]

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-07-10 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-09 12:41 |只看该作者 |倒序浏览
1、参照之前的(mvc框架总结)将整体框架定下来之后,那么请求默认参数将变为:
  1. //默认请求首页:
  2.     //P=front
  3.     //C=fIndex
  4.     //A=show
复制代码
1.1     找到控制器fIndexController下的动作:
  1. //首页展示动作
  2.         public function showAction()
  3.         {
  4.             //防止恶意调用
  5.             $this->checkAuthority();
  6.             //不需要具体模型,直接载入模版
  7.             require CUR_VIE_PATH.'index.html';
  8.         }
复制代码
2、防止恶意调用这一块放于我们的Controller层面,所有模型几乎都要用到,因此将其放于基础模型,、
  1. /*
  2.      * 防止恶意调用方法,适用于全部方法
  3.      */
  4.     protected function checkAuthority()
  5.     {
  6.         if(!defined('IN_NG'))
  7.         {
  8.             exit("you no authority");
  9.         }
  10.     }
复制代码
随时调用该方法

3、拒绝php低版本,由于总是在运行,所以直接放入初始文件Framework.class.php

4.1将 CSS做成包含文件

每个页面都要导入CSS,着实麻烦,我们定一个文件title.inc.html。

但是每个页面却有一个不相同的CSS,那么可以定义一个常量来证明本页。

define('SCRIPT','index');
  1. <title>Your Title</title>
  2.     <?php
  3.         require 'application/view/front/title.inc.html'
  4.     ?>
  5. </head>
复制代码


其中title.inc.html代码
  1. <link rel="shortcut icon" href="favicon.ico" />
  2. <link rel="stylesheet" type="text/css" href="public/front/css/1/basic.css" />
  3. <link rel="stylesheet" type="text/css" href="public/front/css/1/<?php echo SCRIPT?>.css" />
复制代码
5.2 创建注册页面register.html
  1. 参数请求为:
  2.     请求注册页
  3.         P=front
  4.         C=fRegister
  5.         A=show
复制代码
代码为:
  1. <div id="register">
  2.         <h2>会员注册</h2>
  3.         <form method="post" action="post.php">
  4.             <dl>
  5.                 <dt>请认真填写一下内容</dt>
  6.                 <dd>
  7.                     用 户 名:<input type="text" name="username" class="text" />(*必填,至少两位)
  8.                 </dd>
  9.                 <dd>
  10.                     密 码:<input type="password" name="password" class="text" />(*必填,至少六位)
  11.                 </dd>
  12.                 <dd>
  13.                     确认密码:<input type="password" name="notpassword" class="text" />(*必填,同上)
  14.                 </dd>
  15.                 <dd>
  16.                     密码提示:<input type="text" name="passt" class="text" />(*必填,至少两位)
  17.                 </dd>
  18.                 <dd>
  19.                     密码回答:<input type="text" name="passd" class="text" />(*必填,至少两位)
  20.                 </dd>
  21.                 <dd>
  22.                     性 别:<input type="radio" name="sex" value="男" checked="checked" />男
  23.                     <input type="radio" name="sex" value="女" />女
  24.                 </dd>
  25.                 <dd class="face">
  26.                     <img src="public/front/face/m01.gif" alt="头像选择"
  27.                         onclick="javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')" />
  28.                 </dd>
  29.                 <dd>
  30.                     电子邮件:<input type="text" name="email" class="text" />
  31.                 </dd>
  32.                 <dd>
  33.                     Q Q :<input type="text" name="qq" class="text" />
  34.                 </dd>
  35.                 <dd>
  36.                     主页地址:<input type="text" name="url" class="text" value="http://" />
  37.                 </dd>
  38.                 <dd>
  39.                     验 证 码:<input type="text" name="yzm" class="text yzm" />
  40.                 </dd>
  41.                 <dd>
  42.                     <input type="submit" class="submit" value="注册" />
  43.                 </dd>
  44.             </dl>
  45.         </form>
  46.     </div>
复制代码

5.3点击头像弹出选择头像框:
  1. <img src="public/front/face/m01.gif" alt="头像选择"
  2.                         onclick="javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')" />
复制代码


这个页面存放着64 张头像页面,可以通过数组循环的方式罗列出来
  1. <?php foreach (range(1,9) as $number) {?>
  2. <dd><img src="face/m0<?php echo $number?>.gif" /></dd>
  3. <?php }?>
复制代码
6.提交数据
将数据提交到本页,必须做一个名值对,用来判断是否提交了数据。
  1. ?action=register
  2. 也可以设计一个隐藏字段来做名值对
  3. <input
  4. type="hidden"
  5. name="action"
  6. value="register"
  7. />
复制代码
6.1核对验证码
验证码的用途是为了防止恶意注册和一些表单伪造跨站攻击等。
验证码里保存在session 里面,可以判断是否是当前表单提交,而刷新一次后验证码随
即变化,又可以防止多次恶意注册。
  1. if (!($_POST['yzm'] == $_SESSION['code'])) {
  2. _alert_back('验证码有误,请重新输入!');
  3. }
复制代码
6.2.接受数据
  1. 设计变量,将数据提交出来赋值给变量
  2. $_username
  3. =
  4. $_POST['username'];
  5. 也可以通过一个数组来存放提交过来的值
  6. $_clean
  7. =
  8. array();
  9. $_clean['username']
  10. =
  11. $_POST['username']
复制代码
6.3各种限制与过滤
  1. 1.首先,必须去掉两边的空格
  2. $_string = trim($_string);
复制代码
  1. 2.其次长度限制
  2. if (mb_strlen($_string,'utf-8') < $_min_num || mb_strlen($_string,'utf-8') > $_max_num)
复制代码
  1. 3.敏感字符限制
  2. $_char_pattern = '/[<>\'\"\ \ ]/';
  3. if (preg_match($_char_pattern,$_string)) {}
复制代码
  1. 4.敏感用户名限制
  2. $_mg[0] = '22';
  3. $_mg[1] = '11';
  4. $_mg[2] = '33';
  5. foreach ($_mg as $value) {
  6. $_mg_string .= '['.$value.']'.'\n';
  7. }
  8. if (in_array($_string,$_mg)) {
  9. _alert_back($_mg_string.'以上敏感用户名不得注册!');
  10. }
复制代码
  1. 5.转义输入,有效防止SQL 注入问题
  2. //mysql_escape_string();
  3. //addslashes()
  4. return mysql_real_escape_string($_string); //这个mysql_是需要连接数据库的
复制代码

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2015-07-10 09:52 |只看该作者
为什么不把整个网站一起以附件的形式发送呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP