[L-php]表单验证之PHP代码框架

Fat Free Framework:轻量PHP框架实战指南 PHP框架是Web开发的基础技术选型,其核心价值在于平衡开发效率与运行性能。Fat Free Framework(F3)作为一款仅70KB的极简PHP框架,不依赖Composer、无命名空间、零配置即可运行,本质是回归PHP原生语义的设计哲学。它通过全局单例Base类、正则驱动路由、PDO直连封装等机制,在保持对SQL和HTTP完全掌控的前提下,显著降低学习成本与资源开销。该框架特别适用于老旧服务器维护、IoT控制页、内部工具快速搭建及教学演示等场景,是Laravel/Symfony之外的重要轻量选项。本文 阅读详情

  我在上一篇文章中讲到使用javascript做集成表单验证的方法,对于客户端验证已经足够,但好的表单验证应同时在客户端和服务器端进行——这正是写本文的目的。

    如果采用一般的验证方法应该怎样写呢?

    if ($_POST['some'] 不满足 condition) {

             die("wrong");

    }

    类似于javascript的集成验证方法,在PHP中也可利用数组和eval语句实现表单验证(服务器端)框架。一般步骤:

    1、将用户提交的数据从$_GET或$_POST数组收集到自定义数组(可选),

    2、填充验证数组(包括变量名、条件及提示等),

    3、添加固定的验证代码。

    下面我来举例说明,假设你要从网页中收集用户姓名及年龄,并且在服务器端实现数据验证,那么你可能需要form.html和act.php。form.html中包含表单:

    <form method=post action=act.php>

        姓名:<input type=text name='name'><br>

        年龄:<inupt type=text name='uage' ><br>

        <input type=submit value="提交">

    </form>

    act.php中将实现表单的验证:

    $userinfo = array();                 // 步骤1

    $userinfo['name'] = isset($_POST['uname']) ? $_POST['uname'] : '';

    $userinfo['age'] = isset($_POST['uage']) ? (int)$_POST['uage'] : 0;

    $error_message = "";           // 错误信息

    // 步骤2

    $elems = array(
        array("/$userinfo['name']", 'strlen(#)<1', '姓名不能为空!'),

        // 若省略步骤1则按如下方式改写:

        // array("/$_POST['uname']", 'strlen(#)<1', '姓名不能为空!'),

        array("/$userinfo['age']", '#<=0', '年龄不正确!')

    );

    // 步骤3

    for($i = 0; $i < count($elems); $i++) {
        if(eval("if(".preg_replace("/[#]/", $elems[$i][0], $elems[$i][1]).") return false;") === false) {
        $error_message .= $elems[$i][2];

        }
    }

    这样,我们每次只须填充验证数组$elems就可完成表单验证。


    希望对你们有用,我也很想知道你们是怎么做的。

    这样,我们每次只须填充验证数组$elems就可完成表单验证。

    希望对你们有用,我也很想知道你们是怎么做的。

    这样,我们每次只须填充验证数组$elems就可完成表单验证。

    希望对你们有用,我也很想知道你们是怎么做的。

thinkPHP框架详解+部署 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,由国内的技术爱好者创建,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。 阅读详情

相关推荐

CodeIgniter框架电商项目:美丽说源码解析

本文还有配套的精品资源,点击获取 简介:美丽说源码是基于CodeIgniter框架的开源项目,以模仿知名电商平台"美丽说"为目标,注重代码的可扩展性和维护性。CodeIgniter框架采用MVC架构,使业务逻辑、数据处理和用户界面分离,便于代码的清晰结构和维护。此外,利用CodeIgniter的缓存机制提升网站性能,并采用优雅的代码设计和最佳实践提升代码质量。该项目包含电商...

weixin_42263617的博客 980

[L-php]validator表单验证类PHP版本

