3 mysqli_report(MYSQLI_REPORT_ERROR);
\r
5 require("header.php");
\r
7 // URL引数でUserID(uid)を渡す。
\r
8 // update.php?uid=xxx
\r
12 $db = new mysqli('localhost', DATABASE_USER, DATABASE_PWD, DATABASE_NAME);
\r
13 if (mysqli_connect_error()) {
\r
17 $db->set_charset("utf8");
\r
19 if(isset($_GET['uid']) && isset($_GET['action'])){
\r
20 $uid = $_GET['uid'];
\r
21 $action = $_GET['action'];
\r
23 $stmt = $db->prepare(QUERY_SELECT_USER_STAGE_AND_TIMESTAMP);
\r
24 $stmt->bind_param(QUERY_SELECT_USER_STAGE_AND_TIMESTAMP_TYPES, $uid);
\r
26 if($stmt->errno != 0){
\r
30 $stmt->store_result();
\r
31 if($stmt->num_rows == 0){
\r
34 $stmt->bind_result($stgName, $lastTimeStamp);
\r
38 $request_param = array();
\r
39 foreach ( $_POST as $k => $v){
\r
40 // URL デコードを行い値を連想配列に格納する
\r
41 $request_param{"$k"} = urldecode($v);
\r
44 if(strcmp($action, 'add') == 0){
\r
46 //postデータは、"origin.x,origin.y,speed.x,speed.y,className,attribute,constructorArgs"
\r
47 //retvデータは、"[timestamp,[objectID, ...], [[objectID,origin.x,origin.y,speed.x,speed.y,className,attribute,constructorArgs]...]]"
\r
48 $retarray = array();
\r
49 foreach($request_param as $aParam){
\r
50 $subparam = explode('|', $aParam);
\r
51 $stmt = $db->prepare(QUERY_ADD_OBJECT);
\r
52 $stmt->bind_param(QUERY_ADD_OBJECT_TYPES, $subparam[0], $subparam[1], $subparam[2], $subparam[3], $stgName, $subparam[4], $subparam[5], $subparam[6],$uid, getTimeStampMs(), getTimeStampMs());
\r
54 if($stmt->errno != 0){
\r
57 array_push($retarray, $db->insert_id);
\r
61 echo("[" . getTimeStampMs() . ",[");
\r
62 foreach($retarray as $v){
\r
66 echo(getAllOtherUserObjectArrayString($db, $uid, $stgName));
\r
68 } else if(strcmp($action, 'refresh') == 0){
\r
70 //postデータは、"objectID,origin.x,origin.y,speed.x,speed.y,attribute"
\r
71 foreach($request_param as $aParam){
\r
72 $subparam = explode('|', $aParam);
\r
73 $stmt = $db->prepare(QUERY_UPDATE_STAGE_OBJECT);
\r
74 $stmt->bind_param(QUERY_UPDATE_STAGE_OBJECT_TYPES, $subparam[1], $subparam[2], $subparam[3], $subparam[4], $subparam[5], getTimeStampMs(), $stgName, $subparam[0]);
\r
76 if($stmt->errno != 0){
\r
84 //[objectID,origin.x,origin.y,speed.x,speed.y,className,attribute,constructorArgs]"
\r
86 $stmt = $db->prepare(QUERY_SELECT_ADDED_OBJECT);
\r
87 $stmt->bind_param(QUERY_SELECT_ADDED_OBJECT_TYPES, $stgName, $uid, $lastTimeStamp);
\r
89 if($stmt->errno != 0){
\r
92 $result = $stmt->get_result();
\r
93 for($i = 0; $i < $result->num_rows; $i++){
\r
94 $tmpAry = $result->fetch_array(MYSQLI_NUM);
\r
95 array_push($retv2, "[" . $tmpAry[0] . "," . $tmpAry[1] . "," . $tmpAry[2] . "," . $tmpAry[3] . "," . $tmpAry[4] . ",\"" . $tmpAry[5] . "\",\"" . $tmpAry[6] . "\",\"" . $tmpAry[7] . "\"," . $tmpAry[8] . "]");
\r
99 //[objectID,origin.x,origin.y,speed.x,speed.y,className,attribute]"
\r
101 $stmt = $db->prepare(QUERY_SELECT_UPDATED_OBJECT);
\r
103 exit("error:" . $db->error);
\r
105 $stmt->bind_param(QUERY_SELECT_UPDATED_OBJECT_TYPES, $stgName, $uid, $lastTimeStamp, $lastTimeStamp);
\r
107 if($stmt->errno != 0){
\r
110 $result = $stmt->get_result();
\r
111 for($i = 0; $i < $result->num_rows; $i++){
\r
113 $tmpAry = $result->fetch_array(MYSQLI_NUM);
\r
114 array_push($retv1, "[" . $tmpAry[0] . "," . $tmpAry[1] . "," . $tmpAry[2] . "," . $tmpAry[3] . "," . $tmpAry[4] . ",\"" . $tmpAry[5] . "\",\"" . $tmpAry[6] . "\"]");
\r
120 $stmt = $db->prepare(QUERY_SELECT_DELETED_OBJECT);
\r
121 $stmt->bind_param(QUERY_SELECT_DELETED_OBJECT_TYPES, $stgName, $uid, $lastTimeStamp);
\r
123 if($stmt->errno != 0){
\r
126 $result = $stmt->get_result();
\r
127 for($i = 0; $i < $result->num_rows; $i++){
\r
128 $tmpAry = $result->fetch_array(MYSQLI_NUM);
\r
129 array_push($retv3, $tmpAry[0]);
\r
135 $stmt = $db->prepare("select id, name from authUserTable");
\r
137 if($stmt->errno != 0){
\r
140 $result = $stmt->get_result();
\r
141 for($i = 0; $i < $result->num_rows; $i++){
\r
142 $tmpAry = $result->fetch_array(MYSQLI_NUM);
\r
143 array_push($retv4, $tmpAry[0] . ":\"" . $tmpAry[1] . "\"");
\r
148 echo(getTimeStampMs());
\r
150 foreach($retv1 as $v){
\r
154 foreach($retv2 as $v){
\r
158 foreach($retv3 as $v){
\r
162 foreach($retv4 as $v){
\r
167 updateUserTimestamp($db, $uid);
\r
171 function getAllOtherUserObjectArrayString($db, $userID, $stageName)
\r
174 $stmt = $db->prepare(QUERY_SELECT_ALL_OTHER_USER_OBJECT);
\r
175 $limittime = getTimeStampMs() - OBJECT_ALIVE_TIME_MS;
\r
176 $stmt->bind_param(QUERY_SELECT_ALL_OTHER_USER_OBJECT_TYPES, $stageName, $userID, $limittime);
\r
178 if($stmt->errno != 0){
\r
181 $result = $stmt->get_result();
\r
182 for($i = 0; $i < $result->num_rows; $i++){
\r
183 $tmpAry = $result->fetch_array(MYSQLI_NUM);
\r
184 array_push($retary, "[" . $tmpAry[0] . "," . $tmpAry[1] . "," . $tmpAry[2] . "," . $tmpAry[3] . "," . $tmpAry[4] . ",\"" . $tmpAry[5] . "\",\"" . $tmpAry[6] . "\",\"" . $tmpAry[7] . "\"," . $tmpAry[8] . "]");
\r
188 foreach($retary as $v){
\r
189 $retstr = $retstr . $v . ",";
\r
191 $retstr = $retstr . "]";
\r
202 function responseError()
\r
204 exit("[0, 0, null];");
\r