<?php
//  ------------------------------------------------------------------------ //
//                   This module; Copyright (c) 2005 gusagi                  //
//                        <http://good-tea.ddo.jp/trpg>                      //
//  ------------------------------------------------------------------------ //

//*****************************************************************************/
// 初期処理
//*****************************************************************************/
require_once( dirname(dirname(__FILE__)) .'/init.php' );
include_once( XOOPS_ROOT_PATH .'/modules/system/constants.php' ) ;
require_once( $mod_path .'/include/gtickets.php' );

// check access right (needs system_admin of BLOCK)
$sysperm_handler =& xoops_gethandler('groupperm');
if (!$sysperm_handler->checkRight('system_admin', XOOPS_SYSTEM_BLOCK, $xoopsUser->getGroups())) redirect_header( XOOPS_URL.'/user.php' , 1 , _NOPERM ) ;

// ワンタイムチケットの確認
if ( ! $xoopsGTicket->check($post = true, 'anywheressl') ) {
	redirect_header( $mod_url .'/admin/', 3, $xoopsGTicket->getErrors() );
	exit;
}

// MyTextSanitizerインスタンスの生成
$myts =& MyTextSanitizer::getInstance();

// セッション情報が存在しない場合は排除
if ( empty($_SESSION['anywheressl_op']) ) {
	redirect_header( XOOPS_URL, 2, AWSSL_ERR_ILLEGITIMATE_OP );
	exit;
}
// $opが不正な値の場合は排除
if ( $_SESSION['anywheressl_op'] !== 'save_configs' ) {
	redirect_header( XOOPS_URL, 2, AWSSL_ERR_ILLEGITIMATE_OP );
	exit;
}

// セッション情報の取得
$op = $_SESSION['anywheressl_op'];

// 変数の初期値設定
$sql = '';
$redirect = '';
//*****************************************************************************/
// 前の画面からの情報を取得とsql生成
//*****************************************************************************/
// モジュールCSS設定時
if ( $op === 'save_configs' ) {
	// リダイレクト先の設定
	$redirect = $mod_url .'/admin/config.php';
	// セッション情報の取得
	$configs = array();
	$configs = $_SESSION['anywheressl_configs'];
	// DBインスタンスの生成
	$xoopsDB =& Database::getInstance();
	// DBから設定情報を取得し、クラス内変数に格納
	$awssl_conf_tbl = $xoopsDB->prefix( 'anywheressl_configs' );
	foreach( $configs as $key => $config) {
		if ( ! empty($config['name']) ) {
			$conf_name = $key;
			$conf_value = addslashes( $myts->stripSlashesGPC($_POST[$config['name']]) );
			// 設定値の文字長チェック
			if ( strlen($conf_value) > $awssl_max_length ) {
					redirect_header( $redirect, 2, sprintf(MYCSSADMIN_ERR_VALUE_TOO_LONG, $awssl_max_length) );
					exit;
			}
			$sql = "UPDATE $awssl_conf_tbl SET ";
			$sql .= " `conf_value` = '$conf_value'";
			$sql .= " WHERE `conf_name` = '$conf_name'";
			$result = $xoopsDB->query( $sql );
			if ( ! $result ) {
				redirect_header( $redirect, 2, AWSSL_ERR_FAILED_DB_UPDATE );
				exit;
			}
		}
	}
	// テーブルの最適化を行う
	$sql = "OPTIMIZE TABLE $awssl_conf_tbl";
	$xoopsDB->query( $sql );
}

//*****************************************************************************/
// 終了処理
//*****************************************************************************/ 
// セッション情報のクリア
unset( $_SESSION['anywheressl_configs'] );
// モジュールCSS設定画面に遷移
redirect_header( $redirect, 2, AWSSL_COPMLETE_DATA_UPDATE );
exit;

?>