老生常谈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 相关文章推荐
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
基于Zend的Config机制的应用分析
May 02 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
Jun 28 PHP
smarty模板引擎从配置文件中获取数据的方法
Jan 22 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
thinkphp实现附件上传功能
May 26 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
PHP大文件切割上传功能实例分析
Jul 01 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 危险函数解释 分析
2009/04/22 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
js动态切换图片的方法
2015/01/20 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
python之Socket网络编程详解
2016/09/29 Python
Python 占位符的使用方法详解
2019/07/10 Python
python中bytes和str类型的区别
2019/10/21 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
自我鉴定200字
2013/10/28 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
法语专业求职信
2014/07/20 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
增值税发票丢失证明
2015/06/19 职场文书
团委副书记工作总结
2015/08/14 职场文书
聘任通知书
2015/09/21 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python