老生常谈php中传统验证与thinkphp框架(必看篇)


Posted in PHP onJune 10, 2017

PHP(超文本预处理器)可用于小型网站的搭建,当用户需要注册登录是,需要与后台数据库进行匹配合格才能注册和登录,传统的方式步骤繁多,需要先连接数据库再用sql语句进行插入。

<?php
header("Content-type: text/html; charset=utf-8");
$conn =mysqli_connect("localhost","root","");
if (!$conn){
   echo "<script>alert('连接失败!');history.go(-1);</script>";
  } 
mysqli_select_db($conn,"liuyanban");
mysqli_query($conn,'SET NAMES utf8');
$password=$_POST['password'];
$username=$_POST['username'];
$face="yellow.png";
$result=mysqli_query($conn,"SELECT username from user1 where username = '$username'"); 
$a=mysqli_num_rows($result);
if($a)
{    
   echo "<script language=javascript>alert('用户名已存在!');location.href='reg.html'</script>";
}
else
{   
    $sql = mysqli_query($conn,"INSERT INTO user1(username,password,face)VALUES('1' ,'2','yellow.png')");
   if($sql)
   {
      echo "<script language=javascript>alert('注册成功!');location.href='login.html'</script>";
   }
   else
   {
      echo "<script>alert('注册失败!');location.href='reg.html'</script>";
   }
}
?>

以上是一个原生php注册实例,需要用mysqli_select_db()、mysqli_query()等函数先进行数据库连接,同时只有通过mysqli_query()函数才能执行sql语句,最后通过if语句进行类别判断和其他一系列限制操作。在原生php阶段实用性比较高,便于理解,过程很清晰,但是在一个项目工程中用这样的语句代码编写不便于相互交流,非常繁重复杂,所以需要运用thinkphp框架搭建项目才能使编码人员相互可以对接,也便于后期代码的修改和功能的添加。那么这里就不赘述框架详细了,所以在thinkphp框架下mvc模式中运用控制器(C)和模型(M)进行表单自动验证:

控制器中使用表单静态验证:

public function doreg(){
       $data=D('user');
       $d=array();
         $d['username']=$_POST['username'];
         $d['password']=$_POST['password'];
         $d['time']=date("Y-m-d H:i:s",time());
         $d['qq']=$_POST['qq'];
         $d['class']=$_POST['class'];
         $mess=$data->create();
         if (!$mess){    //表单自动验证
            $this->error($data->getError(),'Member/member',3);
         }else{
            $data->add();
            echo "<script language=javascript>alert('注册成功!');location.href='member.html'</script>";
           }
         }

模板中列出需要验证的字段:

<?php 
namespace Home\Model;
use Think\Model;
  class UserModel extends Model{
    protected $tableName ='user';   
    protected $_validate=array(                 //进行静态验证
     //array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
      array('username','require','用户名必填!'),
      array('username','','帐号名称已经存在!',0,'unique',1),
      array('repassword','password','两次密码不一致!',0,'confirm'),
      array('qq','require','qq必填!'),
      array('qq','','帐号名称已经存在!',0,'unique',1),
      array('class','require','班级必填!'),
      array('j_verify','require','验证码必须!'),
    );
     
  }
?>

这里以注册为例,登录类似,若验证错误,则运用$this->error($data->getError(),'Member/member',3);表单静态验证使用很方便。

以上这篇老生常谈php中传统验证与thinkphp框架(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP脚本数据库功能详解(中)
Oct 09 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
mysql数据库差异比较的PHP代码
Feb 05 PHP
关于Sphinx创建全文检索的索引介绍
Jun 25 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
PHP安装memcached扩展笔记
May 28 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 PHP
全面解析PHP面向对象的三大特征
Jun 10 #PHP
PHP查询分页的实现代码
Jun 09 #PHP
PHP简单留言本功能实现代码
Jun 09 #PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 #PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 #PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 #PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 #PHP
You might like
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
js 一个关于图片onload加载的事
2013/11/10 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
SVG实现时钟效果
2018/07/17 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
深入浅析python定时杀进程
2016/06/06 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
python机器学习库xgboost的使用
2020/01/20 Python
通过cmd进入python的步骤
2020/06/16 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
英国团购网站:Groupon英国
2017/11/28 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
九年级历史教学反思
2014/01/27 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
搞笑结婚保证书
2015/05/08 职场文书
婚宴领导致辞
2015/07/28 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
关于幸福的感言
2015/08/03 职场文书
公司保密管理制度
2015/08/04 职场文书
python实现双向链表原理
2022/05/25 Python