Beispiel #1
0
 function se_getengine($tmpdir, $enc, $use_kakasi)
 {
     $_query = array_merge($_POST, $_GET);
     $_query = HypCommonFunc::stripslashes_gpc($_query);
     $query = isset($_query['query']) ? $_query['query'] : '';
     if ($query) {
         $query = preg_replace('/^("|\')(.+)\\1$/', '$2', $query);
     }
     if (!$query) {
         $query = isset($_query['word']) ? $_query['word'] : '';
     }
     if (!$query) {
         $query = isset($_query['mes']) ? $_query['mes'] : '';
     }
     $query2 = $se_name = '';
     //Default
     if (!$query) {
         $reffer = '';
         if (isset($_SERVER['HTTP_REFERER'])) {
             $reffer = $_SERVER['HTTP_REFERER'];
         }
         if ($reffer) {
             $reffer = rtrim($reffer, '/');
             $se = file(dirname(__FILE__) . '/dat/hyp_search_engines.dat');
             $found = 0;
             foreach ($se as $linea) {
                 $linea = trim($linea);
                 if ($linea && $linea[0] !== '/') {
                     //$reffer=strtolower($reffer);
                     $tmp = explode('|', $linea);
                     if (HypGetQueryWord::se_search($reffer, $tmp[1])) {
                         if (strpos($reffer, rtrim($tmp[2])) !== false) {
                             $se_name = $tmp[0];
                             $found = 1;
                             break;
                         }
                     }
                 }
             }
             if ($found == 1) {
                 $vars = explode('?', $reffer);
                 if (count($vars) > 1) {
                     $query = explode(rtrim($tmp[2]), $vars[1]);
                     if (count($query) > 1) {
                         $query = explode('&', $query[1]);
                         $query = $query[0];
                     }
                 }
             }
         }
     }
     if ($query) {
         //デコード関数 by nao-pon
         $encfrom = isset($_GET['encode_hint']) && function_exists('mb_detect_encoding') ? mb_detect_encoding($_GET['encode_hint']) : "AUTO";
         $query = HypGetQueryWord::se_urldecode_euc($query, $enc, $encfrom);
         //Googleのキャッシュからの場合
         $query = preg_replace('/^cache\\:[^ ]+ /', '', $query);
         if (function_exists('mb_convert_kana')) {
             $query = mb_convert_kana($query, 'KVas', $enc);
         }
         //$query = preg_replace("/( |\+|,|、|・)+/"," ",$query);
         $query2 = $query;
         if ($use_kakasi && $query2) {
             // 分かち書き
             include_once dirname(__FILE__) . '/hyp_kakasi.php';
             $kakasi = new Hyp_KAKASHI();
             $kakasi->encoding = $enc;
             if ($tmpdir && is_writable($tmpdir)) {
                 $kakasi->tmp_dir = $tmpdir;
             }
             $kakasi->get_wakatigaki($query2);
         }
     }
     return array($se_name, $query, $query2);
 }
Beispiel #2
0
    } else {
        if (file_exists(XOOPS_TRUST_PATH . '/libs/' . $lib . '/index.php')) {
            include XOOPS_TRUST_PATH . '/libs/' . $lib . '/index.php';
        } else {
            die('wrong request');
        }
    }
} else {
    $constpref = '_MI_' . strtoupper($mydirname);
    // load language files (main.php & admin.php)
    $langman->read('modinfo.php', $mydirname, $mytrustdirname);
    if (!empty($_POST)) {
        if (!$xoopsGTicket->check(true, $mydirname)) {
            redirect_header(XOOPS_URL . '/', 3, $xoopsGTicket->getErrors());
        }
        HypCommonFunc::stripslashes_gpc($_POST);
        if (isset($_POST['page'])) {
            $_GET['page'] = $_POST['page'];
        }
    }
    // fork each pages of this module
    $page = preg_replace('/[^a-zA-Z0-9_-]/', '', @$_GET['page']);
    if (file_exists("{$mytrustdirpath}/admin/{$page}.php")) {
        // load $config
        include "{$mytrustdirpath}/admin/{$page}.php";
        $op = '';
        if (isset($_POST) && isset($_POST['op'])) {
            $op = $_POST['op'];
        }
        if ($op === 'save') {
            hypconfSaveConf($config);