• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

help - PDO PHP Extension

Hitman94

Member
Joined
Feb 9, 2009
Messages
88
Solutions
1
Reaction score
12
hey i use myacc slawkens/myaac (https://github.com/slawkens/myaac)

have in my page this error
PHP:
Warning: require_once(/var/www/html/config.local.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 59



Fatal error: require_once(): Failed opening required '/var/www/html/config.local.php' (include_path='.:/usr/share/php') in /var/www/html/index.php on line 59

index.php

PHP:
<?php
/**
* Project: MyAAC
*     Automatic Account Creator for Open Tibia Servers
* File: index.php
*
* This is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This software 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
* @package   MyAAC
* @author    Slawkens <[email protected]>
* @copyright 2017 MyAAC
* @link      http://my-aac.org
*/

// uncomment if your php.ini have display_errors disabled and you want to see errors
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
// error_reporting(E_ALL);

require_once('common.php');
require_once(SYSTEM . 'functions.php');

$uri = $_SERVER['REQUEST_URI'];

$tmp = BASE_DIR;
if(!empty($tmp))
    $uri = str_replace(BASE_DIR . '/', '', $uri);
else
    $uri = str_replace_first('/', '', $uri);

$uri = str_replace(array('index.php/', '?'), '', $uri);
define('URI', $uri);

if(preg_match("/^[A-Za-z0-9-_%\'+]+\.png$/i", $uri)) {
    $tmp = explode('.', $uri);
    $_REQUEST['name'] = urldecode($tmp[0]);
   
    chdir(TOOLS . 'signature');
    include(TOOLS . 'signature/index.php');
    exit();
}
else if(preg_match("/^(.*)\.(gif|jpg|png|jpeg|tiff|bmp|css|js|less|map|html|php|zip|rar|gz|ttf|woff|ico)$/i", $_SERVER['REQUEST_URI'])) {
    header("HTTP/1.0 404 Not Found");
    exit;
}

require_once(BASE . 'config.local.php');
if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed']))
{
    header('Location: ' . BASE_URL . 'install/');
    die('Setup detected that <b>install/</b> directory exists. Please visit <a href="' . BASE_URL . 'install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
}

$found = false;
if(empty($uri) || isset($_REQUEST['template'])) {
    $_REQUEST['p'] = 'news';
    $found = true;
}
else {
    $tmp = strtolower($uri);
    if(!preg_match('/[^A-z0-9_\-]/', $uri) && file_exists(SYSTEM . 'pages/' . $tmp . '.php')) {
        $_REQUEST['p'] = $uri;
        $found = true;
    }
    else {
        $rules = array(
            '/^account\/manage\/?$/' => array('subtopic' => 'accountmanagement'),
            '/^account\/create\/?$/' => array('subtopic' => 'createaccount'),
            '/^account\/lost\/?$/' => array('subtopic' => 'lostaccount'),
            '/^account\/logout\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'logout'),
            '/^account\/password\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_password'),
            '/^account\/register\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'register'),
            '/^account\/register\/new\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'register_new'),
            '/^account\/email\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_email'),
            '/^account\/info\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_info'),
            '/^account\/character\/create\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'create_character'),
            '/^account\/character\/name\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_name'),
            '/^account\/character\/sex\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_sex'),
            '/^account\/character\/delete\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'delete_character'),
            '/^account\/character\/comment\/[A-Za-z0-9-_%+\']+\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_comment', 'name' => '$3'),
            '/^account\/character\/comment\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'change_comment'),
            '/^account\/confirm_email\/[A-Za-z0-9-_]+\/?$/' => array('subtopic' => 'accountmanagement', 'action' => 'confirm_email', 'v' => '$2'),
            '/^characters\/[A-Za-z0-9-_%+\']+$/' => array('subtopic' => 'characters', 'name' => '$1'),
            '/^changelog\/[0-9]+\/?$/' => array('subtopic' => 'changelog', 'page' => '$1'),
            '/^commands\/add\/?$/' => array('subtopic' => 'commands', 'action' => 'add'),
            '/^commands\/edit\/?$/' => array('subtopic' => 'commands', 'action' => 'edit'),
            '/^faq\/add\/?$/' => array('subtopic' => 'faq', 'action' => 'add'),
            '/^faq\/edit\/?$/' => array('subtopic' => 'faq', 'action' => 'edit'),
            '/^forum\/add_board\/?$/' => array('subtopic' => 'forum', 'action' => 'add_board'),#
            '/^forum\/edit_board\/?$/' => array('subtopic' => 'forum', 'action' => 'edit_board'),
            '/^forum\/board\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_board', 'id' => '$2'),
            '/^forum\/board\/[0-9]+\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_board', 'id' => '$2', 'page' => '$3'),
            '/^forum\/thread\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_thread', 'id' => '$2'),
            '/^forum\/thread\/[0-9]+\/[0-9]+\/?$/' => array('subtopic' => 'forum', 'action' => 'show_thread', 'id' => '$2', 'page' => '$3'),
            '/^gallery\/add\/?$/' => array('subtopic' => 'gallery', 'action' => 'add'),
            '/^gallery\/edit\/?$/' => array('subtopic' => 'gallery', 'action' => 'edit'),
            '/^gallery\/[0-9]+\/?$/' => array('subtopic' => 'gallery', 'image' => '$1'),
            '/^gifts\/history\/?$/' => array('subtopic' => 'gifts', 'action' => 'show_history'),
            '/^guilds\/[A-Za-z0-9-_%+\']+$/' => array('subtopic' => 'guilds', 'action' => 'show', 'guild' => '$1'),
            '/^highscores\/[A-Za-z0-9-_]+\/[A-Za-z0-9-_]+\/[0-9]+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1', 'vocation' => '$2', 'page' => '$3'),
            '/^highscores\/[A-Za-z0-9-_]+\/[0-9]+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1', 'page' => '$2'),
            '/^highscores\/[A-Za-z0-9-_]+\/[A-Za-z0-9-_]+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1', 'vocation' => '$2'),
            '/^highscores\/[A-Za-z0-9-_\']+\/?$/' => array('subtopic' => 'highscores', 'list' => '$1'),
            '/^news\/add\/?$/' => array('subtopic' => 'news', 'action' => 'add'),
            '/^news\/edit\/?$/' => array('subtopic' => 'news', 'action' => 'edit'),
            '/^news\/archive\/?$/' => array('subtopic' => 'newsarchive'),
            '/^news\/archive\/[0-9]+\/?$/' => array('subtopic' => 'newsarchive', 'id' => '$2'),
            '/^polls\/[0-9]+\/?$/' => array('subtopic' => 'polls', 'id' => '$1'),
            '/^spells\/[A-Za-z0-9-_%]+\/[A-Za-z0-9-_]+\/?$/' => array('subtopic' => 'spells', 'vocation' => '$1', 'order' => '$2'),
            '/^gifts\/history\/?$/' => array('subtopic' => 'gifts', 'action' => 'show_history'),
        );
       
        foreach($rules as $rule => $redirect) {
            if (preg_match($rule, $uri)) {
                $tmp = explode('/', $uri);
                foreach($redirect as $key => $value) {
                   
                    if(strpos($value, '$') !== false) {
                        $value = str_replace('$' . $value[1], $tmp[$value[1]], $value);
                    }
                   
                    $_REQUEST[$key] = $value;
                    $_GET[$key] = $value;
                }
               
                $found = true;
                break;
            }
        }
    }
}

