2012-02-09 3 views
2

と異なっている...行動は、私は砂糖CRM 6.2に砂糖5.2から移行すると、私はopen_basedirのを使用していますし、それが動作しませんopen_basedirの

私はコード内の問題を検出しました。これは

問題のファイルがあるモジュール/ ModuleBuilder /パーサ/ビュー/ History.phpライン72

(disactivatedオープンBASEDIRで)代わりにブランクアレイの(open_basedirのと)がfalseを返す関数だグロブ(ディレクトリが読めないなどの)読み込みエラーの 停止、によって:
foreach (glob($this->getFileByTimestamp('*')) as $filename) 
     { 
      if(preg_match('/(\d+)$/', $filename, $match)) { 
       $this->_list [] = $match[1]; 
      } 
     } 

(グロブリターンnullの場合は、エラーがある)私はグロブhttp://fr2.php.net/globのドキュメントを探したとき

、フラグがある* GLOB_ERR *デフォルトのエラーは無視されます。

しかし、変更されていないため、結果はfalseでエラーはありません。

オープンベースディレクトリの設定は、アプリケーションパスを許可し、/ tmpやは、/ usr/share

誰かがコードを変更せずにその問題を解決するために(またはどのようにアップグレード安全なコードを追加する)方法を知ってい

編集

glob関数によって見えたパスが開いてbasedirのパス内に配置され、それはSugarCRMのディレクトリにあります。 glob関数は、一致するファイルがない場合にのみfalseを返します(空の配列の場合と同じ場合にはオープンベースのdirなしの動作)。どちらの場合にもファイルがある場合は、配列が移入されます。

+0

ある[どのように私はPHPのopen_basedirの制限を緩和することができますか?](http://stackoverflow.com/questions/223800/how- can-i-relax-phps-open-basedir-restriction) – rdlowrey

+0

いいえ私はいくつかの情報を追加していません。 –

+0

あなたの質問を解決する方法を教えてもらえれば関係なく、 'open_basedir'の制限によってディレクトリへのアクセスが妨げられた場合、' glob'も他の関数もそのディレクトリにアクセスすることはできません。 ** open_basedirの設定を変更する必要があります。** – rdlowrey

答えて

2

読むこのバグに関するhttps://bugs.php.net/bug.php?id=47358

解決策の可能性のある重複

$temp = glob($this->getFileByTimestamp('*')); 
if (is_array($temp)) 
foreach ($temp as $filename) 
     { 
      if(preg_match('/(\d+)$/', $filename, $match)) { 
       $this->_list [] = $match[1]; 
      } 
     } 
+0

ありがとうございますそれはちょうど私の問題です –

+0

問題はsugarcrm 6.4で解決されていますhttps://github.com/sugarcrm/sugarcrm_dev/blob/master/modules/ModuleBuilder/parsers/views/ History.php –

関連する問題