ちょっと初心者の質問ですが、ボードの状態と他のゲーム状態情報がphpセッション変数として保存されるボードゲームを書いています。ボードは html/jquery でレンダリングされます。毎ターン ajax 呼び出しが php に対して行われ、ロジックを実行してボードの状態を変更します。しかし、ajax を呼び出すたびに、新しい php セッションが開かれ、古いセッションは忘れられているように見えます。コードは次のとおりです。
'index.php'
$.ajax({
type: 'POST',
url: 'cycle.php',
data: {},
dataType: 'json',
success: function(data, status, jqXHR) {
var stuff = jQuery.parseJSON(jqXHR.responseText);
$("#board").html(stuff.html);
},
});
'cycle.php'
<?php
session_start();
include('functions.php');
header('Content-type: application/json');
if (!isset($_session['turn'])) {
$_session['turn'] = 1;
$_session['population'] = "";
$out = write_table();
$out['turn'] = $_session['turn'];
$out = json_encode($out);
echo $out;
}
else {
$_session['turn'] = 2;
$out = turn($_session['population']);
$out['turn'] = $_session['turn'];
$out = json_encode($out);
echo $out;
}
?>