ThinkPHP

TP5.0使用助手函数model出现\common\Model\类不存在

a 夏天 提交于 2019-11-30 02:49:41
在ThinkPHP5.0中有一个助手助手函数model(),可以实例化具体的模型,包括分层模型,只要传入类名(第一个参数),分层名(第二个参数)。这个函数其实是ThinkPHP框架Loader中的一个静态方法,可以打开"thinkphp\library\think\Loader"的380行左右查看,参数和实现方法可以自行查看。 问题 在本地也就是windows环境下,我通过使用model实例自定义的模型类正常调用方法,放到服务器上(linux),发现模型类找不到,出现类似“类不存在:app\common\Model\ArticleVote”。所以就去找Loader中的model方法,因为使用了model肯定是先去调用里面的静态函数,然后根据传入的参数实例化返回,有点像工厂模式。 思路 1. 检查使用model函数中,传入的模型名和分层名是否都存在,也就是在application项目里有没有对应的模型分层名字的文件夹。 2. thinphp5.0中项目文件夹需要是小写开头,比如model,controller。 3. 注意定义的模型类的命名空间,是否存在大小写混乱。 4. 出现"common\ModelArticleVote",注意"common"就是Loader中model方法走了else代码块。 解决 发现了是为什么有一个"common"是因为定义的类实例化的时候未找到

IIS7配置thinkphp5项目到public目录下

故事扮演 提交于 2019-11-29 21:44:51
有个项目,tp5写的,要配置到项目的public目录下,一开始报错了...后面删除了配置,重新配置成功了,记录一下过程 1.首先,将网站根目录变为你的public目录下 2.添加解析程序的CGI,这里选择你需要解析程序的php版本 3.安装插件 ,这个安装后,可以让你的路由开启重写.(apache的重写模块是rewrite.so,这个模块的作用应该大致=IIS的路由重写模块) https://www.iis.net/downloads/microsoft/web-platform-installer 4.重启iis dos命令输入iisreset 5.附加提示 :public目录下有一个web.config配置文件,这个是你变更项目目录自动就会创建的. 网上说要怎么怎么加,如果泥萌没有的化就加一个叭. <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="OrgPage" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^(.*)$" />

「ThinkPHP开发者周刊」第9期——缓存和权限

