2016-01-02 4 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); 
}; 

код сервера с именем 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": "р = Kodabear | 237186 ​​| Т | 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 »:« Exmaple of real chat »}

Я создал 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 America/Detroit] PHP Предупреждение: fwrite() ожидает, что параметр 1 будет ресурсом, null указан в /home/kodabear/public_html/test/api.php в строке 9 – kodabear

+0

Исправлено , См. Мой отредактированный ответ. – caulitomaz

Смежные вопросы