簡體   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