0

私は JS ゲーム (HTML ページ上) を持っており、誰かがプレイするたびにログ ファイルを作成して、スコアやプレイ時間などを記録できるようにしたいと考えています。

JS がクライアント側の言語であることは知っていますが、ファイルをサーバーに保存するにはどうすればよいですか? そのようなことを達成するために、JS に .php を挿入することは可能ですか? それとももっと良い方法がありますか?

ありがとう!

4

3 に答える 3

5

サーバーにデータを送信するには、HTTP 要求を行う必要があります。(ページを離れずに JavaScript から HTTP 要求を行うことをAjaxと呼びます)。このような状況では、通常、これはXMLHttpRequest オブジェクトを使用して行われます。次に、リクエストを処理してデータを保存するサーバー側プログラム (PHP で記述可能) が必要です。ファイルのロックなどについて心配する必要がないようにするには、フラット ファイルの代わりにデータベースの使用を検討する必要があります。

于 2012-10-14T20:53:04.030 に答える
2

私は自分のプロジェクトで多かれ少なかれこのようにしています(ここでは基本はもちろん、プロジェクト、エラーチェックなどに応じてより高度です)

javascript

function doLog(somedata) {
    $.ajax({
        url: "ajax_log.php",
        //data, an url-like string for easy access serverside
        data : somedata,
        cache: false,
        async: true,
        type: 'post',
        timeout : 5000
    });
}

サーバーサイドlogでは、ほとんどの場合、 idとtimestampを持つテーブルlogParamsや、idとparam / valueを持つテーブル など、somedataの各要素をいくつかのログテーブルの行として挿入するクラスを使用します。しかし、それは統計的にネズミイルカのためのものです。また、一部のデータをファイルに記録することが必要な場合もあります

<?
$file="log.txt";
$text=serialize($_POST); 
$fh = fopen($file, 'a') or die();
    fwrite($fh, $text."\n");
    fclose($fh);
}
?>

そのため、JSでログシステムを実行するのは非常に簡単で、ほとんど何も実装するのは難しくありません。

于 2012-10-14T21:17:17.497 に答える
1

ほとんどの場合、サーバーに対して AJAX 呼び出しを行う必要があります。そこから、PHP コード、または使用する任意のサーバー側スクリプト言語が、ログ ファイルの作成を担当します。

于 2012-10-14T20:53:20.120 に答える