私は JS ゲーム (HTML ページ上) を持っており、誰かがプレイするたびにログ ファイルを作成して、スコアやプレイ時間などを記録できるようにしたいと考えています。
JS がクライアント側の言語であることは知っていますが、ファイルをサーバーに保存するにはどうすればよいですか? そのようなことを達成するために、JS に .php を挿入することは可能ですか? それとももっと良い方法がありますか?
ありがとう!
私は JS ゲーム (HTML ページ上) を持っており、誰かがプレイするたびにログ ファイルを作成して、スコアやプレイ時間などを記録できるようにしたいと考えています。
JS がクライアント側の言語であることは知っていますが、ファイルをサーバーに保存するにはどうすればよいですか? そのようなことを達成するために、JS に .php を挿入することは可能ですか? それとももっと良い方法がありますか?
ありがとう!
サーバーにデータを送信するには、HTTP 要求を行う必要があります。(ページを離れずに JavaScript から HTTP 要求を行うことをAjaxと呼びます)。このような状況では、通常、これはXMLHttpRequest オブジェクトを使用して行われます。次に、リクエストを処理してデータを保存するサーバー側プログラム (PHP で記述可能) が必要です。ファイルのロックなどについて心配する必要がないようにするには、フラット ファイルの代わりにデータベースの使用を検討する必要があります。
私は自分のプロジェクトで多かれ少なかれこのようにしています(ここでは基本はもちろん、プロジェクト、エラーチェックなどに応じてより高度です)
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でログシステムを実行するのは非常に簡単で、ほとんど何も実装するのは難しくありません。
ほとんどの場合、サーバーに対して AJAX 呼び出しを行う必要があります。そこから、PHP コード、または使用する任意のサーバー側スクリプト言語が、ログ ファイルの作成を担当します。