Ignore:
Timestamp:
2011/01/08 03:11:29 (13 years ago)
Author:
tao
Message:

#841 インストール画面に管理画面のディレクトリ、SSL制限、IP制限を追加。管理画面でのアクセス制限も追加

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/html/install/index.php

    r19808 r19854  
    3232$INSTALL_DIR = realpath(dirname( __FILE__)); 
    3333require_once(DATA_REALDIR . "module/Request.php"); 
     34require_once(DATA_REALDIR . "install.php"); 
    3435 
    3536define("INSTALL_LOG", "./temp/install.log"); 
     
    112113        // 設定ファイルの生成 
    113114        lfMakeConfigFile(); 
    114         $objPage = lfDispStep3($objPage); 
     115        if(!renameAdminDir($objWebParam->getValue('admin_dir'))){ 
     116            $objPage->arrErr["all"] .= "管理者ディレクトリのリネームに失敗しました。権限を確認してください。"; 
     117            $objPage = lfDispStep2($objPage); 
     118        }else{ 
     119            $objPage = lfDispStep3($objPage); 
     120        } 
    115121    } else { 
    116122        $objPage = lfDispStep2($objPage); 
     
    399405        DATA_REALDIR . "downloads/", 
    400406        DATA_REALDIR . "upload/", 
     407        HTML_REALDIR . "admin/" 
    401408    ); 
    402409 
     
    646653        } 
    647654    } 
     655     
     656    //管理画面のディレクトリ名を取得(再インストール時) 
     657    if(defined("ADMIN_DIR")){ 
     658        $admin_dir = ADMIN_DIR; 
     659    } 
    648660 
    649661    $objWebParam->addParam("店名", "shop_name", MTEXT_LEN, "", array("EXIST_CHECK","MAX_LENGTH_CHECK"), $shop_name); 
     
    651663    $objWebParam->addParam("管理者:ログインID", "login_id", ID_MAX_LEN, "", array("EXIST_CHECK","SPTAB_CHECK", "ALNUM_CHECK")); 
    652664    $objWebParam->addParam("管理者:パスワード", "login_pass", ID_MAX_LEN, "", array("EXIST_CHECK","SPTAB_CHECK", "ALNUM_CHECK")); 
     665    $objWebParam->addParam("管理画面:ディレクトリ", "admin_dir", ID_MAX_LEN, "a", array("EXIST_CHECK","SPTAB_CHECK", "ALNUM_CHECK"),$admin_dir); 
     666    $objWebParam->addParam("管理画面:SSL制限", "admin_force_ssl", 1, "n", array("SPTAB_CHECK", "NUM_CHECK","MAX_LENGTH_CHECK")); 
     667    $objWebParam->addParam("管理画面:IP制限", "admin_allow_hosts", LTEXT_LEN, "an", array("IP_CHECK","MAX_LENGTH_CHECK")); 
    653668    $objWebParam->addParam("URL(通常)", "normal_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $normal_url); 
    654669    $objWebParam->addParam("URL(セキュア)", "secure_url", MTEXT_LEN, "", array("EXIST_CHECK","URL_CHECK","MAX_LENGTH_CHECK"), $secure_url); 
     
    721736 
    722737    // パスワードのチェック 
    723     $objErr->doFunc( array("管理者:パスワード",'login_pass',ID_MIN_LEN ,ID_MAX_LEN ) ,array("SPTAB_CHECK" ,"NUM_RANGE_CHECK" )); 
     738    $objErr->doFunc( array("管理者:パスワード",'login_pass',PASSWORD_LEN1 ,PASSWORD_LEN2 ) ,array("SPTAB_CHECK" ,"NUM_RANGE_CHECK" )); 
    724739 
    725740    return $objErr->arrErr; 
     
    902917 
    903918    $filepath = DATA_REALDIR . "install.php"; 
    904  
     919     
     920    //管理画面SSL制限 
     921    $force_ssl = FALSE; 
     922    if($objWebParam->getValue('admin_force_ssl') == 1){ 
     923        $force_ssl = TRUE; 
     924    } 
     925    //管理画面IP制限 
     926    $allow_hosts = array(); 
     927    $hosts = $objWebParam->getValue('admin_allow_hosts'); 
     928    if(!empty($hosts)){ 
     929        $hosts = str_replace("\r","",$hosts); 
     930        if(strpos("\n",$hosts) === false){ 
     931            $hosts .= "\n"; 
     932        } 
     933        $hosts = explode("\n",$hosts); 
     934        foreach($hosts as $key=>$host){ 
     935            $host = trim($host); 
     936            if(strlen($host) >= 8) { 
     937                $allow_hosts[] = $host; 
     938            } 
     939        } 
     940    } 
    905941    $config_data = 
    906942    "<?php\n". 
     
    916952    "    define ('DB_NAME', '" . $objDBParam->getValue('db_name') . "');\n" . 
    917953    "    define ('DB_PORT', '" . $objDBParam->getValue('db_port') .  "');\n" . 
    918     "?>"; 
     954    "    define ('ADMIN_DIR', '" . $objWebParam->getValue('admin_dir') .  "/');\n" . 
     955    "    define ('ADMIN_FORCE_SSL', " . $force_ssl .  ");\n"; 
     956    if(count($allow_hosts) > 0){ 
     957        $config_data .= "    define ('ADMIN_ALLOW_HOSTS', '".serialize($allow_hosts)."');\n"; 
     958    } 
     959    $config_data .= "?>"; 
    919960 
    920961    if($fp = fopen($filepath,"w")) { 
     
    9881029                 array("dtb_trackback", "trackback_id")); 
    9891030} 
     1031 
     1032 
     1033/** 
     1034 * 管理画面のディレクトリ名の変更 
     1035 * 
     1036 * @param string 設定する管理画面のディレクトリ名 
     1037 */ 
     1038function renameAdminDir($admin_dir){ 
     1039    $old_dir = "admin/"; 
     1040    if(defined("ADMIN_DIR")){ 
     1041        $old_dir = ADMIN_DIR; 
     1042    } 
     1043    if(!rename(HTML_REALDIR.$old_dir,HTML_REALDIR.$admin_dir)){ 
     1044        return FALSE; 
     1045    } 
     1046    if(!rename(USER_TEMPLATE_REALDIR.$old_dir,USER_TEMPLATE_REALDIR.$admin_dir)){ 
     1047        return FALSE; 
     1048    } 
     1049    return TRUE; 
     1050} 
    9901051?> 
Note: See TracChangeset for help on using the changeset viewer.