1、参照之前的(mvc框架总结)将整体框架定下来之后,那么请求默认参数将变为:
<span>//</span><span>默认请求首页: </span><span>//</span><span>P=front </span><span>//</span><span>C=fIndex </span><span>//</span><span>A=show</span>
1.1 找到控制器fIndexController下的动作:
<span>//</span><span>首页展示动作</span> <span>public</span><span> function showAction() { </span><span>//</span><span>防止恶意调用</span> $<span>this</span>-><span>checkAuthority(); </span><span>//</span><span>不需要具体模型,直接载入模版</span> require CUR_VIE_PATH.<span>'</span><span>index.html</span><span>'</span><span>; }</span>
2、防止恶意调用这一块放于我们的Controller层面,所有模型几乎都要用到,因此将其放于基础模型,、
<span>/*</span><span> * 防止恶意调用方法,适用于全部方法 </span><span>*/</span> <span>protected</span><span> function checkAuthority() { </span><span>if</span>(!defined(<span>'</span><span>IN_NG</span><span>'</span><span>)) { exit(</span><span>"</span><span>you no authority</span><span>"</span><span>); } }</span>
随时调用该方法
3、拒绝php低版本,由于总是在运行,所以直接放入初始文件Framework.class.php
4.1将 CSS做成包含文件
每个页面都要导入CSS,着实麻烦,我们定一个文件title.inc.html。
但是每个页面却有一个不相同的CSS,那么可以定义一个常量来证明本页。
define('SCRIPT','index');
<title>Your Title</title> <span>php require </span><span>'</span><span>application/view/front/title.inc.html</span><span>'</span> ?>
其中title.inc.html代码
<link rel="<span">"<span>shortcut icon</span><span>"</span> href=<span>"</span><span>favicon.ico</span><span>"</span> /> <link rel="<span">"<span>stylesheet</span><span>"</span> type=<span>"</span><span>text/css</span><span>"</span> href=<span>"</span><span>public/front/css/1/basic.css</span><span>"</span> /> <link rel="<span">"<span>stylesheet</span><span>"</span> type=<span>"</span><span>text/css</span><span>"</span> href=<span>"</span><span>public/front/css/1/<?php echo SCRIPT?>.css</span><span>"</span> />
5.2 创建注册页面register.html
<span>参数请求为: 请求注册页 P</span>=<span>front C</span>=<span>fRegister A</span>=show
代码为:
<div id="<span">"<span>register</span><span>"</span>> <h2 id="会员注册">会员注册</h2> <form method="<span">"<span>post</span><span>"</span> action=<span>"</span><span>post.php</span><span>"</span>> <dl> <dt>请认真填写一下内容</dt> <dd> <span> 用 户 名:</span><input type="<span">"<span>text</span><span>"</span> name=<span>"</span><span>username</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少两位) </span> </dd> <dd> <span> 密 码:</span><input type="<span">"<span>password</span><span>"</span> name=<span>"</span><span>password</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少六位) </span> </dd> <dd> <span> 确认密码:</span><input type="<span">"<span>password</span><span>"</span> name=<span>"</span><span>notpassword</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,同上) </span> </dd> <dd> <span> 密码提示:</span><input type="<span">"<span>text</span><span>"</span> name=<span>"</span><span>passt</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少两位) </span> </dd> <dd> <span> 密码回答:</span><input type="<span">"<span>text</span><span>"</span> name=<span>"</span><span>passd</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> />(*<span>必填,至少两位) </span> </dd> <dd> <span> 性 别:</span><input type="<span">"<span>radio</span><span>"</span> name=<span>"</span><span>sex</span><span>"</span> value=<span>"</span><span>男</span><span>"</span> <span>checked</span>=<span>"</span><span>checked</span><span>"</span> /><span>男 </span><input type="<span">"<span>radio</span><span>"</span> name=<span>"</span><span>sex</span><span>"</span> value=<span>"</span><span>女</span><span>"</span> /><span>女 </span> </dd> <dd>class=<span>"</span><span>face</span><span>"</span>> <img src="/static/imghwm/default1.png" data-src="http://image.codes51.com/Article/image/20150319/20150319201859_1919.png" class="lazy" alt="php留言系统(2)" >"<span>public/front/face/m01.gif</span><span>"</span> alt=<span>"</span><span>头像选择</span><span>"</span><span> onclick</span>=<span>"</span><span>javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')</span><span>"</span> /> </dd> <dd> <span> 电子邮件:</span><input type="<span">"<span>text</span><span>"</span> name=<span>"</span><span>email</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> /> </dd> <dd> <span> Q Q :</span><input type="<span">"<span>text</span><span>"</span> name=<span>"</span><span>qq</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> /> </dd> <dd> <span> 主页地址:</span><input type="<span">"<span>text</span><span>"</span> name=<span>"</span><span>url</span><span>"</span> <span>class</span>=<span>"</span><span>text</span><span>"</span> value=<span>"</span><span>http://</span><span>"</span> /> </dd> <dd> <span> 验 证 码:</span><input type="<span">"<span>text</span><span>"</span> name=<span>"</span><span>yzm</span><span>"</span> <span>class</span>=<span>"</span><span>text yzm</span><span>"</span> /> </dd> <dd> <input type="<span">"<span>submit</span><span>"</span> <span>class</span>=<span>"</span><span>submit</span><span>"</span> value=<span>"</span><span>注册</span><span>"</span> /> </dd> </dl> </form> </div>
5.3点击头像弹出选择头像框:
<img src="/static/imghwm/default1.png" data-src="http://image.codes51.com/Article/image/20150319/20150319201859_3169.png" class="lazy" alt="php留言系统(2)" >"<span>public/front/face/m01.gif</span><span>"</span> alt=<span>"</span><span>头像选择</span><span>"</span><span> onclick</span>=<span>"</span><span>javascript:window.open('face.php','face','width=400,height=400,top=0,left=0')</span><span>"</span> />
这个页面存放着64 张头像页面,可以通过数组循环的方式罗列出来
<?php <span>foreach (range(<span>1</span>,<span>9</span>) <span>as</span> $number) {?>
6.提交数据
将数据提交到本页,必须做一个名值对,用来判断是否提交了数据。
?action=<span>register 也可以设计一个隐藏字段来做名值对 </span>input type=<span>"</span><span>hidden</span><span>"</span><span> name</span>=<span>"</span><span>action</span><span>"</span><span> value</span>=<span>"</span><span>register</span><span>"</span> />
6.1核对验证码
验证码的用途是为了防止恶意注册和一些表单伪造跨站攻击等。
验证码里保存在session 里面,可以判断是否是当前表单提交,而刷新一次后验证码随
即变化,又可以防止多次恶意注册。
<span>if</span> (!($_POST[<span>'</span><span>yzm</span><span>'</span>] == $_SESSION[<span>'</span><span>code</span><span>'</span><span>])) { _alert_back(</span><span>'</span><span>验证码有误,请重新输入!</span><span>'</span><span>); }</span>
6.2.接受数据
<span>设计变量,将数据提交出来赋值给变量 $_username </span>=<span> $_POST[</span><span>'</span><span>username</span><span>'</span><span>]; 也可以通过一个数组来存放提交过来的值 $_clean </span>=<span> array(); $_clean[</span><span>'</span><span>username</span><span>'</span><span>] </span>=<span> $_POST[</span><span>'</span><span>username</span><span>'</span>]
6.3各种限制与过滤
<span>1.首先,必须去掉两边的空格 $_string </span>= trim($_string);
<span>2.其次长度限制 </span><span>if</span> (mb_strlen($_string,<span>'</span><span>utf-8</span><span>'</span>) '<span>utf-8</span><span>'</span>) > $_max_num)
<span>3.敏感字符限制 $_char_pattern </span>= <span>'</span><span>/[\'\"\ \ ]/</span><span>'</span><span>; </span><span>if</span> (preg_match($_char_pattern,$_string)) {}
<span>4.敏感用户名限制 $_mg[</span><span>0</span>] = <span>'</span><span>22</span><span>'</span><span>; $_mg[</span><span>1</span>] = <span>'</span><span>11</span><span>'</span><span>; $_mg[</span><span>2</span>] = <span>'</span><span>33</span><span>'</span><span>; </span><span>foreach</span> ($_mg <span>as</span><span> $value) { $_mg_string .</span>= <span>'</span><span>[</span><span>'</span>.$value.<span>'</span><span>]</span><span>'</span>.<span>'</span><span>\n</span><span>'</span><span>; } </span><span>if</span><span> (in_array($_string,$_mg)) { _alert_back($_mg_string.</span><span>'</span><span>以上敏感用户名不得注册!</span><span>'</span><span>); }</span>
<span>5.转义输入,有效防止SQL 注入问题 </span><span>//</span><span>mysql_escape_string(); </span><span>//</span><span>addslashes()</span> <span>return</span> mysql_real_escape_string($_string); <span>//</span><span>这个mysql_是需要连接数据库的</span>
以上就介绍了php留言系统(2),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