拟墨画扇 提交于 2019-11-29 12:44:44
[ 本周读数 ] 1423 ——2018年度最受欢迎开源软件评选 ThinkPHP 得票数 2018年度 最受欢迎开源软件评选 已于2018年12月2日截止投票,目前 ThinkPHP 共获得 1423 票,位居第十位,最终得票结果将于12月5日筛选刷票数据后公布。感谢各位Tper对我们的支持和信任! [ 新闻/资讯 ] ThinkPHP 5.1.30 版本发布——支持微秒时间字段写入 OpenCenter 3.0开发者预览版发布 看云小程序功能上线——支持阅读插件及自定义样式 [ 教程/技巧 ] 给 Web 开发者与管理员的缓存指南 Opcode 是啥以及如何使用好 Opcache 当 Redis 遇上 ThinkPHP5 ThinkPHP5练手 Demo 实战 PHP 进阶之路 - 亿级 pv 网站架构实战之性能压榨 浏览器缓存机制剖析 HTTP 缓存机制一二三 ThinkPHP 角色权限设计以及利用缓存判断权限 基于 token 的用户权限认证机制——以微信授权网页为例 fastadmin 根据角色组设置权限 [ 扩展/应用 ] think-casbin ——专为TP 5.1 打造的轻量级访问控制库,支持 RBAC/ACL 等权限控制 thinkcms-auth ——thinkphp5 权限认证 RBAC 加 行为日志 think-cache ——独立的缓存管理类库 [ 书籍

「ThinkPHP开发者周刊」第7期——性能分析和优化

◇◆丶佛笑我妖孽 提交于 2019-11-29 12:44:32
[ 本周读数 ] 71 ——ThinkPHP5的 Github 项目贡献者超过 71 个 截至目前为止, ThinkPHP5 核心框架在 Github 上的项目贡献者超过 71 个,已经超过了ThinkPHP 3.2 版本。有越来越多的开发者正在积极参与ThinkPHP5框架的PR,帮助官方发现了更多的潜在问题和解决了一些尚未解决的问题。 ThinkPHP 因这些贡献者的参与而变得更健壮和有竞争力。 [ 新闻/资讯 ] 如何有效提高ThinkPHP应用的性能? think-swoole 发布2.0.15版本——增加队列和WebSocket支持,改进全局中间件 [ 教程/技巧 ] 检测 PHP 应用的代码复杂度 使用phpstorm对docker中的脚本进行debug XDEBUG 从入门到精通 Tideways 和 xhgui 打造PHP非侵入式监控平台 使用 phpAnalysis 打造PHP应用非侵入式性能分析器 [ 扩展/应用 ] phploc 分析PHP代码结构 phpAnalysis PHP应用性能分析系统 think-notification ThinkPHP5 消息通知扩展 [ 书籍/专栏 ] 《 Web性能权威指南 》——涵盖Web开发网络及性能优化知识 全书以性能优化为主线,从TCP、UDP和TLS协议讲起,解释了如何针对这几种协议和基础设施来优化应用

公司网站有漏洞被入侵该怎么解决

杀马特。学长 韩版系。学妹 提交于 2019-11-29 12:44:19
2019年1月14日消息,thinkphp又被爆出致命漏洞,可以直接远程代码执行,getshell提权写入网站木马到网站根目录,甚至直接提权到服务器,该漏洞影响版本ThinkPHP 5.0、ThinkPHP 5.0.10、ThinkPHP5.0.12、ThinkPHP5.0.13、ThinkPHP5.0.23、thinkphp 5.0.22版本。 攻击者可以伪造远程恶意代码,对服务器进行post提交数据来利用漏洞,该漏洞产生的原因是继上次2019元旦前后爆出的网站漏洞后,又一次的致命漏洞。在thinkphp目录下的library文件夹下的think\request.php代码。如下图所示: 从上述代码中可以看出整个代码写的流程,首先打开网站会从app.php代码里将请求的网站地址使用check来进行解析,然后再经过patch类型对其进行深度的赋值.然后可以使用post方式提交数据到_method函数当中去,框架会对进行判断,然后对其调用传入的参数值,经过整个代码的循坏以及传入,就可以导致request的值给覆盖掉,从而产生远程代码执行,我们来构造恶意的代码,看看漏洞是如何使用的。 post地址:anquan/public/index.php?s=captcha POST内容:c=system&f=whoami&_method=filter 直接远程提交过去就会执行我们的命令

怎么修复网站漏洞 骑士cms的漏洞修复方案

故事扮演 提交于 2019-11-29 12:44:08
骑士CMS是国内公司开发的一套开源人才网站系统,使用PHP语言开发以及mysql数据库的架构,2019年1月份被某安全组织检测出漏洞,目前最新版本4.2存在高危网站漏洞,通杀SQL注入漏洞,利用该网站漏洞可以获取网站的管理员账号密码以及用户账号信息. 目前很多人才网站都使用的骑士CMS系统,受影响的网站较多,关于该网站漏洞的详情我们来详细的分析一下。骑士cms4.2最新版本使用了thinkphp的架构,底层的核心基础代码都是基于thinkphp的开发代码,有些低于4.2版本的网站系统都会受到漏洞的攻击。我们来本地服务器进行搭建骑士CMS系统的环境,首先去骑士官方下载最新版本74cms_Home_Setup_v4.2.111.zip,然后安装php版本为5.4,mysql数据库安装版本为5.6,我们把网站放到D盘的默认wwwroot里,解压ZIP包到目录当中去. 然后我们进行安装,调试,使其本地127.0.0.1可以打开网站进行漏洞的测试,该漏洞的利用条件是要网站拥有一些招聘的数据,有了数据才可以进行sql注入攻击,我们在自己安装的网站里新增加了许多招聘的岗位,如下图: 我们随便注册一个商户的账号,登陆商户用户中心,然后再发布一条信息到网站的前台。我们打开测试的网站地址,看到有一条招聘信息了,我们打开来 http://127.0.0.1/index.php?m=&c=jobs&a

ThinkPHP5配置Nginx实现兼容pathinfo模式访问

偶尔善良 提交于 2019-11-29 12:43:39
ThinkPHP项目,当使用Apache服务器时,Apache服务器本身支持pathinfo模式, ThinkPHP的4种访问模式 都没问题;当使用Nginx时,碰到问题,必须使用兼容模式访问。 查找很多文档,归纳原因及解决方案如下: 原因:低版本的Nginx不支持pathinfo模式;高版本的Nginx(大约0.7以后)支持,但默认没有开启。 解决解决方案: 1、开启Nginx的pathinfo模式: 在站点配置文件中找到 location ~ \.php$ {...} 那部分,把那个 $ 符号删除,然后在{}中添加以下代码: fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 保存,重启。这时Nginx已经支持pathinfo,访问www.xxx.com/index.php/admin/index/test查看结果 注意:如果模板文件中使用了U()函数,fastcgi_split_path_info部分要替换为 fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; 2、rewrite重写

thinkphp3.0基础如何在模板引擎中输出系统变量和系统常量

柔情痞子 提交于 2019-11-29 12:43:10
我们在上一节讲了在 “ thinkphp 中如何修改模版标签定界符 ”, 达到防止与JS混淆的目的。今天接着讲thinkphp的模板引擎,无忧主机(www.51php.com)小编准备今天讲在模板里面输出系统变量和系统 常量,大家都知道,我们在前面讲了给模板分配变量,然后在模板里面通过{$name}的方式来获取。这些称为常规变量,小编今天给大家讲的系统变量是在系 统内置的变量,不需要我们赋值分配。系统变量的输出必须以$Think.打头,也是用标签的方式来写,我们常见的系统变量包括 server,session,post,get,request,cookie,比如 {$Think.server.script_name } // 输出$_SERVER变量 {$Think.session.session_id|md5 } // 输出$_SESSION变量 {$Think.get.pageNumber } // 输出$_GET变量 {$Think.cookie.name } // 输出$_COOKIE变量 这里的标签定界符按照你的设置来写,系统常量也是如此,以$Think.打头比如 {$Think.APP_NAME} {$Think.THINK_PATH} {$Think.APP_PATH} 还有一些特殊的常量,由thinkphp系统内部定义: {$Think.version } /

Thinkphp整合最新Ueditor编辑器

故事扮演 提交于 2019-11-29 12:42:18
说到最新的富文本编辑器的确不少(ckeditor、fkeditor、ueditor),这些富文本编辑器如果单独使用基本上很方便,不需要做额外的配置,只要把官方的插件下载下来放到一个web容器中,看看 插件中提供的 index.html 里的代码就明白应该怎么调用了。因为富文本编辑器会经常涉及到文件、图片、视频资源的上传,如果本身所用到的框架或者是项目本身就有一个模块是专门来处理这一块儿的,对一些资源需要做特殊处理的,例如水印处理,对图片的大小处理(原图、缩略图),那么就设计到把富文本编辑器与你现有的上传模块结合起起来(富文本编辑器都有自己的上传模块)。这里值得一提的是ueditor 这个富文本编辑器,各个版本之间的差异比较大(1.2+ 、1.3+、1.4+),导致与现有的上传模块结合也存在差异。 这里笔者就采用最新版的ThinkPHP 与 最新的百度Ueditor 做整合。 首先访问百度Ueditor的官方地址: 下载列表 根据自己的需求下载不同的版本,这里采用的是1.4.4PHP utf8版本的。 Thinkphp 这里就不用说了,直接去tp官网下载最新的。 步骤: 前端部分: 把下载下来的富文本编辑器重新命名例如 ueditor ,把把放到项目的根目录(笔者建议你在根目录新建一个文件件或者是把它放到项目的Public目录下),这个根据个人对网站目录 的要求而决定,笔者是放在

ThinkPHP 框架培训资料

試著忘記壹切 提交于 2019-11-29 12:41:41
┎━ ThinkPHP 框架系统目录 ┃ ┝ ThinkPHP.php 系统公共文件 ┃ ┝ Common 公共文件目录 ┃ ┝ Tpl 框架系统模版目录 ┃ ┝ Lang 系统语言包目录 ┃ ┝ PlugIns 公共插件目录 ┃ ┗ Lib 系统基类库目录 ┃ ┝ Think 系统运行库(必须) ┃ ┝ Com 扩展类库包(非必须) ┃ ┗ ORG 扩展类库包(非必须) ┃ ┝━ App App 项目目录 ┃ ┝ index.php 项目入口文件(可任意放置) ┃ ┝ Cache 模版缓存目录 ┃ ┝ Common 公共文件目录(非必须) ┃ ┝ Conf 项目配置目录 ┃ ┝ Data 项目数据目录 ┃ ┝ Html 静态文件目录(非必须) ┃ ┝ PlugIns 插件目录(非必须) ┃ ┝ Tpl 模版文件目录 ┃ ┝ Lang 语言包目录(非必须) ┃ ┝ Logs 日志文件目录 ┃ ┝ Temp 数据缓存目录 ┃ ┗ Lib 应用类库目录 ┃ ┝ Action 控制器(模块)类目录 ┃ ┝ Model Model 类文件目录 ┃ … 下面的应用目录可根据需要选择和定义 ┃ ┝ Exception 异常类库目录 ┃ ┝ Common 公共应用类目录 ┃ ┗ Help 助手类目录 ┃ ┃ … 更多项目目录(和 App 目录类似,每个项目采用独立目录,便于部署) ┃ ┝━