File "gcm_recv_regid.php"

Full path: /www/ansys/gcm/gcm_recv_regid.php
File size: 4.63 KiB (4742 bytes)
MIME-type: text/x-php
Charset: utf-8

Download   Open   Back

<?php
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
//	自動でクラスを参照する
//	関数名	:	__autoload()
//	備考	:	参照先は./class/XXX.phpとする
//	更新	:	2012/10/19 KMK-Teraoka
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
function __autoload($className)
{
	$fPath = "./class/" . str_replace("_", "/", $className) . ".php";
	require_once $fPath;
}

//===============================================
//	DEBUG_MODE
//	備考		:	
//	更新		:	2012/10/19 KMK-Teraoka
//===============================================
define("DEBUG_MODE", "0");
Debug::setMode(DEBUG_MODE);
if (DEBUG_MODE == 1)
{
	Stopwatch::start();
}

//===============================================
//	CommonUtilities
//	備考		:	
//	更新		:	2012/11/06 KMK-Teraoka
//===============================================
$HOST = "192.168.100.153";
$DB = "ansys";
$USER = "postgres";
$PASS = "am#71ZJ*";
$GCM_TERMINAL_TABLE = "qgis.gcm_terminals";
$LOG_FILE = "./log/gcm_recv_regid.log";

try
{
	$_log = new Log($LOG_FILE);
	
	//================================================
	//	データベース接続
	//	備考		:	
	//	更新		:	2012/10/25 KMK-Teraoka
	//================================================
	$conn = pg_connect("
		host	=	". $HOST. "
		dbname	=	". $DB. "
		user	=	". $USER. "
		password=	". $PASS. "
	");
	if (!$conn)
	{
		throw new Exception("データベースへの接続に失敗しました");
	}
	
	//===============================================
	//	POST、GETパラメータの受け取り
	//	備考		:	
	//	更新		:	2012/10/25 KMK-Teraoka
	//===============================================
	if (DEBUG_MODE == 1)
	{
		extract($_POST);
		extract($_GET);
		Debug::writes($_POST);
	}
	$gcmId = isset($_POST["gcm_id"]) ? htmlspecialchars($_POST["gcm_id"]) : "";
	$constId = isset($_POST["const_id"]) ? htmlspecialchars($_POST["const_id"]) : "";
	$appId = isset($_POST["app_id"]) ? htmlspecialchars($_POST["app_id"]) : "";
	$androidId = isset($_POST["android_id"]) ? htmlspecialchars($_POST["android_id"]) : "";
	
	$_log->write("GCM_ID->". $gcmId. "\n");
	$_log->write("CONST_ID->". $constId. "\n");
	$_log->write("APPLICATION_ID->". $appId. "\n");
	$_log->write("ANDROID_ID->". $androidId. "\n");
	
	if (strcmp($gcmId, "") == 0 || strcmp($constId, "") == 0 || strcmp($appId, "") == 0 || strcmp($androidId, "") == 0)
	{
		throw new Exception("登録条件を満たしていません");
	}
	
	//===============================================
	//	登録済み端末であるか調べる
	//	備考		:	
	//	更新		:	2012/10/25 KMK-Teraoka
	//===============================================
	$selectCheck = "SELECT count(*) as count FROM ". $GCM_TERMINAL_TABLE. "";
	$selectCheck .= " WHERE const_id='". $constId. "'";
	$selectCheck .= " AND app_id='". $appId. "'";
	$selectCheck .= " AND android_id='". $androidId. "'";
	$selectCheck .= ";";
	$_log->write($selectCheck. "\n");
	if (!($resCheck = pg_query($conn, $selectCheck)))
	{
		throw new Exception("データ確認に失敗しました\n". $selectCheck. "\n". pg_last_error());
	}
	$rowCheck = pg_fetch_array($resCheck, 0, PGSQL_ASSOC);
	
	$_log->write($rowCheck["count"]."\n");
	if (strcmp($rowCheck["count"], "1") == 0)
	{
		$updFlg = 1;
	}
	
	//===============================================
	//	データベースへ登録、更新
	//	備考		:	
	//	更新		:	2012/10/25 KMK-Teraoka
	//===============================================
	if ($updFlg != 1)
	{
		$insData = "INSERT INTO ". $GCM_TERMINAL_TABLE. "";
		$insData .= " (gcm_id, const_id, app_id, android_id, upddatetime, regdatetime)";
		$insData .= " VALUES";
		$insData .= " ('". $gcmId. "', '". $constId. "', '". $appId. "', '". $androidId. "', current_timestamp, current_timestamp)";
		$insData .= ";";
		$_log->write($insData. "\n");
		if (!($resData = pg_query($conn, $insData)))
		{
			throw new Exception("データ登録に失敗しました\n". $insData. "\n". pg_last_error());
		}
	}
	else
	{
		$updData = "UPDATE ". $GCM_TERMINAL_TABLE. " SET";
		$updData .= " gcm_id='". $gcmId. "'";
		$updData .= ", upddatetime=current_timestamp";
		$updData .= " WHERE const_id='". $constId. "'";
		$updData .= " AND app_id='". $appId. "'";
		$updData .= " AND android_id='". $androidId. "'";
		$updData .= ";";
		$_log->write($updData. "\n");
		if (!($resData = pg_query($conn, $updData)))
		{
			throw new Exception("データ更新に失敗しました\n". $updData. "\n". pg_last_error());
		}
	}
}
catch(Exception $exc)
{
	$_log->write($exc->getMessage(). "\n");
}

//===============================================
//	Postgresql終了処理
//	備考		:	
//	更新		:	2012/10/19 KMK-Teraoka
//===============================================
pg_close($conn);

?>

PHP File Manager