Subversion Repositories cheapmusic

Rev

Blame | Last modification | View Log | RSS feed

<?php

/***************************************************************************
 *   Copyright (C) 2009-2011 by Geo Varghese(www.seopanel.in)      *
 *   sendtogeo@gmail.com                                                                                                   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

$abspath = getcwd();
$abspath = preg_replace('/\/includes$/', '', $abspath);
if (!file_exists($abspath."/config/sp-config.php")) {
   $abspath = dirname ( realpath ( __FILE__ ) );
   $abspath = preg_replace('/\/includes$/', '', $abspath);
}
define( 'SP_ABSPATH', $abspath );

// global variable for sp db connection id
$SP_DB_CONN_OBJ = false;

if(file_exists(SP_ABSPATH."/config/sp-config.php")){
        
        # loads seo panel main config file
        include_once(SP_ABSPATH."/config/sp-config.php");
        
        if(!defined('SP_INSTALLED')){
                header('Location: install/');
                exit;
        }
        
        # check for curl with php 
        if (!function_exists('curl_init')) {
                print "
                        <div style='margin:50px 250px;font-size:13px;border:1px solid black;padding:5px;line-height:30px;background-color:#f4f7fa;color:#da3838'>
                        The <b>CURL is not Installed with PHP</b> in your <b>Server</b>.<br>
                        Please <b>INSTALL</b> it by referring <br><a href='http://php.net/manual/en/curl.setup.php'>http://php.net/manual/en/curl.setup.php</a>  
                        <br>or <br>Please <b>contact your web hosting provider to INSTALL</b> it.</div>";
                exit;
        }
        
        # load seo panel extra config variables
        if(file_exists(SP_ABSPATH."/config/sp-config-extra.php")){
                include_once(SP_ABSPATH."/config/sp-config-extra.php");
        }

        # debug settings
        if (SP_DEBUG){
                @ini_set("display_erros", "On");
                @ini_set("display_startup_errors", "On");
                error_reporting(E_ALL ^ E_NOTICE);
        } else {
                @ini_set("display_erros", "Off");
                @ini_set("display_startup_errors", "Off");
                error_reporting(0);
        }

        # system settings
        define('SP_CONFPATH', SP_ABSPATH."/config");
        define('SP_CTRLPATH', SP_ABSPATH."/controllers");
        define('SP_INCPATH', SP_ABSPATH."/includes");
        define('SP_LIBPATH', SP_ABSPATH."/libs");
        define('SP_TMPPATH', SP_ABSPATH."/tmp");        
        define('SP_PLUGINPATH', SP_ABSPATH."/plugins"); 
        define('SP_THEMEPATH', SP_ABSPATH."/themes");
        define('SP_DATAPATH', SP_ABSPATH."/install/data");
        define('SP_JSPATH', SP_WEBPATH."/js");
        define('SP_IMGPATH', SP_WEBPATH."/images");

        // include common functions
        include_once(SP_INCPATH.'/sp-common.php');
        
        # create database object
        include_once(SP_LIBPATH."/database.class.php");
        $dbObj = New Database(DB_ENGINE);
        $dbConn = $dbObj->dbConnect();
        
        // set system settings variables
        $sql = "select * from settings order by id";
        $settingsList = $dbConn->select($sql);
        foreach($settingsList as $settingsInfo){
                if(!defined($settingsInfo['set_name'])){
                        define($settingsInfo['set_name'], $settingsInfo['set_val']);
                }
        }
        
        // set system timezone
        if (defined('SP_TIME_ZONE') && (SP_TIME_ZONE != '') ) {
        
                // set timezone for mysql
                @ini_set( 'date.timezone', SP_TIME_ZONE);
                $sql = "select * from timezone where timezone_name='". SP_TIME_ZONE ."'";
                $timezoneInfo = $dbConn->select($sql, true);
        
                // set gmt difference
                if (!empty($timezoneInfo['gmt_diff'])) {
                        $sql = "set time_zone = '".$timezoneInfo['gmt_diff']."'";
                        $dbConn->query($sql);
                }
                
        }
        
        # web theme settings
        $sql = "select * from themes where status=1 order by id";
        $themeInfo = $dbConn->select($sql, true);
        $themeLocation = empty($themeInfo['folder']) ? "themes/classic" : "themes/".$themeInfo['folder'];
        define('SP_THEME_ABSPATH', SP_ABSPATH."/$themeLocation");
        define('SP_VIEWPATH', SP_ABSPATH."/$themeLocation/views");
        define('SP_CSSPATH', SP_WEBPATH."/$themeLocation/css");
        define('SP_THEME_WEB_PATH', SP_WEBPATH."/$themeLocation");      

        # to prevent sql injection
        if(!empty($_SERVER['REQUEST_METHOD']) && SP_PREVENT_SQL_INJECTION){
            
            # merge all post and get elements
        foreach (array_merge($_GET, $_POST) AS $name => $value) {
            
            # if not a numeric parameter
            if (is_string($value) && !empty($value) && !is_numeric($value)) {
                
                # exclude conditions for html, javascript save to database
                if (in_array($name, array('SP_GOOGLE_ANALYTICS_TRACK_CODE'))) {
                        continue;
                }
               
                # Search for patterns in the value of the parameter that indicate an SQL injection
                $pattern = '/(and|or)[\s\(\)\/\*]+(update|delete|select)\W|(select|update).+\.(password|email)|(select|update|delete).+users|<script>|<\/script>/im';
                
                # replace all matched strings
                while (preg_match($pattern, $value)) {
                    if (isset($_GET[$name])) {
                        $value = $_GET[$name] = $_REQUEST[$name] = preg_replace($pattern, '', $value);
                    } else {
                        $value = $_POST[$name] = $_REQUEST[$name] = preg_replace($pattern, '', $value);
                    }
                }
            }
        }
    }
    
        # create super class object
        include_once(SP_LIBPATH."/seopanel.class.php");
        $seopanel = New Seopanel();
        $seopanel->loadSeoPanel();
                
}else{
        die("<p>The config file could not be found.</p><p><a href=\"install/index.php\">Click here to install Seo Panel.</a></p>");
}

?>