老生常谈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面向对象——访问修饰符介绍
Nov 08 PHP
php实现的一个很好用HTML解析器类可用于采集数据
Sep 23 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
Nov 03 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
PHP也能干大事 随机函数
Apr 14 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
Yii2框架类自动加载机制实例分析
May 02 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
用python生成1000个txt文件的方法
2018/10/25 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
使用python求解二次规划的问题
2020/02/29 Python
生物科学专业个人求职信范文
2013/12/07 职场文书
进口业务员岗位职责
2014/04/06 职场文书
外国人来华邀请函
2015/01/31 职场文书
铁人观后感
2015/06/16 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
python读取mnist数据集方法案例详解
2021/09/04 Python