// define page visited, so it can be used within events system
$page = isset($_REQUEST['subtopic']) ? $_REQUEST['subtopic'] : (isset($_REQUEST['p']) ? $_REQUEST['p'] : '');
if(empty($page) || !preg_match('/^[A-z0-9\_\-]+$/', $page)) {
    $tmp = URI;
    if(!empty($tmp)) {
        $page = $tmp;
    }
    else {
        if(!$found)
            $page = '404';
        else
            $page = 'news';
    }
}

$page = strtolower($page);
define('PAGE', $page);

$template_place_holders = array();

require_once(SYSTEM . 'init.php');
require_once(SYSTEM . 'template.php');
require_once(SYSTEM . 'login.php');
require_once(SYSTEM . 'status.php');

$twig->addGlobal('config', $config);
$twig->addGlobal('status', $status);

// database migrations
$tmp = '';
if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
    $tmp = (int)$tmp;
    if($tmp < DATABASE_VERSION) { // import if older
        for($i = $tmp + 1; $i <= DATABASE_VERSION; $i++) {
            require(SYSTEM . 'migrations/' . $i . '.php');
            updateDatabaseConfig('database_version', $i);
        }
    }
}
else { // register first version
    registerDatabaseConfig('database_version', 0);
    for($i = 1; $i <= DATABASE_VERSION; $i++) {
        require(SYSTEM . 'migrations/' . $i . '.php');
        updateDatabaseConfig('database_version', $i);
    }
}

