$explode[2]) { $data['user_id'] = ''; $data['code'] = '401'; $data['message'] = 'Token已过期,请重新登录'; return $data; } if ($true_signature == $explode[3]) { $data['user_id'] = $explode[0]; $data['code'] = '200'; $data['message'] = 'Token合法'; return $data; } else { $data['user_id'] = ''; $data['code'] = '400'; $data['message'] = 'Token不合法'; return $data; } } else { $data['user_id'] = ''; $data['code'] = '400'; $data['message'] = 'Token不合法'; return $data; } } $token = $_REQUEST["token"]; #echo $token . "
"; $result = CheckToken($token); #echo $result['user_id'] . "
"; #echo $result['code'] . "
"; #echo $result['message'] . "
"; $user_id = $result['user_id']; $token_code = $result['code']; $token_message = $result['message']; #session_start(); #session_start()一開始執行會把session打開並鎖住,最後需commit才能釋放。 /* 1.一開始的api-account-reply.php要產生ID、起始時間、結束時間與hash值,同時將此三者存入session (之後取消) 2.include-session-security.php是第一支且每隻程式都有,因此要把session的值讀出來 (之後取消) 3.如沒有收到ID、起始時間、結束時間與hash值,任何一個,代表如果有問題,直接 header("Location: api-account-send.php?errno=3"); 4.如均有收到ID、起始時間、結束時間與hash值,但session為空,則帶入user_id。(同時比對正確則更新數據update session:之後取消) 若比對失敗則直接 header("Location: api-account-send.php?errno=3"); 直接改版用WEB測試: 1.如果沒有Token, 取出user_id 2.如果不是 */ #if(empty($_SESSION['user_id'])){ if(($token == "") or ($token_code <> "200")){ #改善Session問題 #header("Location:api-account-send.php?errno=3"); #exit(); #此行如果加上去無法產生檔案會導致app-maintenance-uploadsuccess-suveryupload.php無法產生檔案 /* 可以改成header("Location:api-account-send.php?errno=3"); */ #echo "Illegal access!"; #exit(); }else{ date_default_timezone_set("Asia/Taipei"); #設定所有的時間以台北為基準 } #session_commit(); ?>