thinkphp
sunsineq
这个作者很懒,什么都没留下…
展开
-
Centos / ubuntu环境 PHP环境下宝塔安装pdo_sqlsrv扩展(sqlserver扩展)
宝塔面板的 PHP 安装路径为 /www/server/php/ 且支持多个 PHP 版本共存,所以安装 PHP 扩展的方法与网上那些示例略有不同。( pdo_sqlsrv 扩展目前最新的版本可以通过此网址查看 http://pecl.php.net/package/pdo_sqlsrv)实测在centOS6.8+宝塔(pytohn2版本)环境下,由于gcc组件是4.4版本,会造成安装失败,请谨慎操作。#使用对应php版本的phpize。#下载pdo_sqlsrv扩展包。#检查扩展是否安装成功。原创 2024-05-22 11:31:46 · 887 阅读 · 2 评论 -
thinkphp 导出电子表格【动态表头+动态数据】
在项目中,把数据导出到Excel,有时会表头信息是动态的,数据是动态的,在之前发布过一篇文章是,固定头部,动态数据的导出数据表格的文章。要注意单元格下标这块,处理不好,会出现 Invalid cell coordinate(无效单元格坐标)的错误。今天做一个,表头是动态的,数据是动态的导出数据表格,在项目中会更加的实用。原创 2023-09-27 13:47:19 · 300 阅读 · 0 评论 -
tp5 类型错误: Argument 1 passed to think\response\Html::__construct() must be an instance of think\Cooki
在class_exists($class) 后面加上 && is_array($data) 即可。找到并打开:thinkphp\library\think\Response.php 文件。找到:创建Response对象。原创 2023-07-27 09:52:39 · 1243 阅读 · 0 评论 -
NGINX & PHP Cookie 会话中 PHPSESSID 缺少 HTTPOnly、Secure 属性解决方案
基于安全的考虑,需要给cookie加上Secure和HttpOnly属性,HttpOnly比较好理解,设置HttpOnly=true的cookie不能被js获取到,无法用document.cookie打出cookie的内容。cookie中的Secure指的是安全性。在WEB应用中,对于敏感业务,如:登录或者付款,需要使用HTTPS来保证内容的传输安全,而在用户成功获得授权之后,获得的客户端身份cookie如果没有设置为Secure,那么很有可能会被非HTTPS页面拿到,从而造成重要的身份泄露。原创 2023-06-25 23:40:54 · 3206 阅读 · 0 评论 -
thinkphp6配置连接微软的sqlserver数据库
LNMP环境搭建(Centeros7.7下php7.3安装,php安装sqlsrv扩展)转载 2023-01-05 17:44:15 · 1795 阅读 · 0 评论 -
thinkphp6导入Excel表格数据[亲测有效]
引入类文件:phpthink5.1以后可以使用这种方式引入vendor目录类文件。使用composer安装phpexcel。原创 2022-08-08 22:31:23 · 1507 阅读 · 0 评论 -
TP5连接sql server报错Invalid handle returned.解决方案
SQLsever数据库是微软的数据库,通常都是使用C#来配合使用开发,但是今天有个项目比较特殊,需要使用PHP来操作SQLsever,PHP对SQLsever数据库也是支持的,但是需要对应的安装一些扩展才能支持操作SQLsever数据库,今天先不说如何安装扩展,先说这个链接的时候报Invalid handle returned.错误的解决方案。这是可能是因为sql server的MSSQLSERVER的部分协议未开启导致的,解决方案:1.打开SQLsever配置管理器2.打开MSSQLSERVER的协议,启转载 2022-07-05 13:36:19 · 928 阅读 · 0 评论 -
thinkphp5实现上下分页
从页面获取章节id即chapterid通过chapterid查询数据库中的小说的id即novelid根据novelid查询小说对应的所有章节上一页的写法思路查询数据库中的章节表即 chapter 表 根据chapterid字段进行倒序查询,然后根据页面中获取到的chapterid和数据库中的chapterid比较,获取大于页面传来的chapterid的第一个字段下一页思路和上面差不多如chapter表里面有3个数据,chapterid分别是1 2 3 默认页面为https:...转载 2022-04-15 09:18:17 · 365 阅读 · 0 评论 -
thinkphp操作中怎么取_initialize()中定义的变量值?
thinkphp操作中取_initialize()中定义的变量值是再寻常不过了,然而还是有很多人不懂得如何实现。 请看下面示例,如何才能在index中使用。本示例将教会您使用_initialize()中定义的变量。 class DownAction extends Action { public function _initialize(){ $test='thinkphp'; $this->...原创 2022-03-26 13:40:02 · 838 阅读 · 0 评论 -
php中::(双冒号)是什么意思?和PHP中的->有什么区别
php中::(双冒号)是什么意思?和PHP中的->有什么区别 PHP中的:: (双冒号)是一种内置的语法解析符号,又叫做“范围解析操作符”。 :: 通常是用来访问静态成员的,也就是说可以不用实例化对象直接使用 class Test{ public static $test = 1; public static function test(){ } } Test::$test; //获取$t...转载 2022-02-14 15:51:18 · 1395 阅读 · 0 评论 -
thinkphp6数据集
数据库的查询结果默认返回数据集对象。// 获取数据集$users = Db::name('user')->select();// 遍历数据集foreach($users as $user){echo $user['name'];echo $user['id'];}返回的数据集对象是 think\Collection ,提供了和数组无差别用法,并且另外封装了一些额外的方法。在模型中进行数据集查询,全部返回数据集对象,但使用的是 think\model\Collect...转载 2022-02-13 19:09:06 · 1011 阅读 · 0 评论 -
thinkphp6 报错 Driver [Think] not supported. 解决办法
执行 composer require topthink/think-view 命令安装视图模板报错:转载 2022-02-13 14:23:24 · 421 阅读 · 0 评论 -
php 7.4 Array and string offset access syntax with curly braces is deprecated
php 7.4 Array and string offset access syntax with curly braces is deprecated1、位于TP框架 thinkphp\library\think\db\Query.php 568 line$seq = (ord($value{0}) % $rule['num']) + 1;if (function_exists($type)) { // 支持指定函数哈希 $seq = (ord(substr($type...转载 2022-01-26 13:28:27 · 1402 阅读 · 0 评论 -
TP5 验证码生成及问题总结
1.利用TP5框架如何生成验证吗? 利用TP5框架生成验证码需要安装captcha扩展,可以利用composer来安装: composer require topthink/think-captcha 安装完成之后会呈现如上的目录。captcha扩展安装完成之后,就可以进行下一步操作 配置comfig.php文件: 在html文件需要验证码的地方输入{:captcha_img()}; 验证就生成完毕了。 效果预览 2.如何刷新验证码...原创 2021-06-09 17:49:06 · 535 阅读 · 0 评论 -
tp报错:致命错误: Call to undefined function captcha_src()的解决方案
tp报错:致命错误: Call to undefined function captcha_src()的解决方案原因分析:知道为啥错吗?因为你的tp项目的vendor里没有任何东西正常情况下:需要composer或者从网上下载tp中的验证码类文件才能使用,从官网上下载的tp框架默认是没有验证码类文件的,需要自己手动下载。这样才能够使用验证码~解决方案:具体请参考:https://www.cnblogs.com/elliotnoob/p/6672172.html.转载 2021-06-09 17:46:59 · 2208 阅读 · 0 评论 -
thinkphp官方类库
验证和权限控制PHP-Casbin casbin/casbin—— https://github.com/php-casbin/php-casbin6.0 Authorization casbin/think-authz—— https://github.com/php-casbin/think-authz5.1访问控制库(Casbin)扩展 casbin/think-adapter —— https://github.com/php-casbin/think-casbinRBAC权限认证 zo.原创 2021-05-31 21:08:12 · 556 阅读 · 0 评论 -
sitemap.xml格式实例说明
<?xml version="1.0" encoding="utf-8"?><!-- XML文件需以utf-8编码--><urlset><!--必填标签--> <url> <!--必填标签,这是具体某一个链接的定义入口,每一条数据都要用<url>和</url>包含在里面,这是必须的 --> <loc>http://www.yoursite.com/you.转载 2021-05-31 21:02:10 · 798 阅读 · 0 评论 -
thinkphp5.0 分页中伪静态的处理
thinkphp5.0 分页中伪静态的处理1、修改文件\thinkphp\library\think\Paginator.php(此文件用于分页)isurl是否为伪静态 加入isurl用于判断是否使用伪静态分页 */ protected $options = ['var_page' => 'page','path' => '/','query' => [],'fragment' => '','isurl'=>false]; 2)行137加入是.原创 2021-05-25 13:15:44 · 468 阅读 · 0 评论 -
使用thinkphp 5内置验证功能及自定义验证方法
一个独立的系统,仅仅只在前台进行表单验证是远远不够的,在处理 PHP 表单时提交时需重视安全性,我们需对 HTML 表单数据进行适当的验证对于防范黑客很重要。 使用ThinkPHP 5框架做项目时,如何使用框架自带的验证机制和框架内自定义验证规则 来比较好地做好项目,下面我们以实际项目讲解:(以下代码截取自tp5开源商城系统WSTMart,大家可自行下载)。使用TP5框架验证 (1)在需要使用验证的模块下创建validate目录,在目录下创建验证文件。 (2)验证规则的定义验证多个规则.原创 2021-05-07 11:12:54 · 1262 阅读 · 2 评论 -
TP5.0框架下的think-captcha验证码扩展包
之前在进行前端登陆页面实现的过程中,用到了TP5.0自带的think-captcha验证码包,现在在这里补充上介绍和用法。首先,如果你是TP5.05之前的版本,需要自己去下载captcha,如果想从通过命令行直接下载需要安装composer,5.05之后的版本会自带think-captcha包。thinkphp\vendor\topthink\think-capcha1.html中验证码的显示:<div>{:captcha_img()}</div>或&l转载 2021-05-07 10:54:30 · 873 阅读 · 0 评论 -
thinkphp5.1接入银联支付
最近项目中要用到银联支付,所以记录一下开发过程:1.先去银联申请接口https://open.unionpay.com/tjweb/api/dictionary?apiSvcId=453,我用的是手机网页支付(WAP支付)2.去个人中心查看产品和测试参数这些测试数据写到config.php里,稍后会用到。 //银联支付部分配置信息(具体配置查看extend/unionpay/sdk/acp_sdk.ini) 'unionpay_config' =...转载 2021-04-28 09:07:09 · 1194 阅读 · 1 评论 -
thinkphp的runtime设置777还是报没有权限
thinkphp的runtime设置777还是报没有权限php权限错误php没有权限nginx权限session_start(): open(/var/lib/php/session状态码是500有返回值最近新买了一台服务器,然后搭好环境就用了,之前也没发现什么问题,这几天总是发现ajax调用接口的时候有返回值,但是状态码是500,度娘一下说是权限问题,然后去服务器上查看runtime目录是777权限,当时急用,没多想就有chmod -R 777 runtime了一下,然后就好了。...转载 2021-04-28 08:54:33 · 535 阅读 · 0 评论 -
ThinkPHP连接sql server数据库
按照以下方法配置,完全可以正确链接sql server数据库,此文章由博主亲自项目测试所写。亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧。如果你是用THINKPHP连接,那么最重要的就是配置问题。我的PHP版本是5.3,就说5.3的方法吧1、首先要下载php_pdo_sqlsrv_53_ts_vc9.dllphp_sqlsrv_53_ts_vc9.dll下载地址:http:...原创 2021-03-16 11:41:19 · 1030 阅读 · 0 评论 -
thinkPHP5.1模型User设计
thinkPHP5.1模型User设计创建一个User类,再引入think\Model,让User类继承Model例:<?phpnamespace app\index\model;use think\Model;class User extends Model{}注:模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写 数据表前缀在database.php的prefix设置,前缀定义例: think_模型设..原创 2021-02-23 14:39:27 · 245 阅读 · 0 评论 -
ThinkPHP之__construct()和__initialize()
ThinkPHP之__construct()和__initialize()ThinkPHP中的__initialize()和类的构造函数__construct()网上有很多关于__initialize()的说法和用法,总感觉不对头,所以自己测试了一下。将结果和大家分享。不对请更正。首先,我要说的是1、__initialize()不是php类中的函数,php类的构造函数只有__construct().2、类的初始化:子类如果有自己的构造函数(__construct()),则调用自己的进行初始化,如转载 2021-02-23 13:46:05 · 358 阅读 · 0 评论 -
thinkphp 5.0 验证规则
官方文档 - 内置规则系统内置的验证规则如下:格式验证类:规则 说明 示例 require 验证某个字段必须 ‘name’=>’require’ number 或者 integer 验证某个字段的值是否为数字(采用filter_var验证) ‘num’=>’number’ float 验证某个字段的值是否为浮点数字(采用filter_var验证) ‘num’=>’float’ boolean 验证某个字段的值是转载 2021-02-22 16:45:32 · 366 阅读 · 0 评论 -
用命令行创建tp5的模型和控制器时,提示tp5 Could not open input file: think问题
用命令行创建TP5的控制器以及模型等输入命令:php think make:controller api/Index错如下:Could not open input file: think了半天 , 原来是不知道哪个天杀的把跟目下的think文件删了。把think文件放入根目录,问题解决。...转载 2021-02-22 16:37:19 · 835 阅读 · 0 评论 -
thinkphp 数组层级缩进转换
公共函数:/** * 数组层级缩进转换 * @param array $array 源数组 * @param int $pid * @param int $level * @return array */function list_to_level($array, $pid = 0, $level = 1){ static $list = []; foreach ($array as $k => $v) { if ($v['pid'] == $pi原创 2021-02-20 15:37:43 · 163 阅读 · 0 评论 -
ThinkPHP5 验证器validate的使用总结(详细)
==============================================================================ThinkPHP5 验证器validate的使用总结(详细)==============================================================================一、验证器总结(此处把控制器的验证部分全部放到validate中进行验证)(一)缺点:适用于一个验证,多个验证时,不易于修改原创 2021-02-20 13:10:18 · 4179 阅读 · 4 评论 -
thinkphp 在列表中直接编辑信息(ajax操作)
html: <input type="text" value="{$list.comp}" onblur="changeTableVal('bianfang','id','{$list.id}','comp',this)" style="text-align: left; width:150px; margin-top: 10px;"/>js:// 修改指定表的指定字段值function changeTableVal(table,id_name,id_value,field,o原创 2021-02-17 17:47:30 · 252 阅读 · 0 评论 -
thinkphp 导出数据到Excel表格中
代码public function expert() { vendor("PHPExcel.PHPExcel"); $list=db('alpacooperation')->field('*')->select(); $objPHPExcel = new \PHPExcel(); $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);原创 2021-01-15 14:58:05 · 520 阅读 · 0 评论 -
thinkphp5 批量导入excel表格数据
1.首先需要下载PHPExcel 插件包,解压后放入vendor文件夹中2.代码/** * 批量导入数据 */ public function add(){ if ($this->request->isPost()) { vendor("PHPExcel.PHPExcel"); Loader::import('PHPExcel.PHPE原创 2021-01-15 14:53:20 · 1144 阅读 · 0 评论 -
thinkphp 打包并下载
thinkphp 打包文件,并下载 /** * 打包下载 * 注意文件路径都是相对路径 * 不能使用ajax的方式 * @return [type] [description] */ public function allzip(){ $param = $this->request->param(); $ids = explode(",",$param['id']); //原创 2021-01-15 14:44:01 · 384 阅读 · 0 评论 -
thinkphp 下载txt文档
下载单个txt文档 /** * 下载单个txt文件 * @return [type] [description] */ public function download(){ $param=input("id/d"); //获取数据 $data=db("seofile")->where("id",$param)->find(); $file=ROOT_PATH.'public'.'原创 2021-01-15 14:37:09 · 418 阅读 · 1 评论 -
php使用PHPAnalysis提取关键字中文分词
需求:做SEO的keywords时,需要从标题或者正文里提取关键字1.PHPAnalysis下载地址https://github.com/feixuekeji/PHPAnalysis下载后解压放到extend目录下(以tp5为例,其他目录也行)2.封装<?php/** * @auther: xxf * Date: 2019/8/19 * Time: 11:04 */ namespace WordAnalysis; /** * 中文分词提取关键字 ..原创 2020-12-01 11:01:41 · 595 阅读 · 0 评论 -
tp5 Nginx隐藏index.php的配置方法
tp5 Nginx隐藏index.php的配置方法location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; }}如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中domainname是所在的目录名称location /domainname/ { if (!-e $request_filenam.原创 2020-11-21 21:54:01 · 1712 阅读 · 0 评论 -
tp5怎么防sql注入 xss跨站脚本攻击呢?
如题:tp5怎么防sql注入 xss跨站脚本攻击呢?其实很简单,TP框架中有自带的,在application/config.php中有个配置选项:框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则:// 默认全局过滤方法 用逗号分隔多个'default_filter' => 'htmlspecialchars,addslashes,strip_tags',htmlspecialchars:防XSS攻击,尖括号等转义过滤addslashes:防SQL注入,..转载 2020-08-31 08:44:49 · 767 阅读 · 0 评论 -
tp5用户输入过滤解决方案
在application下的config.php配置文件中加入默认的过滤方式。设置htmlspecialchars后,所有的用户输入都会被转换成实体存储到数据库// 默认全局过滤方法 用逗号分隔多个,常见的安全过滤函数包括stripslashes(转换反斜杠)、htmlentities(会将中文转换成乱码)、htmlspecialchars(将html标签转换成实体)和strip_tags(过滤掉标签)等‘default_filter’ => ‘htmlspecialchars’,在某些原创 2020-08-31 08:36:05 · 1450 阅读 · 0 评论 -
thinkphp无法加载模板跳向404页面
无法加载模板跳向404页面/thinkphp/library/think/Dispatcher.class.php中176行 // 加载模块的扩展配置文件 load_ext_file(MODULE_PATH); }else{ header("Location:/404.html");die; // E(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME); }加上h...转载 2020-08-26 08:02:17 · 723 阅读 · 0 评论 -
ThinkPHP5.0的nginx配置隐藏入口文件index.php
只需要在配置文件nginx.conf添加下面这串代码location / {if (!-e $request_filename) {rewrite ^/(.*)$ /index.php/?s=$1 last;break;}}如下图红色框框部分宝塔linux面板的nginx隐藏入口文件,需要在网站--...原创 2020-07-08 21:03:46 · 767 阅读 · 0 评论