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
<?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);
?>