很多同学在安装discuz插件、Discuz模板或disucz分类信息的时候会出现数据类型错误,请返回的问题,下面我们来分析下为什么Discuz! X会出现“数据类型错误,请返回”的错误。
分析原理:我们今天用安装模板提示“数据类型错误,请返回”的错误来分析,打开导入风格模板的代码文件:/source/function/function_importdata.php,查看其中的函数 import_styles(),其中两处调用getimportdata的参数都是固定的getimportdata('Discuz! Style'),在/source/function/function_admincp.php中找到getimportdata函数发现他会将第一个参数也就是'Discuz! Style',与模板目录下xml文件中id为Title的item值进行比较,如果不同就会提示错误“数据类型错误,请返回”,知道原理了,下面就有解决方案了。
1、打开模板目录下的 XML 文件,找到ID为Title的item项,将其固定为如下写法就OK了。
<item id="Title"><![CDATA[Discuz! Style]]></item>
复制代码
- 2、一些网站在搬家后出现“数据类型错误,请返回”,很可能是服务器上PHP.INI 的 zend.ze1_compatibility_mode问题,把值修改为 OFF。
- 可上传一个test.php 里面写<?php echo ini_get(‘zend.ze1_compatibility_mode’);?>,输出0来判断配置是否正确。
解决方法:查找 php.ini 里的如下项并将其设置为off,然后重启 Web 服务 (IIS或Apache)
zend.ze1_compatibility_mode = Off
复制代码
- 3、目录权限存在问题,在应用中心安装插件或模板都需要对应目录有可写权限的,否则安装一样会出错无法识别数据错误。
- 解决方法:检查data目录权限及template和source\plugin目录权限为777或可读可写。
这样基本可以解决问题。