Vtiger自定义模块:“;很抱歉尝试访问受限制的文件&”;


Vtiger Custom Module : "Sorry! Attempt to access restricted file."

我创建了一个名为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和其他datautils相关文件。所有这些都应该以这种方式可用,但请确保对$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)并检查错误。

脑海中浮现出几件事:

  1. 您是否实际创建了modules/CustomModule目录并填充它(使用vtlib/ModuleDir/5.4.0中的模板,然后编辑CustomeModule.php的文件名和类)

  2. 检查模块类定义的情况,例如类CustomeModule与类自定义模块

  3. 如果您在开发中使用任何版本控制或符号链接的模块/Mytest代码,那么这可能会触发"对不起!尝试访问受限制的文件。"消息。

  4. 在模块设置脚本中,请确保已添加此行。

$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。。并将它们设置为更默认的设置。。他们所有的用户都出现了,我可以创建新的用户。。再次更改密码。

我建议注销,也许强制刷新并等待一段时间以使其正常工作。