2011-06-07 74 views
2

當我登錄到我的drupal頁面時。它顯示了以下錯誤在第1行Drupal中的代碼問題

Parse error: syntax error, unexpected '<' in /document_root/sites/all/modules/rules/rules/modules/php.rules.inc(107) : 

的eval()'d代碼時,我只是想出的特定頁面有該功能沒有問題。下面就是錯誤標記功能..

function rules_php_eval_return($code, $arguments = array()) { 
    extract($arguments); 
    return eval($code); 
} 

可以在任何一個可以建議我有什麼問題,可能是!它是drupal 6.x版本。

+0

我不知道Drupal:應該通過哪個函數?何時使用?腳本指向那裏是因爲錯誤在那裏發生,如果函數是核心函數,它肯定是正確的,這是輸入有錯誤的地方。你應該看看。 – 2011-06-07 13:38:33

+0

值得注意的一點是這個問題是不是來當文件在我的本地服務器,但是當它移動到聯機服務器它上升這個問題.. – Arung 2011-06-07 13:41:56

+0

你可能正在使用你的規則之一中自定義的PHP和有錯誤的地方在那裏。檢查你的觸發規則。如果檢查一個值,嘗試用簡單的語句替換自定義的PHP,例如'return TRUE',如果輸出值則使用'print/echo' – Laxman13 2011-06-07 13:57:13

回答

1

我不知道Drupal的,但我認爲,$代碼包含類似:

$code = '<?php $someCode;'; 
eval($code); 
//Produces : Parse error: syntax error, unexpected '<' in file(1) : eval()'d code on line 1 

錯誤是告訴你,$代碼包含語法錯誤,(也許是phptag)

你一個echo $代碼來檢查錯誤。

0

eval'd時壞習慣的PHP代碼使用PHP模塊(PHP過濾器) 如果可以,無論如何訪問的網站,去觸發規則和規則集頁面,找到如有規則燒成一個自定義網站內嵌通常是php代碼。 在規則中放置php代碼是白癡的風格。要麼你應該創建一個模塊或使用自己的規則:)

如果您不能訪問該網站,進入/ modules目錄,別的地方移動「PHP」文件夾中。然後你將能夠訪問網站。快速刪除錯誤代碼並替換文件夾。 然後,開始調試它。

2

我來到翻過這樣的錯誤,當我從粘貼Drupal站點一個PHP代碼片段成塊,以顯示子菜單。這些子菜單是在foreach循環中檢測和分配的,但由於沒有任何子菜單,菜單變量保持未分配狀態,因此也未聲明。

我明顯的解決辦法是foreach循環之前指定一個空字符串到菜單變量。

0

我只是有這個嘗試的過程從HTTP請求返回的數據同樣的問題。我使用的是simplexml_load_string,但HTTP響應是一個錯誤,所以數據沒有格式化爲XML,從而導致simplexml出錯(傳播)。我的信息與你的一樣,「X行上的文件錯誤; X行上的eval'd()代碼」。所以,它可能不一定是你的代碼中的錯誤,或者甚至是eval'd代碼。

雖然它看起來像你沒有了以下問題,它是值得記住的好。在eval'd代碼中聲明變量時,它們的範圍與文件中的內聯一樣。類似地,在eval代碼之前的變量在其中可用,並且可能導致衝突或無意中重新分配(例如嵌套循環中的$ i)。