OSDN Git Service

Add files via upload
[idb/iDB.git.git] / sql.php
diff --git a/sql.php b/sql.php
index b42abf1..8eb5294 100644 (file)
--- a/sql.php
+++ b/sql.php
@@ -8,10 +8,10 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     Revised BSD License for more details.
 
-    Copyright 2004-2017 iDB Support - http://idb.berlios.de/
-    Copyright 2004-2017 Game Maker 2k - http://gamemaker2k.org/
+    Copyright 2004-2019 iDB Support - https://idb.osdn.jp/support/category.php?act=view&id=1
+    Copyright 2004-2019 Game Maker 2k - https://idb.osdn.jp/support/category.php?act=view&id=2
 
-    $FileInfo: sql.php - Last Update: 01/26/2017 SVN 810 - Author: cooldude2k $
+    $FileInfo: sql.php - Last Update: 4/8/2022 SVN 947 - Author: cooldude2k $
 */
 /* Some ini setting changes uncomment if you need them. 
    Display PHP Errors */
@@ -82,28 +82,30 @@ function unparse_url($parsed_url) {
   return $scheme.$user.$pass.$host.$port.$path.$query.$fragment;
 } 
 $OrgBoardURL = $Settings['idburl'];
-$PreBestURL = parse_url($Settings['idburl']);
+if(isset($Settings['idburl'])) {
+$PreBestURL = parse_url($Settings['idburl']); }
 $PreServURL = parse_url((isset($_SERVER['HTTPS']) ? "https" : "http") . "://".$_SERVER['HTTP_HOST'].substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], '/') + 1));