// event system
require_once(SYSTEM . 'hooks.php');
$hooks = new Hooks();
$hooks->load();
$hooks->trigger(HOOK_STARTUP);

// anonymous usage statistics
// sent only when user agrees
if(isset($config['anonymous_usage_statistics']) && $config['anonymous_usage_statistics']) {
    $report_time = 30 * 24 * 60 * 60; // report one time per 30 days
    $should_report = true;
   
    $value = '';
    if($cache->enabled() && $cache->fetch('last_usage_report', $value)) {
        $should_report = time() > (int)$value + $report_time;
    }
    else {
        $value = '';
        if(fetchDatabaseConfig('last_usage_report', $value)) {
            $should_report = time() > (int)$value + $report_time;
            if($cache->enabled()) {
                $cache->set('last_usage_report', $value);
            }
        }
        else {
            registerDatabaseConfig('last_usage_report', time() - ($report_time - (7 * 24 * 60 * 60))); // first report after a week
            $should_report = false;
        }
    }
   
    if($should_report) {
        require_once(LIBS . 'usage_statistics.php');
        Usage_Statistics::report();
       
        updateDatabaseConfig('last_usage_report', time());
        if($cache->enabled()) {
            $cache->set('last_usage_report', time());
        }
    }
}

if($config['views_counter'])
    require_once(SYSTEM . 'counter.php');

if($config['visitors_counter'])
{
    require_once(SYSTEM . 'libs/visitors.php');
    $visitors = new Visitors($config['visitors_counter_ttl']);
}

// page content loading
if(!isset($content[0]))
    $content = '';
$load_it = true;

// check if site has been closed
$site_closed = false;
if(fetchDatabaseConfig('site_closed', $site_closed)) {
    $site_closed = ($site_closed == 1);
    if($site_closed) {
        if(!admin())
        {
            $title = getDatabaseConfig('site_closed_title');
            $content .= '<p class="note">' . getDatabaseConfig('site_closed_message') . '</p><br/>';
            $load_it = false;
        }

        if(!$logged)
        {
            ob_start();
            require(SYSTEM . 'pages/accountmanagement.php');
            $content .= ob_get_contents();
            ob_end_clean();
            $load_it = false;
        }
    }
}
define('SITE_CLOSED', $site_closed);

// backward support for gesior
if($config['backward_support']) {
    define('INITIALIZED', true);
    $SQL = $db;
    $layout_header = template_header();
    $layout_name = $template_path;
    $news_content = '';
    $tickers_content = '';
    $subtopic = PAGE;
    $main_content = '';
   
    $config['access_admin_panel'] = 2;
    $group_id_of_acc_logged = 0;
    if($logged && $account_logged)
        $group_id_of_acc_logged = $account_logged->getGroupId();

    $config['site'] = &$config;
    $config['server'] = &$config['lua'];
    $config['site']['shop_system'] = $config['gifts_system'];

    if(!isset($config['vdarkborder']))
        $config['vdarkborder'] = '#505050';
    if(!isset($config['darkborder']))
        $config['darkborder'] = '#D4C0A1';
    if(!isset($config['lightborder']))
        $config['lightborder'] = '#F1E0C6';

    $config['site']['download_page'] = true;
    $config['site']['serverinfo_page'] = true;
    $config['site']['screenshot_page'] = true;
   
    if($config['forum'] != '')
        $config['forum_link'] = (strtolower($config['forum']) == 'site' ? getLink('forum') : $config['forum']);

    foreach($status as $key => $value)
        $config['status']['serverStatus_' . $key] = $value;
}

