2016-01-02 39 views
0

JS代碼在服務器上的文件保存使用JavaScript

var server = ''; 
var orig_chat = chatUpdateSucess; 
chatUpdateSucess = function(o){ 
if (o.GlobalChats && o.GlobalChats.length > 0) { 
    //TODO: Add setting to enable/diosable this 
    console.log(JSON.stringify(o.GlobalChats)); 

    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", server+"/api.php?request=log_gc"); 
    xhr.send(JSON.stringify(o.GlobalChats)); 

} 
orig_chat.apply(this, arguments); 
}; 

名爲Server代碼api.php

<?php 
header("Access-Control-Allow-Origin: *"); 
if(!empty($_POST['o.GlobalChats'])){ 
$data = $_POST['o.GlobalChats']; 
$fname = time() . ".txt";//generates random name 

    $file = fopen("" .$fname, 'w');//creates new file 
    fwrite($file, $fclose($file); 
    } 

?> 

的console.log輸出 [{ 「PlayerId」:237186 「toPlayerId」:0 「chatid」:16606292, 「加入」: 「/日期(1451764948837)/」, 「addedText」: 「20點02分」, 「PlayerLink」?:「p = Kodabear | 237186​​ | T | 78 | 1 | 0 | 0-144-0-240-186-0-0-0-0-0-0-0-0 | #I KnowAFighter | Neurofibromatosis Awareness day/Month | 5-404-282-59「,」text「:」一個真正的聊天的實例「}]

我創建了一個js,每次聊天時發送一個文件到我的服務器遊戲更新。但是我在服務器端代碼有問題,任何建議都會有很大的幫助。 (PHP代碼在這裏

Saving a text file on server using JavaScript

回答

3

創辦嘗試var_dump($_POST['o.GlobalChats']),看看你的數據在到達服務器。

好像你沒有文件寫入到系統正常。請仔細閱讀例子在手動(http://php.net/manual/pt_BR/function.fwrite.php

此外,使用time()是不是安全的,因爲兩個文件可能在極端情況下,相同的UNIX時間戳來創建,一會覆蓋其他

嘗試是這樣的:

$data = $_POST['o.GlobalChats']; 

$fname = time() . "-" . rand (1 , 10000) . ".txt"; 

$handle = fopen($fname, 'w'); 

fwrite($handle, $data); 

fclose($handle); 
+1

以及它正在創建新的文件,但它們是空的。 – kodabear

+1

[02-Jan-2016 17:34:20美國/底特律] PHP警告:fwrite()期望參數1是資源,null在第9行給出的/home/kodabear/public_html/test/api.php中給出 – kodabear

+0

修復它。看到我編輯的答案。 – caulitomaz