我创建了一个名为Mytest的测试模块。在保存模块中的值时,我看到一个空白页面,上面写着"对不起!尝试访问受限文件。"。有人知道为什么会发生这种事吗。在这方面的任何帮助都是非常感激的。
vTiger错误"对不起!尝试访问受限文件。"最可能的原因是"config.inc.php"中的$root_directory值不正确或拼写错误。
要进行更正,请执行以下步骤:
Go to your vTigerCRM directory
Open “config.inc.php” with your favorite text editor
Go to line 86 and adjust $root_directory value to correct vTiger
directory. Note, that the directory must end with /. It should look
something like this – $root_directory = ‘/var/www/vtigercrm/’;
缓存内存也有问题。因此,请检查缓存文件中的模板文件。为此,请转到您的vTigerCRM目录。然后转到Smarty->templates_c。
在这里您将获得缓存文件的列表。删除此文件并检查您的问题是否已解决。
不用担心这个文件会被删除。
当试图包含自定义模块中的文件时,您会收到这些消息,因为Vtiger认为您包含的这些文件来自他们认为不安全的位置。
为了避免这个错误,您可以使用Vtiger中使用模块的标准方式,导航到它,如下所示:......./index.php?module=Mytest&action=index
。Vtiger将包含您的模块,现在您无需包含CRMEntity
和其他data
或utils
相关文件。所有这些都应该以这种方式可用,但请确保对$current_user
、$current_module
等使用global
语句。
另一种方法是编辑位于utils/CommonUtils.php
中的以下函数:
heckFileAccessForInclusion()
和checkFileAccess()
删除或注释掉这些函数中的die()
以修复它。
在Save.php文件中,只需添加一行即可。
$focus->column_fields['assigned_user_id'] = '';
之前
if($_REQUEST['assigntype'] == 'U') {
$focus->column_fields['assigned_user_id'] = $_REQUEST['assigned_user_id'];
} elseif($_REQUEST['assigntype'] == 'T') {
$focus->column_fields['assigned_user_id'] = $_REQUEST['assigned_group_id'];
}
听caspersky说:
转到/include/database/PearDatabase.php
并添加$adb->connect();
之后的$adb->setDebug(true);
我刚刚写了一个模块,收到了这个错误,因为我遗漏了以下内容,记录无法保存:$moduleInstance->setEntityIdentifier($fieldInstance);
检查它试图引用的文件权限和文件路径。
如果您想调试更多,请在索引文件中设置$adb->setDebug(true)并检查错误。
脑海中浮现出几件事:
-
您是否实际创建了modules/CustomModule目录并填充它(使用vtlib/ModuleDir/5.4.0中的模板,然后编辑CustomeModule.php的文件名和类)
-
检查模块类定义的情况,例如类CustomeModule与类自定义模块
-
如果您在开发中使用任何版本控制或符号链接的模块/Mytest代码,那么这可能会触发"对不起!尝试访问受限制的文件。"消息。
-
在模块设置脚本中,请确保已添加此行。
$module->initTables();$module->initWebservice();
检查是否存在所有语言文件。
用户模块允许管理员用户配置用户的语言,即使磁盘上没有语言文件。
为了快速验证这确实是问题所在:--编辑include/utils/CommonUtils.php并打印$realfilepath变量,并注释掉die();-在数据库中,"从xxx_users中选择不同的语言";
您可以通过下载所需的文件来解决此问题。
作为一个快速修复(阅读:破解):--转到include/language目录-将现有的语言文件复制为所需的文件。(可能不总是有效的-例如en_us到en_gb很好,但en_us对sp_es不好)
您似乎没有设置Smarty文件夹的写入权限
您的vtiger安装中可能缺少一个文件。
要确定哪一个是任务,您需要编辑include/utils/CommonUtils.php文件。用文本编辑器打开它,绕过第2755行,添加以下
echo “REAL: $realfilepath, ROOT: $rootdirpath”;
死前(对不起……)
这会在屏幕上打印出哪个是丢失的文件。
有时这个错误是由不存在的模块引起的,我在这里的意思是vtiger认为你有一个模块,但文件不在那里(可能是由于错误地迁移到新服务器引起的)。
- 禁用某些模块,然后重试,直到找到损坏的模块为止
在我的案例中,损坏的模块是VGS。
我在vtiger 7.3上解决了这个问题。(也许它适用于其他版本)
我在配置设置中获得了用户对vtiger的权限,并使用相同的设置再次更新了tham。。并将它们设置为更默认的设置。。他们所有的用户都出现了,我可以创建新的用户。。再次更改密码。
我建议注销,也许强制刷新并等待一段时间以使其正常工作。