Go中Type关键字的用法有定义新的类型别名或者创建新的结构体类型。详细介绍:1、类型别名,使用“type”关键字可以为已有的类型创建别名,这种别名不会创建新的类型,只是为已有的类型提供一个新的名称,类型别名可以提高代码的可读性,使代码更加清晰;2、结构体类型,使用“type”关键字可以创建新的结构体类型,结构体是一种复合类型,可以用于定义包含多个字段的自定义类型等等。

ubuntu挂载移动硬盘出现错误:mount:unknownfilesystemtype'exfat'处理方法如下:Ubuntu13.10或安装exfat-fuse:sudoapt-getinstallexfat-fuseUbuntu13.04或以下sudoapt-add-repositoryppa:relan/exfatsudoapt-getupdatesudoapt-getinstallfuse-exfatCentOSLinux挂载exfat格式u盘错误的解决方法CentOS中加载extfa

laravel input隐藏域的实现方法:1、找到并打开Blade模板文件;2、在Blade模板中使用method_field方法来创建隐藏域,其创建语法是“{{ method_field('DELETE') }}”。

准备工作用vuecreateexample创建项目,参数大概如下:用原生input原生的input,主要是value和change,数据在change的时候需要同步。App.tsx如下:import{ref}from'vue';exportdefault{setup(){//username就是数据constusername=ref('张三');//输入框变化的时候,同步数据constonInput=;return()=>({

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能