-if($PreBestURL['host']=="localhost.url"&&str_replace("/", "", $PreBestURL['path'])=="localpath") {
+if(isset($PreBestURL['host'])&&$PreBestURL['host']=="localhost.url"&&str_replace("/", "", $PreBestURL['path'])=="localpath") {
    $PreBestURL['host'] = "localhost";
    $PreBestURL['path'] = $PreServURL['path'];
    $Settings['idburl'] = unparse_url($PreBestURL); }
-if($PreBestURL['host']=="localhost.url"&&str_replace("/", "", $PreBestURL['path'])!="localpath") {
+if(isset($PreBestURL['host'])&&$PreBestURL['host']=="localhost.url"&&str_replace("/", "", $PreBestURL['path'])!="localpath") {
    $PreBestURL['host'] = $PreServURL['host'];
    $Settings['idburl'] = unparse_url($PreBestURL); }
-if($PreBestURL['host']!="localhost.url"&&str_replace("/", "", $PreBestURL['path'])=="localpath") {
+if(isset($PreBestURL['host'])&&$PreBestURL['host']!="localhost.url"&&str_replace("/", "", $PreBestURL['path'])=="localpath") {
    $PreBestURL['path'] = $PreServURL['path'];
    $Settings['idburl'] = unparse_url($PreBestURL); }
 $OrgWebSiteURL = $Settings['weburl'];
-$PreWestURL = parse_url($Settings['weburl']);
-if($PreWestURL['host']=="localhost.url"&&str_replace("/", "", $PreWestURL['path'])=="localpath") {
+if(isset($Settings['idburl'])) {
+$PreWestURL = parse_url($Settings['weburl']); }
+if(isset($PreWestURL['host'])&&$PreWestURL['host']=="localhost.url"&&str_replace("/", "", $PreWestURL['path'])=="localpath") {
    $PreWestURL['host'] = $PreServURL['host'];
    $PreWestURL['path'] = $PreServURL['path'];
    $Settings['weburl'] = unparse_url($PreWestURL); }
-if($PreWestURL['host']=="localhost.url"&&str_replace("/", "", $PreWestURL['path'])!="localpath") {
+if(isset($PreWestURL['host'])&&$PreWestURL['host']=="localhost.url"&&str_replace("/", "", $PreWestURL['path'])!="localpath") {
    $PreWestURL['host'] = $PreServURL['host'];
    $Settings['weburl'] = unparse_url($PreWestURL); }
-if($PreWestURL['host']!="localhost.url"&&str_replace("/", "", $PreWestURL['path'])=="localpath") {
+if(isset($PreWestURL['host'])&&$PreWestURL['host']!="localhost.url"&&str_replace("/", "", $PreWestURL['path'])=="localpath") {
    $PreWestURL['path'] = $PreServURL['path'];
    $Settings['weburl'] = unparse_url($PreWestURL); }
 if(!isset($Settings['fixbasedir'])) { $Settings['fixbasedir'] = null; }
@@ -244,10 +246,10 @@ if($Settings['use_hashtype']!="md2"&&
    $Settings['use_hashtype']!="sha256"&&
    $Settings['use_hashtype']!="sha384"&&
    $Settings['use_hashtype']!="sha512"&&
-   $Settings['use_hashtype']!="sha3224"&&
-   $Settings['use_hashtype']!="sha3256"&&
-   $Settings['use_hashtype']!="sha3384"&&
-   $Settings['use_hashtype']!="sha3512"&&
+   $Settings['use_hashtype']!="sha3-224"&&
+   $Settings['use_hashtype']!="sha3-256"&&
+   $Settings['use_hashtype']!="sha3-384"&&
+   $Settings['use_hashtype']!="sha3-512"&&
    $Settings['use_hashtype']!="ripemd128"&&
    $Settings['use_hashtype']!="ripemd160"&&
    $Settings['use_hashtype']!="ripemd256"&&
@@ -280,20 +282,30 @@ if(!in_array("ini_set", $disfunc)) {
 @ini_set('default_charset', $Settings['charset']); }
 $File1Name = dirname($_SERVER['SCRIPT_NAME'])."/";
 $File2Name = $_SERVER['SCRIPT_NAME'];
-$File3Name=str_replace($File1Name, null, $File2Name);
+/*$File3Name=str_replace($File1Name, null, $File2Name);
 if ($File3Name=="sql.php"||$File3Name=="/sql.php") {
        header('Location: index.php');
-       exit(); }
+       exit(); }*/
+$File3Name = basename($_SERVER['SCRIPT_NAME']);
+if ($File3Name=="sql.php"||$File3Name=="/sql.php") {
+    header('Location: index.php');
+    exit(); }
 //error_reporting(E_ERROR);
 // Check if gzip is on and if user's browser can accept gzip pages
 if($_GET['act']=="MkCaptcha"||$_GET['act']=="Captcha") {
        $Settings['use_gzip'] = 'off'; }
 if($Settings['use_gzip']=="on") {
-if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) { 
-       $GZipEncode['Type'] = "gzip"; } else { 
-       if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "deflate")) { 
-       $GZipEncode['Type'] = "deflate"; } else { 
-               $Settings['use_gzip'] = "off"; $GZipEncode['Type'] = "none"; } } }
+if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "br")&&function_exists('brotli_compress')) { 
+       $GZipEncode['Type'] = "brotli"; } else { 
+       if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) { 
+               $GZipEncode['Type'] = "gzip"; } else { 
+               if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "deflate")) { 
+                       $GZipEncode['Type'] = "deflate"; } else { 
+                       $Settings['use_gzip'] = "off"; $GZipEncode['Type'] = "none"; } } } }
+if($Settings['use_gzip']=="brotli"&&function_exists('brotli_compress')) {
+if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "br")) { $Settings['use_brotli'] = "on";
+       $GZipEncode['Type'] = "brotli"; } else { $Settings['use_gzip'] = "off"; } }
+if($Settings['use_gzip']=="brotli"&&!function_exists('brotli_compress')) { $GZipEncode['Type'] = "gzip"; }
 if($Settings['use_gzip']=="gzip") {
 if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) { $Settings['use_gzip'] = "on";
        $GZipEncode['Type'] = "gzip"; } else { $Settings['use_gzip'] = "off"; } }
@@ -502,8 +514,8 @@ session_start([
     'gc_probability' => 1,
     'gc_divisor' => 100,
     'gc_maxlifetime' => 1440,
-    'hash_function' => 1,
-    'hash_bits_per_character' => 6,
+    //'hash_function' => 1,
+    //'hash_bits_per_character' => 6,
     'name' => $Settings['sqltable']."sess",
 ]); }
 if(!isset($_SESSION['UserFormID'])) { $_SESSION['UserFormID'] = null; }
