2016-04-14 10 views
0

.txtファイルに保存できるすべての操作をログに記録しています。

通常のロードを実行するときに細かい作業で私のPHPコードを、私はAJAXを使用したとき、私はfopenを、PHPのfpost方法を読み取らないようにそれはそう...

私のコードを確認してください。

これは

function action_log($msg) { 
    $current_user = wp_get_current_user(); 
    $path = "wp-content/themes/creation/templates/inc/log.txt"; 
    $myfile = (file_exists($path)) ? fopen($path, "a+") : fopen($path, "w+"); 
    $txt = $msg.$current_user->display_name."\n"; 

    if ($myfile) { 
     fwrite($myfile, $txt); 
     fclose($myfile); 
     chmod($path, 0777); 
     $result = $txt; 
     return $result; 
    } else { 
     $result = $myfile; 
     return $txt; 
    } 
} 

add_action('wp_ajax_action-log-ajax', 'action_log_ajax'); 
add_action('wp_ajax_nopriv_action-log-ajax', 'action_log_ajax'); 
function action_log_ajax(){ 

    $post = $_REQUEST; 
    $msg = $post['msg']; 
    $write = action_log($msg); 

    exit(wp_send_json_success($write)); 
} 

私のjQueryプラグインの.post機能

$.send_log_changes = function($msg) { 

    var msgs = $msg; 
    var action = 'action-log-ajax'; 
    console.log(msgs); 

    $.post({ 
     url: plugins_ajax.ajaxUrl, 
     method: 'POST', 
     data: { 
     action: action, 
     msg: msgs 
     }, 
     dataType: 'json', 
     success: function(respones) { 
     console.log(respones); 
     } 

    }); 
} 

私はアヤックス使用してみました、に.get、まだ同じエラー私の機能とAjaxハンドラです。 いつもFalseに戻り、ファイルに書き込み/開くことができません。

答えて

0

ファイルのオープン操作がfalseを返すようです。 $ path変数にフルパスを入力しようとしましたか?/var/www/html/demo/wp-content/themes/creation/templates/inc/log.txt "など

+0

パスに問題はありません。サイトが完全に読み込まれたときにパスが動作していますが、Ajaxで動作していません。また、完全なパスと同じ結果を試してみました。 –

関連する問題