Cash Mod Error.

Ashley S

Paragon
Joined
Jun 7, 2010
Messages
2,074
Reaction score
34
FP$
501
Code:
Parse error: syntax error, unexpected $end in /home/forums/public_html/includes/cache.php on line 457

My cache file is below click on Spoiler.

Code:
<?php
/**
*
* @package acm
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
    exit;
}

/**
* Class for grabbing/handling cached entries, extends acm_file or acm_db depending on the setup
* @package acm
*/
class cache extends acm
{
/**
    * Get Ultimate Points config values
    */
    function obtain_points_config()
    {
        global $db;

        if (($points_config = $this->get('pointsconfig')) !== false)
        {
            $sql = 'SELECT config_name, config_value
                FROM ' . POINTS_CONFIG_TABLE;
            $result = $db->sql_query($sql);

    /**
    * Get config values
    */
    function obtain_config()
    {
        global $db;

        if (($config = $this->get('config')) !== false)
        {
            $sql = 'SELECT config_name, config_value
                FROM ' . CONFIG_TABLE . '
                WHERE is_dynamic = 1';
            $result = $db->sql_query($sql);

            while ($row = $db->sql_fetchrow($result))
            {
                $config[$row['config_name']] = $row['config_value'];
            }
            $db->sql_freeresult($result);
        }
        else
        {
            $config = $cached_config = array();

            $sql = 'SELECT config_name, config_value, is_dynamic
                FROM ' . CONFIG_TABLE;
            $result = $db->sql_query($sql);

            while ($row = $db->sql_fetchrow($result))
            {
                if (!$row['is_dynamic'])
                {
                    $cached_config[$row['config_name']] = $row['config_value'];
                }

                $config[$row['config_name']] = $row['config_value'];
            }
            $db->sql_freeresult($result);

            $this->put('config', $cached_config);
        }

        return $config;
    }

    /**
    * Obtain list of naughty words and build preg style replacement arrays for use by the
    * calling script
    */
    function obtain_word_list()
    {
        global $db;

        if (($censors = $this->get('_word_censors')) === false)
        {
            $sql = 'SELECT word, replacement
                FROM ' . WORDS_TABLE;
            $result = $db->sql_query($sql);

            $censors = array();
            while ($row = $db->sql_fetchrow($result))
            {
                if ((version_compare(PHP_VERSION, '5.1.0', '>=') || (version_compare(PHP_VERSION, '5.0.0-dev', '<=') && version_compare(PHP_VERSION, '4.4.0', '>='))) && @preg_match('/\p{L}/u', 'a') !== false)
                {
                    $censors['match'][] = '#(?<![\p{Nd}\p{L}_])(' . str_replace('\*', '[\p{Nd}\p{L}_]*?', preg_quote($row['word'], '#')) . ')(?![\p{Nd}\p{L}_])#iu';
                }
                else
                {
                    $censors['match'][] = '#(?<!\S)(' . str_replace('\*', '\S*?', preg_quote($row['word'], '#')) . ')(?!\S)#iu';
                }

                $censors['replace'][] = $row['replacement'];
            }
            $db->sql_freeresult($result);

            $this->put('_word_censors', $censors);
        }

        return $censors;
    }

    /**
    * Obtain currently listed icons
    */
    function obtain_icons()
    {
        if (($icons = $this->get('_icons')) === false)
        {
            global $db;

            // Topic icons
            $sql = 'SELECT *
                FROM ' . ICONS_TABLE . '
                ORDER BY icons_order';
            $result = $db->sql_query($sql);

            $icons = array();
            while ($row = $db->sql_fetchrow($result))
            {
                $icons[$row['icons_id']]['img'] = $row['icons_url'];
                $icons[$row['icons_id']]['width'] = (int) $row['icons_width'];
                $icons[$row['icons_id']]['height'] = (int) $row['icons_height'];
                $icons[$row['icons_id']]['display'] = (bool) $row['display_on_posting'];
            }
            $db->sql_freeresult($result);

            $this->put('_icons', $icons);
        }

        return $icons;
    }

    /**
    * Obtain ranks
    */
    function obtain_ranks()
    {
        if (($ranks = $this->get('_ranks')) === false)
        {
            global $db;

            $sql = 'SELECT *
                FROM ' . RANKS_TABLE . '
                ORDER BY rank_min DESC';
            $result = $db->sql_query($sql);

            $ranks = array();
            while ($row = $db->sql_fetchrow($result))
            {
                if ($row['rank_special'])
                {
                    $ranks['special'][$row['rank_id']] = array(
                        'rank_title'    =>    $row['rank_title'],
                        'rank_image'    =>    $row['rank_image']
                    );
                }
                else
                {
                    $ranks['normal'][] = array(
                        'rank_title'    =>    $row['rank_title'],
                        'rank_min'        =>    $row['rank_min'],
                        'rank_image'    =>    $row['rank_image']
                    );
                }
            }
            $db->sql_freeresult($result);

            $this->put('_ranks', $ranks);
        }

        return $ranks;
    }

    /**
    * Obtain allowed extensions
    *
    * @param mixed $forum_id If false then check for private messaging, if int then check for forum id. If true, then only return extension informations.
    *
    * @return array allowed extensions array.
    */
    function obtain_attach_extensions($forum_id)
    {
        if (($extensions = $this->get('_extensions')) === false)
        {
            global $db;

            $extensions = array(
                '_allowed_post'    => array(),
                '_allowed_pm'    => array(),
            );

            // The rule is to only allow those extensions defined. ;)
            $sql = 'SELECT e.extension, g.*
                FROM ' . EXTENSIONS_TABLE . ' e, ' . EXTENSION_GROUPS_TABLE . ' g
                WHERE e.group_id = g.group_id
                    AND (g.allow_group = 1 OR g.allow_in_pm = 1)';
            $result = $db->sql_query($sql);

            while ($row = $db->sql_fetchrow($result))
            {
                $extension = strtolower(trim($row['extension']));

                $extensions[$extension] = array(
                    'display_cat'    => (int) $row['cat_id'],
                    'download_mode'    => (int) $row['download_mode'],
                    'upload_icon'    => trim($row['upload_icon']),
                    'max_filesize'    => (int) $row['max_filesize'],
                    'allow_group'    => $row['allow_group'],
                    'allow_in_pm'    => $row['allow_in_pm'],
                );

                $allowed_forums = ($row['allowed_forums']) ? unserialize(trim($row['allowed_forums'])) : array();

                // Store allowed extensions forum wise
                if ($row['allow_group'])
                {
                    $extensions['_allowed_post'][$extension] = (!sizeof($allowed_forums)) ? 0 : $allowed_forums;
                }

                if ($row['allow_in_pm'])
                {
                    $extensions['_allowed_pm'][$extension] = 0;
                }
            }
            $db->sql_freeresult($result);

            $this->put('_extensions', $extensions);
        }

        // Forum post
        if ($forum_id === false)
        {
            // We are checking for private messages, therefore we only need to get the pm extensions...
            $return = array('_allowed_' => array());

            foreach ($extensions['_allowed_pm'] as $extension => $check)
            {
                $return['_allowed_'][$extension] = 0;
                $return[$extension] = $extensions[$extension];
            }

            $extensions = $return;
        }
        else if ($forum_id === true)
        {
            return $extensions;
        }
        else
        {
            $forum_id = (int) $forum_id;
            $return = array('_allowed_' => array());

            foreach ($extensions['_allowed_post'] as $extension => $check)
            {
                // Check for allowed forums
                if (is_array($check))
                {
                    $allowed = (!in_array($forum_id, $check)) ? false : true;
                }
                else
                {
                    $allowed = true;
                }

                if ($allowed)
                {
                    $return['_allowed_'][$extension] = 0;
                    $return[$extension] = $extensions[$extension];
                }
            }

            $extensions = $return;
        }

        if (!isset($extensions['_allowed_']))
        {
            $extensions['_allowed_'] = array();
        }

        return $extensions;
    }

    /**
    * Obtain active bots
    */
    function obtain_bots()
    {
        if (($bots = $this->get('_bots')) === false)
        {
            global $db;

            switch ($db->sql_layer)
            {
                case 'mssql':
                case 'mssql_odbc':
                    $sql = 'SELECT user_id, bot_agent, bot_ip
                        FROM ' . BOTS_TABLE . '
                        WHERE bot_active = 1
                    ORDER BY LEN(bot_agent) DESC';
                break;

                case 'firebird':
                    $sql = 'SELECT user_id, bot_agent, bot_ip
                        FROM ' . BOTS_TABLE . '
                        WHERE bot_active = 1
                    ORDER BY CHAR_LENGTH(bot_agent) DESC';
                break;

                // LENGTH supported by MySQL, IBM DB2 and Oracle for sure...
                default:
                    $sql = 'SELECT user_id, bot_agent, bot_ip
                        FROM ' . BOTS_TABLE . '
                        WHERE bot_active = 1
                    ORDER BY LENGTH(bot_agent) DESC';
                break;
            }
            $result = $db->sql_query($sql);

            $bots = array();
            while ($row = $db->sql_fetchrow($result))
            {
                $bots[] = $row;
            }
            $db->sql_freeresult($result);

            $this->put('_bots', $bots);
        }

        return $bots;
    }

    /**
    * Obtain cfg file data
    */
    function obtain_cfg_items($theme)
    {
        global $config, $phpbb_root_path;

        $parsed_items = array(
            'theme'        => array(),
            'template'    => array(),
            'imageset'    => array()
        );

        foreach ($parsed_items as $key => $parsed_array)
        {
            $parsed_array = $this->get('_cfg_' . $key . '_' . $theme[$key . '_path']);

            if ($parsed_array === false)
            {
                $parsed_array = array();
            }

            $reparse = false;
            $filename = $phpbb_root_path . 'styles/' . $theme[$key . '_path'] . '/' . $key . '/' . $key . '.cfg';

            if (!file_exists($filename))
            {
                continue;
            }

            if (!isset($parsed_array['filetime']) || (($config['load_tplcompile'] && @filemtime($filename) > $parsed_array['filetime'])))
            {
                $reparse = true;
            }

            // Re-parse cfg file
            if ($reparse)
            {
                $parsed_array = parse_cfg_file($filename);
                $parsed_array['filetime'] = @filemtime($filename);

                $this->put('_cfg_' . $key . '_' . $theme[$key . '_path'], $parsed_array);
            }
            $parsed_items[$key] = $parsed_array;
        }

        return $parsed_items;
    }

    /**
    * Obtain disallowed usernames
    */
    function obtain_disallowed_usernames()
    {
        if (($usernames = $this->get('_disallowed_usernames')) === false)
        {
            global $db;

            $sql = 'SELECT disallow_username
                FROM ' . DISALLOW_TABLE;
            $result = $db->sql_query($sql);

            $usernames = array();
            while ($row = $db->sql_fetchrow($result))
            {
                $usernames[] = str_replace('%', '.*?', preg_quote(utf8_clean_string($row['disallow_username']), '#'));
            }
            $db->sql_freeresult($result);

            $this->put('_disallowed_usernames', $usernames);
        }

        return $usernames;
    }

    /**
    * Obtain hooks...
    */
    function obtain_hooks()
    {
        global $phpbb_root_path, $phpEx;

        if (($hook_files = $this->get('_hooks')) === false)
        {
            $hook_files = array();

            // Now search for hooks...
            $dh = @opendir($phpbb_root_path . 'includes/hooks/');

            if ($dh)
            {
                while (($file = readdir($dh)) !== false)
                {
                    if (strpos($file, 'hook_') === 0 && substr($file, -(strlen($phpEx) + 1)) === '.' . $phpEx)
                    {
                        $hook_files[] = substr($file, 0, -(strlen($phpEx) + 1));
                    }
                }
                closedir($dh);
            }

            $this->put('_hooks', $hook_files);
        }

        return $hook_files;
    }
}

Line - 457 ?>

All there is on line 457 is ?>
 
i dont know php but the error said 'unexpected end' and i think ?> is a end in php, im not sure what you have to do though
 
have you checked to see if there are any spaces or new lines after the ending ?> ?

If memory serves me correctly, it can cause some errors if there is a space before <?php and after ?>

What editor were you using to edit the file?
 
Ashley.S. said:
have you checked to see if there are any spaces or new lines after the ending ?> ?

If memory serves me correctly, it can cause some errors if there is a space before <?php and after ?>

What editor were you using to edit the file?


thats how i fixed what happened to me once.

Delete all spaces after ?>
 
There's no spaces, I was using the Control Panel Editor to edit the files.
 
Ive fixed that know it's a viewtopic error on like 976.

Find:
Tip: This may be a partial find and not the whole line.

Code:
$sql = $db->sql_build_query('SELECT', array(
    'SELECT'    => 'u.*, z.friend, z.foe, p.*

In-line Find:
Tip: This is a partial match of a line for in-line operations.

Code:
'u.*, z.friend, z.foe, p.*

In-line Add after:

Code:
, pb.id AS pb_id, pb.holding AS pb_holding

And this is what it should look like at the end and ive done it the way it said :/.

The full code.
Code:
$sql = $db->sql_build_query('SELECT', array(
    'SELECT'    => 'u.*, z.friend, z.foe, p.*', pb.id AS pb_id, pb.holding AS pb_holding

The Error

Code:
Parse error: syntax error, unexpected T_AS, expecting ')' in /home/forums/public_html/viewtopic.php on line 976
 
you added the code in the wrong place, it should look like this:

Code:
$sql = $db->sql_build_query('SELECT', array(
    'SELECT'    => 'u.*, z.friend, z.foe, p.*, pb.id AS pb_id, pb.holding AS pb_holding'
 
Done now this error 🙁.

Code:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/forums/public_html/viewtopic.php on line 978

Code below

Code:
 Line 978 >  'FROM'        => array(
        USERS_TABLE        => 'u',
        POSTS_TABLE        => 'p',
    ),
 
what's on line 978? you must either be doing the installation wrong somewhere, got a mod clash somewhere, or are using a mod that does not work for the latest version of phpBB3.

What mod are you trying to install?
 
Double check all the edits you have done. More then likely you have messed one up.
 
🙁. It's a big modification ive used since ive been a web master.
I would need a expert to help me with it 🙁.

Which is more than likely no one will do it because it's a big modification.
 
ok, my apologies, try replacing:

Code:
$sql = $db->sql_build_query('SELECT', array(
    'SELECT'    => 'u.*, z.friend, z.foe, p.*, pb.id AS pb_id, pb.holding AS pb_holding'

with:

Code:
$sql = $db->sql_build_query('SELECT', array(
    'SELECT'    => 'u.*, z.friend, z.foe, p.*, pb.id AS pb_id, pb.holding AS pb_holding

and see if that helps.

Your bound to find someone willing to install the mod for you, but it may cost seeing as it's a big mod.
 
Still not working Ashley 🙁.
It's only 978

Code:
Parse error: syntax error, unexpected T_STRING, expecting ')' in /home/forums/public_html/viewtopic.php on line 978

This is line 978 below
Code:
'FROM'        => array(
 
Im not a expert but try this

Original:
Code:
'FROM'        => array(

replace with
Code:
'FROM'        => array)
 
go back to a recent backup of the file before the error started happening and start again.

It's easier to work from a working file, and to start again, than to try and troubleshoot and work around code already there.

All I can think of now is that you are still incorrectly editing them, either have a mod clash somewhere, or that there are other edits out of place causing the error to occur.

I'll drop you a PM about some installation help that I may be able to offer you 😉
 
I have no backup 😛. I thought it would be nice and easy.
If you want i will stick the Install back on forums promotion while you do it 😛?.

And if it works i will pay you 750 FP$?.
 
Back
Top Bottom