繁体   English   中英

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 认为您从他们认为相当不安全的位置包含这些文件。

为避免此错误,您可以使用......./index.php?module=Mytest&action=index使用模块的标准方式,如下所示: ......./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'];
}

附上卡巴斯基所说的:

转到/include/database/PearDatabase.php并添加$adb->setDebug(true); $adb->connect();$adb->connect();

我刚刚写了一个模块并收到此错误,这是因为记录无法保存,因为我遗漏了: $moduleInstance->setEntityIdentifier($fieldInstance);

有几件事浮现在脑海:

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

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

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

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

$module->initTables(); $module->initWebservice();

检查它试图引用的文件权限和文件路径。

如果您想在索引文件中调试更多 set $adb->setDebug(true) 并检查错误。

您似乎没有为 Smarty 文件夹设置写权限

检查所有语言文件是否存在。

即使语言文件不在磁盘上,用户模块也允许管理员用户配置用户的语言。

要快速验证这确实是问题所在:- - 编辑 include/utils/CommonUtils.php 并打印 $realfilepath 变量,并注释掉 die(); - 在数据库中,“从 xxx_users 中选择不同的语言”;

您可以通过下载所需的文件来解决此问题。

作为快速修复(阅读:hack):--转到包含/语言目录-将现有语言文件复制为所需的文件。 (可能并不总是有效 - 例如 en_us 到 en_gb 很棒,但 en_us 到 sp_es 不是)

您的 vtiger 安装中可能缺少文件。

要找出哪个是任务,您需要编辑 include/utils/CommonUtils.php 文件。 用文本编辑器打开它,绕过第 2755 行并添加以下内容

echo “REAL: $realfilepath, ROOT: $rootdirpath”;

死前(对不起....)

这将在屏幕上打印哪个是丢失的文件。

有时这个错误是由不存在的模块引起的,我在这里的意思是 vtiger 认为你有一个模块,但文件不在那里(可能是由于错误迁移到新服务器引起的)。

  • 禁用某些模块并重试,直到找到哪个模块损坏。

就我而言,损坏的模块是 VGS。

我在 vtiger 7.3 上解决了这个问题..(也许它适用于其他版本)

我在配置设置中获得了用户对 vtiger 的许可,并使用相同的设置再次更新 tham .. 并将它们设置为更多的默认设置.. 他们所有用户都回来了,我能够创建新用户 .. 再次更改密码。

我建议注销并强制刷新并稍等一下以使其正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM