老生常谈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下删除字符串中HTML标签的函数
Aug 27 PHP
drupal 代码实现URL重写
May 04 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
php函数连续调用实例分析
Jul 30 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
php封装的表单验证类完整实例
Oct 19 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
PHP写的简单数字验证码实例
May 23 PHP
php抽象方法和普通方法的区别点总结
Oct 13 PHP
PHP code 验证码生成类定义和简单使用示例
May 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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP的引用详解
2015/02/22 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
numpy找出array中的最大值,最小值实例
2018/04/03 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
python yield关键词案例测试
2019/10/15 Python
Python 定义只读属性的实现方式
2020/03/05 Python
如何使用python切换hosts文件
2020/04/29 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
一份报关员的职业规划范文
2014/01/08 职场文书
万年牢教学反思
2014/02/15 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
婚礼答谢礼品
2015/01/20 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技