escapeMySQLArgumentString($name);
if(strcmp($action, 'join') == 0){
+ //通常モード
$stmt = $db->prepare(QUERY_SELECT_USER_ID);
$stmt->bind_param(QUERY_SELECT_USER_ID_TYPES, $name);
$stmt->execute();
//すでにユーザー名がリストにある=続きからプレイ
$stmt->bind_result($id);
$stmt->fetch();
+ responseExistUser($db, $id, getUserStage($db, $id));
+ }
+ } else{
+ //クエリ失敗
+ responseError();
+ }
+ } else if(strcmp($action, 'devjoin') == 0){
+ //開発者モード
+ if(!isset($_GET['stage'])){
+ responseError();
+ }
+ $stgName = urldecode($_GET['stage']);
+ $stmt = $db->prepare(QUERY_SELECT_USER_ID);
+ $stmt->bind_param(QUERY_SELECT_USER_ID_TYPES, $name);
+ $stmt->execute();
+ if($stmt->errno == 0){
+ //クエリ成功
+ $stmt->store_result();
+ // 結果の個数を確認
+ if($stmt->num_rows == 0){
+ //ユーザー名はリストになかった=はじめてのひと
+ $stmt = $db->prepare(QUERY_ADD_USER);
+ //$stgName = DEFAULT_START_STAGE;
+ $stmt->bind_param(QUERY_ADD_USER_TYPES, $name, $stgName);
+ $stmt->execute();
+ if($stmt->errno == 0){
+ //クエリ成功
+ $stmt = $db->prepare(QUERY_SELECT_USER_ID);
+ $stmt->bind_param(QUERY_SELECT_USER_ID_TYPES, $name);
+ $stmt->execute();
+ if($stmt->errno == 0){
+ //クエリ成功
+ $stmt->store_result();
+ if($stmt->num_rows == 0){
+ //ユーザー名はリストになかった=そんな…登録したのに。あきらめてエラーを返す
+ responseError();
+ } else{
+ //ユーザー名がリストにある=予想通り
+ $stmt->bind_result($id);
+ $stmt->fetch();
+ //responseNewUser($db, $id);
+ responseExistUser($db, $id, getUserStage($db, $id));
+ }
+ } else{
+ //クエリ失敗
+ responseError();
+ }
+ } else{
+ //クエリ失敗
+ responseError();
+ }
+ } else{
+ //すでにユーザー名がリストにある=続きからプレイ
+ $stmt->bind_result($id);
+ $stmt->fetch();
//未実装(本当はデータベースから続きのステージ名を取得するべき)
- responseExistUser($db, $id, "main");
+ updateUserStage($db, $id, $stgName);
+ responseExistUser($db, $id, $stgName);
}
} else{
//クエリ失敗
//エラーチェック省略
}
+function getUserStage($db, $userID)
+{
+ $stgName = "unknown";
+ $stmt = $db->prepare(QUERY_SELECT_USER_STAGE);
+ $stmt->bind_param(QUERY_SELECT_USER_STAGE_TYPES, $userID);
+ $stmt->execute();
+ if($stmt->errno == 0){
+ //クエリ成功
+ $stmt->store_result();
+ // 結果の個数を確認
+ if($stmt->num_rows != 0){
+ //結果格納
+ $stmt->bind_result($stgName);
+ $stmt->fetch();
+ }
+ }
+ $stmt->close();
+ return $stgName;
+}
+
function deleteUserStageObjectAll($db, $userID)
{
$stmt = $db->prepare(QUERY_DELETE_USER_OBJECT_ALL);