<br /><?php<br />/*****************<br />名称:validator For PHP v1.0.0<br />日期:2006-12-7<br />作者:西楼冷月<br />网址:www.xilou.net | www.chinaCMS.org

HackArt 936

TEC控制器芯片 ADN8835 中文数据手册

ADN8835是一款高集成度的单芯片TEC控制器。它包括线性电压调节模块脉冲宽度调制(PWM) 电压调节模块和两个零漂移、轨到轨斩波放大器。线性控制器和PWM驱动器用于控制H桥配置中的内部功率MOSFET。通过测量热传感器反馈电压,并使用集成的运算放大器作为比例-积分-微分(PID)补偿器来调理信号,ADN8835通过TEC驱动电流,将连接至TEC模块的激光二极管或无源组件的温度稳定到编程的目标温度。

lu2289504634的博客 9532

PHP表单验证

1. isset在PHP中判断变量是否声明,该函数的返回值是true或者是false,isset只能英语变量,因为传递任何其他形式的参数都将造成解析错误。 2. trim() 函数移除字符串两侧的空白字符或其他预定义字符。 3. 去掉data中的反斜杠(stripslashes)把data中的反斜杠(stripslashes) 把data中的反斜杠(stripslashes)把data中预定义的字...

qq_43405642的博客 281

高速SerDes均衡技术解析

均衡技术是高速SerDes链路中补偿信道损耗和失真的核心技术,通过FFE、CTLE和DFE三种主要方法对抗码间干扰(ISI)。FFE在发射端预补偿前光标干扰,CTLE通过提升高频增益补偿信道损耗,DFE则精准消除后光标干扰。三种技术各具优势:FFE实现简单且不放大噪声,CTLE功耗低易于集成,DFE能自适应调整且保持信噪比。这些技术协同工作可有效提升系统传输速率和可靠性。

一只豌豆象的博客 1947

emir分析RC corner如何选择

power analysis阶段 RC corner的选择

weixin_61954252的博客 3592

laravel框架系列(一),Dcat Admin 安装

Laravel 是一个流行的 PHP 开发框架,它提供了一套简洁、优雅的语法和丰富的功能,用于快速构建高质量的 Web 应用程序。以下是 Laravel 的一些主要特点和功能:MVC 架构:Laravel 使用经典的模型-视图-控制器(MVC)架构,将应用程序的不同组成部分分离,使开发更加模块化、灵活和可维护。路由系统:Laravel 提供了强大的路由系统,可以帮助开发者定义 URL 和请求的处理方式。通过定义路由,可以实现 RESTful API 和友好的 URL 结构。

wangxuanyang_zer的博客 2136

SpringBoot3 + Vben5.0实战:从零搭建企业级管理后台(附完整代码)

本文详细介绍了如何从零开始,使用SpringBoot3与Vben5.0技术栈搭建现代化企业级管理后台。通过对比分析,阐述了该组合在开发效率、性能(如虚拟线程)和权限模型(RBAC)方面的优势,并提供了从项目初始化、核心功能开发到部署运维的完整实战指南,帮助开发者快速构建高性能、易维护的后台系统。

weixin_29306317的博客 171

php框架推荐

ThinkPHP, 国内开发的框架,特别容易入门,中文文档细致,表述准确。 Laravel, 国外框架,非常高级的一个框架,特别是前端比较模块化,但入门难一些,速度不高。 laravel在lampp下的安装方法: 1、先安装composer 安装地址:https://getcomposer.org/download/ 。 可以使用 /opt/lampp/b...

dielucui7698的博客 303

给STM32F4装上耳朵:用麦克风模块和Keil MDK实现你的第一个语音指令(附完整代码)

本文详细介绍了如何使用STM32F4开发板和麦克风模块实现简单的语音指令识别系统。通过Keil MDK开发环境配置、ADC音频采样、语音活动检测和模板匹配算法,开发者可以快速构建响应'开灯'、'关灯'等基础指令的语音交互方案。文章包含完整代码实现和调试技巧,特别适合STM32初学者入门语音识别领域。

weixin_29171087的博客 434

windows搭建IIS(FTP)

适用于参加网络系统管理的学生进行学习与参考

a1119619789的博客 280

PHP的扩展框架之Phalcon初探

转载:http://www.lunzz.net/archives/69.shtml 之前了解的第一个用C编写的php框架就是鸟哥的YAF,也学习了下感觉入手不是那么简单。最近无意中发现了Phalcon的框架,也是用C写的扩展框架。之前学习的YAF只实现了MVC,但是没有其他过多的东西可用有些蛋疼,连数据库操作封装都没有。而Phalcon则是一个非常完整的框架,已经能达到应用目的。 一、

wlc900617的博客 1097

Allegro技巧----相同模块复用实现快速布局

使用Allegro软件进行PCB Layout设计时,当电路图中有很多路相同的模块,使用模块复用的的操作方法,可以显著提高工作效率,同时也可以使PCB布局在整体上显得美观。 如图,有8个相同的ADC采样电路模块,它们在原理图中的电路也是一样的,对于这多个相同的电路模块,如果一个个元器件布局很明显做了很多重复机械的劳动,效率低下;但是强大的Allegro软件早就考虑到了这点,只需要在PCB中做好其中的一个,则其余相同的模块通过复用的方式,可以快速完成,方便省事还美观。 具体步骤: 1.首先完成一个模块的PC

sinat_15677011的博客 5655

PHP学习—了解篇2

使用PHP 表单 表单处理: PHP超全局变量:$_GET 和 $ _POST 用于处理表单数据(form-data) < form > 表单标签 ​ action属性:规定表单数据提交URL ​ method属性:规定提交时使用的HTTP方法(推荐POST) < input > 表单元素标签 ​ type属性:动态定义标签框的类型 <!DOCTYPE...

weixin_30785593的博客 191

YOLOv11涨点改进 | Conv篇/小目标改进 | YOLOv11引入SPDConv卷积特征无损下采样模块,增加YOLOv11小目标P2检测层(助力小目标任务高效涨点)

本文提出了一种创新的SPDConv模块来优化YOLOv11模型,通过空间到深度(SPD)层和非步幅卷积层实现特征无损下采样。该方法有效解决了传统CNN中因跨步卷积和池化层导致的细粒度信息丢失问题,特别提升了小目标检测性能。实验表明,SPDConv在目标检测和图像分类任务中显著优于现有SOTA模型。文章详细介绍了模块原理、核心代码实现,并提供了YOLOv11集成SPDConv的具体方法,包括配置文件修改和P2层增强等优化技巧。该技术为计算机视觉任务提供了一种高效的特征保留方案。

Ai缝合怪、助力小伙伴高效发论文 586

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

php 正则匹配中文并替换,php 正则匹配中文(转)

我使用正则表达式来匹配中问的时候,出现了无法匹配的问题,问题如下PCRE does not support \L, \l, \N{name}, \U, or \u at offset 2我原来的匹配公式是:/[\u4e00-\x9fa5]/然后我在网上找的,下面的解决方案解决后的匹配方案是:/^[\x{4e00}-\x{9fa5}]+$/u下面是具体文章在做表单验证时对用户姓名的验证规则有以下要求...

weixin_36369605的博客 647

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

php 令牌验证 原理,PHP -- ThinkPHP框架下表单令牌原理

这篇文章主要介绍了PHP -- ThinkPHP框架下表单令牌原理,较为详细的分析了thinkPHP表单令牌的原理、配置、错误原因与相应的解决方法。thinlphp框架项目中开启表单令牌,要在配置文件中做如下配置array(//是否开启令牌验证'TOKEN_ON'=>true,//令牌验证的表单隐藏字段名称'TOKEN_NAME'=>'__hash__',//令牌哈希验证规则 默认为M...

weixin_34643336的博客 453

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

laravel框架 - 开发实战(目录结构,路由,控制器,模型,视图)

学习的是laravel8框架,仅供参考

荒的博客 956

php开发中遇到的一些问题

php警告提示A session had already been started – ignoring session_start() 解决方案 判断 如果session_id 不存在,说明没有储存, 打开session if (!session_id()) session_start(); $day=date('j'); 当月的第几日,不足两位数不补零,从1到31...

weixin_30555515的博客 280

php异步请求提交表单,JS+ajax实现php异步提交表单

这次给大家带来JS+ajax实现php异步提交表单,JS+ajax实现php异步提交表单的注意事项有哪些,下面就是实战案例,一起来看一下。很多时候需要异步提交表单,当表单太多是时候,一个个getElementById变得很不实际当然,jquery可以实现异步提交表单,jquery.form.js这个库貌似也挺流行只是有时候并不想使用额外的库,所以就琢磨着自己写,用纯js来实现异步提交表单实现如下(...

weixin_39600319的博客 205

jQuery的表单验证插件validate

一、需要准备的材料 1、jquery.js 2、validate.js 二、valdate内置验证规则 (1)required:true 必输字段 (2)remote:"check.php" 使用ajax方法调用check.php验证输入值 (3)email:

明月清风 876

php家检乘除,php通用检测函数集(转)_php

php通用检测函数集 转http://wb.josetech.com/userHome/4/jaxp/add-ons/news/13/20020828/51.html发布时间:2002-08-28 17:52:33 新闻来源://【警告】:未经许可请勿随便修改//--------------------------------------------------------------------...

weixin_29196891的博客 80

ci默认方法index.php,PHP_解析如何去掉CodeIgniter URL中的index.php,CI默认的rewrite url中是类似这样 - phpStudy...

解析如何去掉CodeIgniter URL中的index.phpCI默认的rewrite url中是类似这样的,例如你的CI根目录是在/CodeIgniter/下,你的下面的二级url就类似这样http://localhost/CodeIgniter/index.php/welcome。不太好看,怎么把其中的index.php取掉呢?1. 打开apache的配置文件,conf/httpd.conf...

weixin_39611161的博客 324

phpcms v9【hash数据验证失败】

phpcms\modules\attachment\templates\address.tpl.php第9行 ,替换如下: <form action="index.php?m=attachment&c=address&a=update&pc_hash=<?php echo $_SESSION['pc_hash'];?>" method="pos...

lff的博客 1032

LobeHub Acceptance 验收机制:双层失误目录、supersedes 替换规则与 Electron 登录注入策略

LobeHub 的验收(Acceptance)体系由三层文档协作支撑:可移植的通用技能、项目级“活日志”目录,以及保留历史事故细节的田野笔记(field notes)。读完本篇,你将理解 LobeHub 如何用“通用层 + 项目层”双层失误目录沉淀验证经验,如何用 `supersedes` 声明管理检查项的替换关系,以及为什么自动化验证在 LobeHub 桌面端被明令禁止触发 OAuth 登录流程

gitblog_00696的博客 866
上一篇: [Application]表单验证 Validator v4.0
下一篇: [L-php]PHP功能模块——万能分页
hackart
博客等级 码龄16年 0粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值