老生常谈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 相关文章推荐
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
PHP 微信支付类 demo
Nov 30 PHP
Smarty模板变量调节器用法分析
May 23 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
CodeIgniter框架数据库基本操作示例
May 24 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 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安装为Apache DSO
2006/10/09 PHP
建立动态的WML站点(一)
2006/10/09 PHP
PHP函数utf8转gb2312编码
2006/12/21 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
2016/06/05 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
python实现画循环圆
2019/11/23 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
护士进修自我鉴定
2014/02/07 职场文书
三八节活动简报
2015/07/20 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS