瀏覽代碼

服务器返回错误码

visuddhinanda 5 年之前
父節點
當前提交
0e8126047c
共有 2 個文件被更改,包括 83 次插入41 次删除
  1. 48 18
      app/sync/function.php
  2. 35 23
      app/sync/sync.php

+ 48 - 18
app/sync/function.php

@@ -4,20 +4,33 @@ require_once '../redis/function.php';
 
 function do_sync($param)
 {
-	
+	$output=array();
+	$output["error"]=0;
+	$output["message"]="";
+	$output["data"]=array();
+
 	$redis=redis_connect();
 	if($redis){
 		$key = $redis->hget("sync://key",$_POST["userid"]);
 		if($key===FALSE){
+			$output["error"]=1;
+			$output["message"]="key验证失败";
+			echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 			return false;
 		}
 		else{
-			if($key!=$_POST["sync_key"]){
+			if($key!=$_POST["key"]){
+				$output["error"]=1;
+				$output["message"]="key验证失败";
+				echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 				return false;
 			}
 		}
 	}
 	else{
+		$output["error"]=1;
+		$output["message"]="redis初始化失败";
+		echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 		return false;
 	}
 
@@ -26,8 +39,10 @@ function do_sync($param)
     } else if (isset($_POST["op"])) {
         $op = $_POST["op"];
     } else {
-        echo "error: no op";
-        return (false);
+		$output["error"]=1;
+		$output["message"]="无操作码";
+		echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+		return false;
     }
 
     $PDO = new PDO("" . $param->database, "", "", array(PDO::ATTR_PERSISTENT => true));
@@ -59,8 +74,9 @@ function do_sync($param)
 						$stmt->execute(array($time,$newTime));
 						$Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
 					}
-
-					echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));					
+					$output["data"]=$Fetch;
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+					return;			
 				}
 				else if(isset($_POST["id"])){
 					$params = json_decode($_POST["id"],true);
@@ -72,7 +88,8 @@ function do_sync($param)
 					$stmt->execute($params);
 					$Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
 					$iFetch = count($Fetch);
-					echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));						
+					$output["data"]=$Fetch;
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);					
 				}
 
                 break;
@@ -93,7 +110,8 @@ function do_sync($param)
 				$stmt = $PDO->prepare($query);
 				$stmt->execute($arrId);
                 $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
-                echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));
+				$output["data"]=$Fetch;
+				echo json_encode($output, JSON_UNESCAPED_UNICODE);
                 return (true);
                 break;
             }
@@ -135,11 +153,15 @@ function do_sync($param)
                 $PDO->commit();
                 if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
                     $error = $PDO->errorInfo();
-                    echo "error - $error[2] <br>";
+					$output["error"]=1;
+					$output["message"]="error - $error[2] <br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
                     return (false);
                 } else {
                     $count = count($arrData);
-                    echo "INSERT $count recorders." . "<br>";
+					$output["error"]=1;
+					$output["message"]="INSERT $count recorders." . "<br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);						
                     return (true);
                 }
                 break;
@@ -150,8 +172,10 @@ function do_sync($param)
                 if (isset($_POST["data"])) {
                     $data = $_POST["data"];
                 } else {
-                    echo "没有输入数据<br>";
-                    return (false);
+					$output["error"]=1;
+					$output["message"]="没有输入数据<br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+                    return false;
                 }
                 $arrData = json_decode($data, true);
                 $query = "UPDATE {$param->table} SET ";
@@ -177,17 +201,23 @@ function do_sync($param)
                     $PDO->commit();
                     if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
                         $error = $PDO->errorInfo();
-                        echo "error - $error[2] <br>";
-                        return (false);
+						$output["error"]=1;
+						$output["message"]="error - $error[2] <br>";
+						echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+						return false;
                     } else {
                         $count = count($arrData);
-                        echo "INSERT $count recorders." . "<br>";
-                        return (true);
+						$output["error"]=0;
+						$output["message"]="INSERT $count recorders." . "<br>";
+						echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+                        return true;
                     }
                 } catch (Exception $e) {
                     $PDO->rollback();
-                    echo "Failed:" . $e->getMessage() . "<br>";
-                    return (false);
+					$output["error"]=1;
+					$output["message"]="Failed:" . $e->getMessage() . "<br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);						
+                    return false;
                 }
 
                 break;

+ 35 - 23
app/sync/sync.php

@@ -31,12 +31,18 @@ else{
 $client = new \GuzzleHttp\Client();
 $response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'sync','time'=>$time,'size'=>$size,"key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 $serverJson=$response->getBody();
-$serverData = json_decode($serverJson);
-$output["src_row"]=count($serverData);
+$serverData = json_decode($serverJson,true);
+if($serverData["error"]>0){
+	$output["message"]=$serverData["message"];
+	echo json_encode($output, JSON_UNESCAPED_UNICODE);
+	exit;
+}
+$serverDBData = $serverData["data"];
+$output["src_row"]=count($serverDBData);
 $message.= "输入时间:".$time."<br>";
 $message.= "src_row:".$output["src_row"]."<br>";
 if($output["src_row"]>0){
-	$output["time"]=$serverData[$output["src_row"]-1]->modify_time;
+	$output["time"]=$serverDBData[$output["src_row"]-1]["modify_time"];
 	$message.= "最新时间:".$output["time"]."<br>";
 }
 else{
@@ -44,15 +50,21 @@ else{
 	exit;
 }
 $aIdList=array();
-foreach($serverData as $sd){
-	$aIdList[]=$sd->guid;
+foreach($serverDBData as $sd){
+	$aIdList[]=$sd["guid"];
 }
 $sIdlist = json_encode($aIdList, JSON_UNESCAPED_UNICODE);;
 // 拉 id 列表
 $response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'sync','id'=>$sIdlist,'size'=>$size,"key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 $strLocalData = $response->getBody();
-$localData = json_decode($strLocalData);
-$localCount = count($localData);
+$localData = json_decode($strLocalData,true);
+if($localData["error"]>0){
+	$output["message"]=$localData["message"];
+	echo json_encode($output, JSON_UNESCAPED_UNICODE);
+	exit;
+}
+$localDBData = $localData["data"];
+$localCount = count($localDBData);
 $message .= "local-row:".$localCount."<br>";
 $localindex=array();
 
@@ -61,18 +73,18 @@ $update_to_server=array();
 $insert_to_local=array();
 $update_to_local=array();
 $message .= "<h3>{$path}</h3>";
-foreach($localData as $local){
-	$localindex[$local->guid][0]=$local->modify_time;
-	$localindex[$local->guid][1]=false;
+foreach($localDBData as $local){
+	$localindex[$local["guid"]][0]=$local["modify_time"];
+	$localindex[$local["guid"]][1]=false;
 }
-foreach($serverData as $sd){
-	if(isset($localindex[$sd->guid])){
-		$localindex[$sd->guid][1]=true;
-		if($sd->modify_time>$localindex[$sd->guid][0]){
+foreach($serverDBData as $sd){
+	if(isset($localindex[$sd["guid"]])){
+		$localindex[$sd["guid"]][1]=true;
+		if($sd['modify_time']>$localindex[$sd["guid"]][0]){
 			//服务器数据较新 server data is new than local
-			$update_to_local[]=$sd->guid;
+			$update_to_local[]=$sd["guid"];
 		}
-		else if($sd->modify_time==$localindex[$sd->guid][0]){
+		else if($sd['modify_time']==$localindex[$sd["guid"]][0]){
 			//"相同 same
 		}
 		else{
@@ -82,7 +94,7 @@ foreach($serverData as $sd){
 	}
 	else{
 		//本地没有 新增 insert recorder in local
-		$insert_to_local[]=$sd->guid;
+		$insert_to_local[]=$sd['guid'];
 	}
 }
 
@@ -136,10 +148,11 @@ else{
 		$idInServer = json_encode($insert_to_local, JSON_UNESCAPED_UNICODE);
 		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key]]);
 		$serverData=$response->getBody();
-		$response = $client->request('POST', $localhost.'/app/'.$path, ['verify' => false,'form_params'=>['op'=>'insert','data'=>"{$serverData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+		$arrData = json_decode($serverData,true);
+		$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
+		$response = $client->request('POST', $localhost.'/app/'.$path, ['verify' => false,'form_params'=>['op'=>'insert','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 		$message .=  $response->getBody()."<br>";
 		*/
-		
 	}
 
 	if(count($update_to_local)>0){
@@ -148,15 +161,14 @@ else{
 		$idInServer = json_encode($update_to_local, JSON_UNESCAPED_UNICODE);
 		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key]]);
 		$serverData=$response->getBody();
-		$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'update','data'=>"{$serverData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+		$arrData = json_decode($serverData,true);
+		$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
+		$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'update','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 		$message .=  $response->getBody()."<br>";
 		*/
-		
 	}
-	
 }
 $output["message"]=$message;
 echo json_encode($output, JSON_UNESCAPED_UNICODE);
 
-
 ?>