バージョン選択

フォーラム

メニュー

オンライン状況

42 人のユーザが現在オンラインです。 (35 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 42
もっと...

サイト内検索

質問 > 管理機能 > open_basedir, is not within the allowed path(s)

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
dab
投稿日時: 2009/3/31 1:04
対応状況: −−−
半人前
登録日: 2009/1/31
居住地: 京都
投稿: 13
Re: open_basedir, is not within the allowed path(s)
一時ディレクトリをopen_basedirで指定されたディレクトリ内に新しくディレクトリを作り、
アクセス属性を755にすることで、
詳しい動作検証は今からですが、とりあえずアップロードできるようになりました。

IMAGE_TEMP_URLのアクセス属性が、move_upload_file()のチェックに引っかかったものと思います。

長くなりますが、data/class/SC_UploadFile.php 81行目のmakeTempFile関数を全文載せておきます。
追加したのは"$dab_tmp_file"以降の3行です。

"is not within the allowed path" に関するエラーが表示された場合の対策になると思います。


    function makeTempFile($keyname, $rename = true) {
        $objErr = new SC_CheckError();
        $cnt = 0;
        $arrKeyname = array_flip($this->keyname);

        if(!($_FILES[$keyname]['size'] > 0)) {
            $objErr->arrErr[$keyname] = "※ " . $this->disp_name[$arrKeyname[$keyname]] . "がアップロードされていません。<br />";
        } else {
            foreach($this->keyname as $val) {
                // 一致したキーのファイルに情報を保存する。
                if ($val == $keyname) {
                    // 拡張子チェック
                    $objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->arrExt[$cnt]), array("FILE_EXT_CHECK"));
                    // ファイルサイズチェック
                    $objErr->doFunc(array($this->disp_name[$cnt], $keyname, $this->size[$cnt]), array("FILE_SIZE_CHECK"));
                    // エラーがない場合
                    if(!isset($objErr->arrErr[$keyname])) {
                        // 画像ファイルの場合
                        if($this->image[$cnt]) {

# '/home/username/html/tmp/'はopen_basedirに指定されたディレクトリ下層
$dab_tmp_name= '/home/username/html/tmp/'.substr(strrchr($_FILES[$keyname]['tmp_name'], "/"), 1);
move_uploaded_file($_FILES[$keyname]['tmp_name'], $dab_tmp_name);
$_FILES[$keyname]['tmp_name']=$dab_tmp_name;
                            $this->temp_file[$cnt] = $this->makeThumb($_FILES[$keyname]['tmp_name'], $this->width[$cnt], $this->height[$cnt]);

                        // 画像ファイル以外の場合
                        } else {
                            // 一意なファイル名を作成する。
                            if($rename) {
                                $uniqname = date("mdHi") . "_" . uniqid("").".";
                                $this->temp_file[$cnt] = ereg_replace("^.*\.",$uniqname, $_FILES[$keyname]['name']);
                            } else {
                                $this->temp_file[$cnt] = $_FILES[$keyname]['name'];
                            }
                            $result  = copy($_FILES[$keyname]['tmp_name'], $this->temp_dir . $this->temp_file[$cnt]);
                            GC_Utils_Ex::gfPrintLog($_FILES[$keyname]['name']." -> ". $this->temp_dir . $this->temp_file[$cnt]);
                        }
                    }
                }
                $cnt++;
            }
        }
        return $objErr->arrErr[$keyname];
    }


フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   open_basedir, is not within the allowed path(s) dab 2009/3/30 21:45
     Re: open_basedir, is not within the allowed path(s) tao_s 2009/3/30 22:37
       Re: open_basedir, is not within the allowed path(s) seasoft 2009/3/30 22:50
         Re: open_basedir, is not within the allowed path(s) dab 2009/3/31 0:00
         » Re: open_basedir, is not within the allowed path(s) dab 2009/3/31 1:04

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,288名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.