• phpcms v9升级后台无法上传缩略图的原因分析


    phpcms V9 是目前国内使用人数最多的一款开源免费的CMS系统,正是由于他的免费性,开源性,以及其自身的功能性比较强大,所以倍受许多站长朋友们的亲来,以及许多的公司的喜欢。phpcms也为了完善程序漏洞,官方人员会经常性的发布一些程序补丁,让用户使用。防止一些特殊群体,通过程序的漏洞去攻击别人的网站。不过这次更新了phpcms v9之后,发现网站后台上传缩略图的时候,会出现无法上传的现象,浏览器提示undefined错误,经过一方面的测试,发现这个错误,只有一些火狐核心的浏览器才会出现,IE,360这种的IE核心浏览器上传一切正常。这是什么原因造成的呢,我们通过程序去排查一下为何后台无法上传缩略图,并出现undefined的错误。 

    济南网站建设中phpcms v9升级,后台无法上传缩略图,提示undefine。

      一、phpcms V9 后台无法上传缩略图的处理方法

      首先打开网站程序路径中的,phpcms---modules----attachment----attachments.php文件,找到attachments.php文件中的50行---53行代码,这里有一段判断是否登录的程序,我们把这段话删掉就可以了。如图所示  

    网站程序代码图示 

      通过删除非常简单的一段话,就能解决类似火狐核心的浏览器,后台无法上传缩略图的错误。接下来我们详细分析为什么这句话,就会导致后台无法上传缩略图呢,以后如果大家遇到程序上面的错误,也可以通过下面的方法去分析,一定要学会灵活使用,程序都是死的,而我们程序员的思维是灵活的。

      注:如果您对为何会出现无法上传缩略图错误不感兴趣,以下内容均可略过不看!

      二、phpcms V9 后台无法上传缩略图的原因分析

      既然知道是这句话的原因了,那么我们就看看为何是这句话导致了无法上传缩略图。

      if(isset($_POST['dosubmit'])){ //判断是否点击了提交按钮

      //判断是否登录

      if(empty($this->userid)){ //如果useid为空,则直接退出。($this指类本身,是由attachments类在构造函数制定的。)

      exit('0');

      }

      既然是判断了userid为空就退出,那我们无法上传缩略图,肯定是被判断为空了。我们把$this->userid输出一下看看。

    输出$this->userid值图示

      从图中可以看出,这里输出的是1,也就是说$this->userid是为1的,1肯定不是空值了。那怎么会出现退出现象了呢。我们再换一个方法测试,看看

      if(empty($this->userid)){

      exit('0');

      }

      这句话是否执行了。

      //判断是否登录

      if(empty($this->userid)){

      echo '';

      exit('0');

      } else{

      echo '';

      }

      如图所示:

    判断是否执行empty($this->userid)图示

      我们看到,程序确实执行了,跳出的动作。看来火狐核心的浏览器还是把“1”当成了empty来处理,所以导致了,phpcms V9在使用火狐核心的浏览器时,后台无法上传缩略图的现象。

  • 相关阅读:
    最小的K个数
    数组中出现次数超过一半的数字
    合并排序
    一只小蜜蜂...
    从零开始学springboot笔记(三)-Spring boot之热部署之Springloaded(仅做了解,实际开发中不用它)
    从零开始学springboot笔记(二)-Spring boot返回json数据(中文无乱码)
    从零开始学springboot笔记(一)-Spring boot之Hello Word
    IDEA2018永久破解版下载与安装
    $.ajaxSettings.async = false;是什么意思?
    嘿嘿
  • 原文地址:https://www.cnblogs.com/caster/p/3929223.html
Copyright © 2020-2023  润新知