if($load_it)
{
    if(SITE_CLOSED && admin())
        $content .= '<p class="note">Site is under maintenance (closed mode). Only privileged users can see it.</p>';

    if($config['backward_support'])
        require(SYSTEM . 'compat_pages.php');

    $ignore = false;

    $logged_access = 1;
    if($logged && $account_logged && $account_logged->isLoaded()) {
        $logged_access = $account_logged->getAccess();
    }

    $query =
        $db->query(
            'SELECT `id`, `title`, `body`, `php`, `hidden`' .
            ' FROM `' . TABLE_PREFIX . 'pages`' .
            ' WHERE `name` LIKE ' . $db->quote($page) . ' AND `hidden` != 1 AND `access` <= ' . $db->quote($logged_access));
    if($query->rowCount() > 0) // found page
    {
        $ignore = true;
        $query = $query->fetch();
        $title = $query['title'];

        if($query['php'] == '1') // execute it as php code
        {
            $tmp = substr($query['body'], 0, 10);
            if(($pos = strpos($tmp, '<?php')) !== false) {
                $tmp = preg_replace('/<\?php/', '', $query['body'], 1);
            }
            else if(($pos = strpos($tmp, '<?')) !== false) {
                $tmp = preg_replace('/<\?/', '', $query['body'], 1);
            }
            else
                $tmp = $query['body'];

            $php_errors = array();
            function error_handler($errno, $errstr) {
                global $php_errors;
                $php_errors[] = array('errno' => $errno, 'errstr' => $errstr);
            }
            set_error_handler('error_handler');

            ob_start();
            eval($tmp);
            $content .= ob_get_contents();
            ob_end_clean();

            restore_error_handler();
            if(isset($php_errors[0]) && superAdmin()) {
                var_dump($php_errors);
            }
        }
        else
            $content .= $query['body']; // plain html
       
        if(hasFlag(FLAG_CONTENT_PAGES) || superAdmin()) {
            $content = $twig->render('admin.pages.links.html.twig', array(
                'page' => array('id' => $query['id'], 'hidden' => $query['hidden'])
            )) . $content;
        }
    }
    else
    {
        $file = SYSTEM . 'pages/' . $page . '.php';
        if(!@file_exists($file))
        {
            $page = '404';
            $file = SYSTEM . 'pages/404.php';
        }
    }

    ob_start();
    if($hooks->trigger(HOOK_BEFORE_PAGE)) {
        if(!$ignore)
            require($file);
    }

    if($config['backward_support'] && isset($main_content[0]))
        $content .= $main_content;

    $content .= ob_get_contents();
    ob_end_clean();
    $hooks->trigger(HOOK_AFTER_PAGE);
}

if($config['backward_support']) {
    $main_content = $content;
    if(!isset($title))
        $title = ucfirst($page);

    $topic = $title;
}

$title_full =  (isset($title) ? $title . $config['title_separator'] : '') . $config['lua']['serverName'];
if(file_exists($template_path . '/index.php'))
    require($template_path . '/index.php');
else if(file_exists($template_path . '/template.php')) // deprecated
    require($template_path . '/template.php');
else if($config['backward_support'] && file_exists($template_path . '/layout.php'))
{
    require($template_path . '/layout.php');
}
else
{
    // TODO: save more info to log file
    die('ERROR: Cannot load template.');
}

echo '<!-- MyAAC ' . MYAAC_VERSION . ' :: http://www.my-aac.org/ -->' . "\n";
if(($config['debug_level'] & 1) == 1)
    echo '<!-- Generated in :: ' . round(microtime(true) - START_TIME, 4) . ' -->';

if(($config['debug_level'] & 2) == 2)
    echo "\n" . '<!-- Queries done :: ' . $db->queries() . ' -->';

if(($config['debug_level'] & 4) == 4 && function_exists('memory_get_peak_usage'))
    echo "\n" . '<!-- Peak memory usage: ' . convert_bytes(memory_get_peak_usage(true)) . ' -->';

$hooks->trigger(HOOK_FINISH);
?>

common.php

PHP:
// directories
define('BASE', dirname(__FILE__) . '/');


Linux debian 9 , php 7.2
 
Back
Top