0

サーバーにフォルダーを作成しようとしています。次のコードを書きました

function CreateErrorLog($IntegrationId, $errorStr){

    if (!is_dir(PUBLIC_PATH.'/errors/'.$IntegrationId)) {

        echo 'not present<br/><br/>';
        try{
                mkdir(PUBLIC_PATH.'/errors/'.$IntegrationId, 0777);
        }catch(Exception $e){
            echo '<br/><br/> exception----'.$e.'<br/><br/>';
            print_r($e);
        }

    }else{
        echo 'present<br/><br/>';

    }
}

「not present」という出力が表示されますが、「errors」フォルダーの下に $IntegrationId の名前で作成されたディレクトリーが表示されません。これはローカルホストで機能しています。リモートサーバーに移動した後、問題が発生しています。何が問題ですか?

4

2 に答える 2

0

問題は、errorsフォルダがwriteサーバーで権限を持っていない可能性があることです

許可がない場合、例外はありません。

mkdir を if() 条件に入れます。ということで戻り値からわかります。

そしてini_set('display_errors', 1);、コードの上に置きます。

于 2013-01-02T07:28:07.403 に答える
0

まず、パスのパーミッションが書き込み可能であることを確認します。これが問題ない場合は、PUBLIC_PATH の代わりに絶対パスを指定する必要があります。関数 'echo getcwd()' を使用して絶対パスを取得し、php ファイルを作成できます。これにより、絶対パスが表示されます。代わりにオンを選択しますPUBLIC_PATH の。

于 2013-01-02T07:32:20.793 に答える