@@ -522,8 +534,8 @@ session_start([
     'gc_probability' => 1,
     'gc_divisor' => 100,
     'gc_maxlifetime' => 1440,
-    'hash_function' => 1,
-    'hash_bits_per_character' => 6,
+    //'hash_function' => 1,
+    //'hash_bits_per_character' => 6,
     'name' => $Settings['sqltable']."sess",
 ]); }
 if(!isset($_SESSION['UserFormID'])) { $_SESSION['UserFormID'] = null; }
@@ -554,7 +566,11 @@ $iopts = array(
                 "From: ".$isiteurl."\r\n".
                 "Via: ".$_SERVER['REMOTE_ADDR']."\r\n".
                 "Forwarded: ".$_SERVER['REMOTE_ADDR']."\r\n".
+                "X-Real-IP: ".$_SERVER['REMOTE_ADDR']."\r\n".
                 "X-Forwarded-For: ".$_SERVER['REMOTE_ADDR']."\r\n".
+                "X-Forwarded-Host: ".$URLsTest['host']."\r\n".
+                "X-Forwarded-Proto: ".$URLsTest['scheme']."\r\n".
+                "Board-Unique-ID: ".$Settings['BoardUUID']."\r\n".
                 "Client-IP: ".$_SERVER['REMOTE_ADDR']."\r\n"
   )
 );
@@ -660,7 +676,8 @@ if($Settings['use_captcha']=="on") {
 if($_GET['act']=="MkCaptcha"||$_GET['act']=="Captcha") {
        if($Settings['captcha_clean']=="on") { ob_clean(); }
        require($SettDir['inc']."captcha.php");
-       $aFonts = array('inc/fonts/VeraBd.ttf', 'inc/fonts/VeraBI.ttf', 'inc/fonts/VeraIt.ttf', 'inc/fonts/Vera.ttf');
+       $aFontDir = dirname(__FILE__)."/inc/fonts/";
+       $aFonts = array($aFontDir.'VeraBd.ttf', $aFontDir.'VeraBI.ttf', $aFontDir.'VeraIt.ttf', $aFontDir.'Vera.ttf');
        $oPhpCaptcha = new PhpCaptcha($aFonts, 200, 60);
        $RNumSize = rand(7,17); $i=0; $RandNum = null;
        while ($i <= $RNumSize) {
@@ -800,13 +817,14 @@ function get_theme_values($matches) {
        if(!isset($ThemeSet[$matches[1]])) { $return_text = null; }
        return $return_text; }
 foreach($ThemeSet AS $key => $value) {
+    if(isset($ThemeSet[$key])) {
        $ThemeSet[$key] = preg_replace("/%%/s", "{percent}p", $ThemeSet[$key]);
        $ThemeSet[$key] = preg_replace_callback("/%\{([^\}]*)\}T/s", "get_theme_values", $ThemeSet[$key]);
        $ThemeSet[$key] = preg_replace_callback("/%\{([^\}]*)\}e/s", "get_env_values", $ThemeSet[$key]);
        $ThemeSet[$key] = preg_replace_callback("/%\{([^\}]*)\}i/s", "get_server_values", $ThemeSet[$key]);
        $ThemeSet[$key] = preg_replace_callback("/%\{([^\}]*)\}s/s", "get_setting_values", $ThemeSet[$key]);
        $ThemeSet[$key] = preg_replace_callback("/%\{([^\}]*)\}t/s", "get_time", $ThemeSet[$key]); 
-       $ThemeSet[$key] = preg_replace("/\{percent\}p/s", "%", $ThemeSet[$key]); }
+       $ThemeSet[$key] = preg_replace("/\{percent\}p/s", "%", $ThemeSet[$key]); } }
 if(!isset($ThemeSet['TableStyle'])) {
        $ThemeSet['TableStyle'] = "table"; }
 if(isset($ThemeSet['TableStyle'])) {