Page 2 of 3

PostPosted: Thu Apr 20, 2006 2:37 pm
Author: found it
[quote=""gcomfx.com";p="2477""]Also have you guys quoted anyone with images yet?

http://100mphclub.com/community/viewtop ... 2914#32914

The quote is not expanded, but takes the space as if it were. :mrgreen: <img>

PostPosted: Fri Apr 21, 2006 5:30 am
Author: Eon
I was going to say the same thing Found it.

I wasn't being bossy Found it. I could do the changes and stuff if you are asking for help.

<img>

Also, the bbcode.php in the zip file, is that the one we are supposed to use if we are using the premodded files?

gcomfx.com---

At that thread, there is a line to find, then a line to add I believe. Did you use the premodded files or make the changes manually?

If you downloaded a version before the bbcode.php was fixed, and you used it, then there is a fix in it as well.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 21, 2006 5:46 am
Author: found it
"Threat009";p="2446" wrote:
"found it";p="2365" wrote:hi

can you place a zip file or a txt file so ican compare you posting.php as the site has screwed up your copy....

:mrgreen:

Thanks for taking the time to compare. I'm not sure why no one else has had this problem yet, but I'm guessing it may have something to do w/a mod I've installed in the past.

[url=http]posting.php.zip[/url]


Hi

your posting.php file is showing exactly the same as mine...have you added any mods to your site that need to be added in posting.php....?

let me know what mods you have added andwe can see if we can find the problem

:mrgreen:

PostPosted: Fri Apr 21, 2006 7:26 am
Author: gcomfx.com
"found it";p="2479" wrote:
"gcomfx.com";p="2477" wrote:Also have you guys quoted anyone with images yet?

http://100mphclub.com/community/viewtop ... 2914#32914

The quote is not expanded, but takes the space as if it were. :mrgreen: <img>


Nope, apparently it's a new issue with Safari since the upgrade. And right after the upgrade to Safari finally fixed the add a smilie or BBcode from the button menus. LOL Oh well, I would rather have this problem than the other.

PostPosted: Fri Apr 21, 2006 7:33 am
Author: gcomfx.com
"Eon";p="2548" wrote:gcomfx.com---

At that thread, there is a line to find, then a line to add I believe. Did you use the premodded files or make the changes manually?

If you downloaded a version before the bbcode.php was fixed, and you used it, then there is a fix in it as well.


I downloaded the file and installed it right before I posted. I used the premodded files. That manual stuff makes my head spin. <img>

So I need to download it again and then extract and install the bbcode.php in the zip file inside the download now?

PostPosted: Fri Apr 21, 2006 8:49 am
Author: Eon
Is the zip file the fixed bbcode file Found it?

PostPosted: Fri Apr 21, 2006 9:02 am
Author: found it
"Eon";p="2569" wrote:Is the zip file the fixed bbcode file Found it?


yes it is and the extra fix is included in fuctions_post.php

:mrgreen:

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 21, 2006 9:12 am
Author: Threat009
"Threat009";p="2446" wrote:
[url=http]posting.php.zip[/url]


bump* Can anyone help w/this issue? Forums are totally down. No news, posting, quoting, nothing. Any attempt results in Parse error: parse error, unexpected $ in posting.php on line 1339

PostPosted: Fri Apr 21, 2006 10:58 am
Author: Eon
Do you have a backup of your posting.php before you applied the edits?

Although due to the fact that there is only 1 small edit in posting.php I am guessing that is not the real problem. At least not in that file.

I would put your backups back in place for the mean time until this can be sorted out.

Also, if you have kept up with what mods you have installed and what files were editted for those mods, you can go through and drop the pre-modded files into place that were not changed from the stock IM 140 with phpbb2.0.19 and phpbb security 1.03.

Then just make the changes to the files that were editted from mods or bug fixes.


That is what I did, was a lot quicker.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 21, 2006 12:16 pm
Author: found it
"Threat009";p="2574" wrote:
"Threat009";p="2446" wrote:
[url=http]posting.php.zip[/url]


bump* Can anyone help w/this issue? Forums are totally down. No news, posting, quoting, nothing. Any attempt results in Parse error: parse error, unexpected $ in posting.php on line 1339


Hi I responded to your post a few hours ago here

http://integramod.com/forum/viewtopic.php?p=2551#2551

but you didnt go back a page in this topic....

:mrgreen:

PostPosted: Fri Apr 21, 2006 1:54 pm
Author: Threat009
"Eon";p="2590" wrote:Do you have a backup of your posting.php before you applied the edits?

Although due to the fact that there is only 1 small edit in posting.php I am guessing that is not the real problem. At least not in that file.

I would put your backups back in place for the mean time until this can be sorted out.

Also, if you have kept up with what mods you have installed and what files were editted for those mods, you can go through and drop the pre-modded files into place that were not changed from the stock IM 140 with phpbb2.0.19 and phpbb security 1.03.

Then just make the changes to the files that were editted from mods or bug fixes.


That is what I did, was a lot quicker.

An excellent suggestion. I overwrote all of my manual files w/the premodded ones and that seems to have done the trick! I have a folder that I keep all mods and add-ons in, so I did a search in that folder for any of the premodded files, and none were found so I got lucky on that one. I don't quite understand why the manual edits involve memberlist.php and posting.php but the pre-modded folder does not have them. :)

PostPosted: Fri Apr 21, 2006 2:42 pm
Author: Eon
I believe the bbcode.php that is included in the zip file is the correct one to use. And no it will not cause any problems just replacing the one you have with the new one. Unless of course you have made a mod to it since you dropped it in.

Make sure your quotes and everything work.

Otherwise happy forum whoring!

PostPosted: Sat Apr 22, 2006 1:44 pm
Author: Threat009
"Eon";p="2596" wrote:I believe the bbcode.php that is included in the zip file is the correct one to use. And no it will not cause any problems just replacing the one you have with the new one. Unless of course you have made a mod to it since you dropped it in.

Make sure your quotes and everything work.

Otherwise happy forum whoring!

Overwrote the file, tested quote/s, everything seems to be running smoothly. Thanks to E1 for the assist! <img>

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sat Apr 22, 2006 1:50 pm
Author: RedRobin
Hi everyone!

I guess the quickest way to install and update your portal (stock) is by doing the following steps below in strict order:

[list type=decimal][*]IntegraMOD 140
[*]phpBB 2.0.17 to 2.0.19 Integramod 140
[*]phpBB Security 1.02 to 1.03 IM 140
[*]phpBB 2.0.19 to 2.0.20 Integramod 140
[*]Apply the fix on your integraMOD-root/admin/admin_ranks.php if you used the ZIP file with pre-modded files.[/list]


As stated by found it, the correct code in admin_ranks.php should be]         $confirm = isset($HTTP_POST_VARS['confirm']);                 if( $rank_id && $confirm )[/code]

I suggest that all files should be core and un-modded before upgrading. It is much easier that way. I have success in updating my test site using these procedures. In the end, it should give you these results at your ACP:

[url=http][flash=,:nnokexpr]http://img65.imageshack.us/img65/6797/untitled4ab.jpg[/flash:nnokexpr][/url]

That's it! I hope you find my post informative. I'm new here and an amateur when it comes to PHP but I'm having a good start in contributing to this community.

<img>

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sat Apr 22, 2006 2:00 pm
Author: RedRobin
Also, I would like to add that I didn't edit a single file (except for the fix in admin_ranks.php) in my process of upgrading my integraMOD site.

All the ZIP files that I downloaded have "premodded folders". I only upload all the files within these folders to my server, overwriting the old ones before executing the installer for database updates.

These are all fresh installs. No "other" mods included. If this is your case, there should be no problem.

<img>

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sat Apr 22, 2006 2:28 pm
Author: Threat009
My site seems to be running fine, but this is starting to get a little confusing. If we are supposed to use bbcode.zip why is bbcode.php even included in the premodded folder? I guess that doesn't matter so long as everyone knows to use the .zip file, but than I read that if I use the .zip, which sounds like I had a choice, than apply fix to admin_ranks.php

WoW! This is one confusing update! Can someone confirm, Is premodded files/admin/admin_ranks.php correct? Or does it need an edit when you use bbcode.zip? :?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sat Apr 22, 2006 2:44 pm
Author: found it
"Threat009";p="2687" wrote:My site seems to be running fine, but this is starting to get a little confusing. If we are supposed to use bbcode.zip why is bbcode.php even included in the premodded folder? I guess that doesn't matter so long as everyone knows to use the .zip file, but than I read that if I use the .zip, which sounds like I had a choice, than apply fix to admin_ranks.php

WoW! This is one confusing update! Can someone confirm, Is premodded files/admin/admin_ranks.php correct? Or does it need an edit when you use bbcode.zip? :?


Hi

Sorry if the files got confusing ....lol they did for me uploading them.....ignore the bbcode zip...that ws on my comp but got loaded up.....

the fix (admin_rank.php) does need to be applied when using the premodded files as i made an error.....

if your site is working as it dhould then i would not worry.....

Again sorry for any confusion it was not the easiest of updates to do.....

:mrgreen:

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sat Apr 22, 2006 3:04 pm
Author: Threat009
Thankyou for confirming :mrgreen:

PostPosted: Mon Apr 24, 2006 12:34 pm
Author: Eon
I just noticed this, but my button in the ACP that goes to Ranks is not there any more. And I applied the fix to admin_ranks.php.

And also my quotes have quit working again. Made no changes at all.

PostPosted: Mon Apr 24, 2006 4:53 pm
Author: Thug Lyfe
After seeing all these errors...i'm really scared because i'll most likely screw up lol. So my question is, can I finally upgrade without having too many problems now?
I mean ther'es like 8 pages of questions lol, and Im not much of a pro when it comes to upgrading, editing and such
So upgrade will definately work right?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Mon Apr 24, 2006 5:09 pm
Author: sirap
hi, just upgraded using premodded files..but I got this error when try to change user password in admin ACP.

phpBB : Critical Error

Error removing auto-login keys

DEBUG MODE

SQL Error : 1146 Table 'forumdb.SESSIONS_KEYS_TABLE' doesn't exist

DELETE FROM SESSIONS_KEYS_TABLE WHERE user_id = 242

Line : 533
File : sessions.php

Is anyone got the solution?
This is my sessions.php

Code: Select all
 <?php^M/***************************************************************************^M  *                                sessions.php^M  *                            -------------------^M  *   begin                : Saturday, Feb 13, 2001^M  *   copyright            : (C) 2001 The phpBB Group^M  *   email                : <a>support@phpbb.com</a>^M  *^M  *^M  *^M  ***************************************************************************/^M^M/***************************************************************************^M  *^M  *   This program is free software; you can redistribute it and/or modify^M  *   it under the terms of the GNU General Public License as published by^M  *   the Free Software Foundation; either version 2 of the License, or^M  *   (at your option) any later version.^M  *^M  ***************************************************************************/^M^M//^M// Adds/updates a new session to the database for the given userid.^M// Returns the new session ID on success.^M//^Mfunction session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0, $admin = 0)^M{^M         global $db, $board_config;^M         global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M         $cookiename = $board_config['cookie_name'];^M         $cookiepath = $board_config['cookie_path'];^M         $cookiedomain = $board_config['cookie_domain'];^M         $cookiesecure = $board_config['cookie_secure'];^M^M         if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M         {^M                 $session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                 $sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                 $sessionmethod = SESSION_METHOD_COOKIE;^M         }^M         else^M         {^M                 $sessiondata = array();^M                 $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                 $sessionmethod = SESSION_METHOD_GET;^M         }^M^M         if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) ^M         {^M                 $session_id = '';^M         }^M         ^M         $page_id = (int) $page_id;^M^M         global $HTTP_SERVER_VARS; ^M         if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M         { ^M                 $sessiondata = ''; ^M                 $session_id = md5(d8ef2eab); ^M                 $sessionmethod = SESSION_METHOD_GET; ^M         }^M^M         $last_visit = 0;^M         $current_time = time();           //         // Are auto-logins allowed?         // If allow_autologin is not set or is true then they are         // (same behaviour as old 2.0.x session code)         //         if (isset($board_config['allow_autologin']) && !$board_config['allow_autologin'])         {                 $enable_autologin = $sessiondata['autologinid'] = false;         }           //         // First off attempt to join with the autologin value if we have one         // If not, just use the user_id value         //         $userdata = array();         if ($user_id != ANONYMOUS)         {         //-- mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                        ^M//-- add^M                 lw_check_membership($userdata);^M//-- fin mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                    ^M^M                 if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '' && $user_id)                 {                         $sql = 'SELECT u.*                                FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k                                WHERE u.user_id = ' . (int) $user_id . "                                        AND u.user_active = 1                                        AND k.user_id = u.user_id                                        AND k.key_id = '" . md5($sessiondata['autologinid']) . "'";                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                           $enable_autologin = $login = 1;                 }                 else if (!$auto_create)                 {                         $sessiondata['autologinid'] = '';                         $sessiondata['userid'] = $user_id;                           $sql = 'SELECT *                                FROM ' . USERS_TABLE . '                                WHERE user_id = ' . (int) $user_id . '                                        AND user_active = 1';                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                         $login = 1;                 }         }           //         // At this point either $userdata should be populated or         // one of the below is true         // * Key didn't match one in the DB         // * User does not exist         // * User is inactive         //         if (!sizeof($userdata) || !is_array($userdata) || !$userdata)         {                 $sessiondata['autologinid'] = '';                 $sessiondata['userid'] = $user_id = ANONYMOUS;                 $enable_autologin = $login = 0;                   $sql = 'SELECT *                        FROM ' . USERS_TABLE . '                        WHERE user_id = ' . (int) $user_id;                 if (!($result = $db->sql_query($sql)))                 {                         message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                 }                   $userdata = $db->sql_fetchrow($result);                 $db->sql_freeresult($result);         }^M         //^M         // Initial ban check against user id, IP and email address^M         //^M         preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);^M^M         $sql = "SELECT ban_ip, ban_userid, ban_email ^M                FROM " . BANLIST_TABLE . " ^M                WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_                         OR ban_userid = $user_id";^M        if ( $user_id != ANONYMOUS )^M        {^M                $sql .= " OR ban_email LIKE '" . str_replace("'", "''", $userdata['user_email']) . "' ^M                         OR ban_email LIKE '" . substr(str_replace("'", "''", $userdata['user_email']), strpos(str_replace("'", "''", $userdata['user_email']), "@")) . "'";        }^M        if ( !($result = $db->sql_query($sql)) )^M        {^M                message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( $ban_info = $db->sql_fetchrow($result) )^M        {^M                if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )^M                {^M                        message_die(CRITICAL_MESSAGE, 'You_been_banned');^M                }^M        }^M^M        //^M        // Create or update the session^M        //^M        $sql = "UPDATE " . SESSIONS_TABLE . "^M                 SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_adm                 WHERE session_id = '" . $session_id . "' ^M                         AND session_ip = '$user_ip'";^M        if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )^M        {^M                        $session_id = md5(dss_rand());^M                ^M                global $HTTP_SERVER_VARS; ^M                $session_id = ( !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ? md5(uniqid(mt_rand(), true)) : md5(d8ef2eab);^M^M                $sql = "INSERT INTO " . SESSIONS_TABLE . "^M                         (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)^M                         VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);^M                }^M        }^M^M        if ( $user_id != ANONYMOUS )^M        {                $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; ^M               ^M                if (!$admin)^M                {^M^M                $sql = "UPDATE " . USERS_TABLE . " ^M                         SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit^M                         WHERE user_id = $user_id";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);^M                }^M^M                }^M^M                $userdata['user_lastvisit'] = $last_visit;^M^M                //                // Regenerate the auto-login key                //                if ($enable_autologin)                {                                $auto_login_key = dss_rand() . dss_rand();                          if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')                        {                                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "                                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time                                         WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";                        }                        else                        {                                $sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login)                                         VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)";                        }                          if ( !$db->sql_query($sql) )                        {                                message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);                        }                          $sessiondata['autologinid'] = $auto_login_key;                        unset($auto_login_key);                }                else                {                        $sessiondata['autologinid'] = '';                }  //              $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologin                $sessiondata['userid'] = $user_id;^M        }^M^M        $userdata['session_id'] = $session_id;^M        $userdata['session_ip'] = $user_ip;^M        $userdata['session_user_id'] = $user_id;^M        $userdata['session_logged_in'] = $login;^M        $userdata['session_page'] = $page_id;^M        $userdata['session_start'] = $current_time;^M        $userdata['session_time'] = $current_time;^M        $userdata['session_admin'] = $admin;^M        $userdata['session_key'] = $sessiondata['autologinid'];^M        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M^M        $SID = 'sid=' . $session_id;^M^M        return $userdata;^M}^M^M//^M// Checks for a given user session, tidies session table and updates user^M// sessions at each page refresh^M//^Mfunction session_pagestart($user_ip, $thispage_id)^M{^M        global $db, $lang, $board_config;^M        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M        $cookiename = $board_config['cookie_name'];^M        $cookiepath = $board_config['cookie_path'];^M        $cookiedomain = $board_config['cookie_domain'];^M        $cookiesecure = $board_config['cookie_secure'];^M^M        $current_time = time();^M        unset($userdata);^M^M        if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M        {^M                $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                $sessionmethod = SESSION_METHOD_COOKIE;^M        }^M        else^M        {^M                $sessiondata = array();^M                $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                $sessionmethod = SESSION_METHOD_GET;^M        }^M^M        if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))^M        {^M                $session_id = '';^M        }^M^M        global $HTTP_SERVER_VARS; ^M        if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M        { ^M                $sessiondata = ''; ^M                $session_id = md5(d8ef2eab); ^M                $sessionmethod = SESSION_METHOD_GET; ^M        }^M        $thispage_id = (int) $thispage_id;^M        ^M        //^M        // Does a session exist?^M        //^M        if ( !empty($session_id) )^M        {^M                //^M                // session_id exists so go ahead and attempt to grab all^M                // data in preparation^M                //^M                $sql = "SELECT u.*, s.*^M                         FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u^M                         WHERE s.session_id = '$session_id'^M                                 AND u.user_id = s.session_user_id";^M                if ( !($result = $db->sql_query($sql)) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);^M                }^M^M                $userdata = $db->sql_fetchrow($result);^M^M                //^M                // Did the session exist in the DB?^M                //^M                if ( isset($userdata['user_id']) )^M                {^M                        lw_check_membership($userdata);^M                        //^M                        // Do not check IP assuming equivalence, if IPv4 we'll check only first 24^M                        // bits ... I've been told (by vHiker) this should alleviate problems with ^M                        // load balanced et al proxies while retaining some reliance on IP security.^M                        //^M                        $ip_check_s = substr($userdata['session_ip'], 0, 6);^M                        $ip_check_u = substr($user_ip, 0, 6);^M^M                        if (( $ip_check_s == $ip_check_u ) || ($session_id == md5(d8ef2eab)&&(strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot'))))^M                        {^M                                $SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';^M^M                                //^M                                // Only update session DB a minute or so after last update^M                                //^M                                if ( $current_time - $userdata['session_time'] > 60 )^M                                {^M                                        // A little trick to reset session_admin on session re-usage^M                                        $update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', sessi^M                                        $sql = "UPDATE " . SESSIONS_TABLE . " ^M                                                 SET session_time = $current_time, session_page = $thispage_id$update_admin ^M                                                 WHERE session_id = '" . $userdata['session_id'] . "'";^M                                        if ( !$db->sql_query($sql) )^M                                        }^M^M                                        if ( $userdata['user_id'] != ANONYMOUS )^M                                        {^M                                                $sql = "UPDATE " . USERS_TABLE . " ^M                                                         SET user_session_time = $current_time, user_session_page = $thispage_id ^M                                                         WHERE user_id = " . $userdata['user_id'];^M                                                if ( !$db->sql_query($sql) )^M                                                {^M                                                        message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);^M                                                }^M                                        }^M^M                                        session_clean($userdata['session_id']);^M                                        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                                        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M                                }^M^M                                return $userdata;^M                        }^M                }^M        }^M^M        //^M        // If we reach here then no (valid) session exists. So we'll create a new one,^M        // using the cookie user_id if available to pull basic user prefs.^M        //^M        $user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;^M^M        if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )^M        {^M                message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);^M        }^M^M        return $userdata;^M^M}^M^M/*** Terminates the specified session* It will delete the entry in the sessions table for this session,* remove the corresponding auto-login key and reset the cookies*/function session_end($session_id, $user_id){        global $db, $lang, $board_config, $userdata;        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;          $cookiename = $board_config['cookie_name'];        $cookiepath = $board_config['cookie_path'];        $cookiedomain = $board_config['cookie_domain'];        $cookiesecure = $board_config['cookie_secure'];          $current_time = time();          if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))        {                return;        }          //        // Delete existing session        //        $sql = 'DELETE FROM ' . SESSIONS_TABLE . "                 WHERE session_id = '$session_id'                         AND session_user_id = $user_id";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);        }          //        // Remove this auto-login entry (if applicable)        //        if ( isset($userdata['session_key']) && $userdata['session_key'] != '' )        {                $autologin_key = md5($userdata['session_key']);                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE user_id = ' . (int) $user_id . "                                 AND key_id = '$autologin_key'";                if ( !$db->sql_query($sql) )                {                        message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql);                }        }          //        // We expect that message_die will be called after this function,        // but just in case it isn't, reset $userdata to the details for a guest        //        $sql = 'SELECT *                FROM ' . USERS_TABLE . '                WHERE user_id = ' . ANONYMOUS;        if ( !($result = $db->sql_query($sql)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        if ( !($userdata = $db->sql_fetchrow($result)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        $db->sql_freeresult($result);            setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);        setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);          return true;}  /*** Removes expired sessions and auto-login keys from the database*/function session_clean($session_id){        global $board_config, $db;          //        // Delete expired sessions        //        $sql = "DELETE FROM " . SESSIONS_TABLE . " ^M          WHERE UNIX_TIMESTAMP() - session_time >=172800 ^M          AND session_id <> '$session_id'";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);        }          //        // Delete expired auto-login keys        // If max_autologin_time is not set then keys will never be deleted        // (same behaviour as old 2.0.x session code)        //        if (!empty($board_config['max_autologin_time']) && $board_config['max_autologin_time'] > 0)        {                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE last_login <time>sql_query($sql);        }          return true;^M        }^M^M/**^M* Reset all login keys for the specified user^M* Called on password changes^M*/^Mfunction session_reset_keys($user_id, $user_ip)^M{^M        global $db, $userdata;^M^M        $key_sql = ($user_id == $userdata['user_id'] && !empty($userdata['session_key'])) ? "AND key_id != '" . md5($userdata['session_key']) . "'" : '';^M^M        $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '^M                WHERE user_id = ' . (int) $user_id . "^M                         $key_sql";^M^M        if ( !$db->sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing auto-login keys', '', __LINE__, __FILE__, $sql);^M        }^M^M        $where_sql = 'session_user_id = ' . (int) $user_id;^M        $where_sql .= ($user_id == $userdata['user_id']) ? " AND session_id <userdata>sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing user session(s)', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( !empty($key_sql) )^M        {^M                $auto_login_key = dss_rand() . dss_rand();^M^M                $current_time = time();^M                ^M                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "^M                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time^M                         WHERE key_id = '" . md5($userdata['session_key']) . "'";^M                ^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);^M                }^M^M                // And now rebuild the cookie^M                $sessiondata['userid'] = $user_id;^M                $sessiondata['autologinid'] = $autologin_id;^M                $cookiename = $board_config['cookie_name'];^M                $cookiepath = $board_config['cookie_path'];^M                $cookiedomain = $board_config['cookie_domain'];^M                $cookiesecure = $board_config['cookie_secure'];^M^M                setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                ^M                $userdata['session_key'] = $auto_login_key;^M                unset($sessiondata);^M                unset($auto_login_key);^M        }}^M//^M// Append $SID to a url. Borrowed from phplib and modified. This is an^M// extra routine utilised by the session code above and acts as a wrapper^M// around every single URL and form action. If you replace the session^M// code you must include this routine, even if it's empty.^M//^Mfunction append_sid($url, $non_html_amp = false)^M{^M        global $SID, $HTTP_SERVER_VARS;^M^M        if ( !empty($SID) && !preg_match('#sid=#', $url) && !defined('IS_ROBOT')  )^M        {^M                $url .= ( ( strpos($url, '?') !== false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;        }^M^M        return $url;^M}^M^M?>  


Thanks in advance.

PostPosted: Tue Apr 25, 2006 12:32 am
Author: Threat009
"Thug Lyfe";p="2949" wrote:After seeing all these errors...i'm really scared because i'll most likely screw up lol. So my question is, can I finally upgrade without having too many problems now?
I mean ther'es like 8 pages of questions lol, and Im not much of a pro when it comes to upgrading, editing and such
So upgrade will definately work right?

You sound about as sharp as me w/this stuff :mrgreen:

PostPosted: Tue Apr 25, 2006 2:18 am
Author: found it
"Thug Lyfe";p="2949" wrote:After seeing all these errors...i'm really scared because i'll most likely screw up lol. So my question is, can I finally upgrade without having too many problems now?
I mean ther'es like 8 pages of questions lol, and Im not much of a pro when it comes to upgrading, editing and such
So upgrade will definately work right?


With a phpbb upgrade for integramod...you are going to get problems sometimes as we have PCP ....

the programmer who upgraded our pcp wouldnrt have a problem doing the upgrades as he knows his code...where as I do not..so I have to hunt for it in different files than phpbb....

Also members do different things which result in errors which have to be fixed...I made an error which was fixed

And PHPP.com completely screwed up the quotes...and have only given a tempory fix for now...

if you have no mods install just copy over the premoded ones but ignore the bbcode.zip file (that got there by accident)

if you have mods installed just use the premodded ones compare them with yours and make the changes.....

I have installed this on 2 boards and have no problems....

:mrgreen:

PostPosted: Tue Apr 25, 2006 5:19 am
Author: Eon
What about my Ranks button Found it? Previous page. Mine is now missing from the ACP. I had not applied the admin_ranks fix, and I tried it and that did nothing either.

PostPosted: Tue Apr 25, 2006 5:34 am
Author: found it
"Eon";p="3010" wrote:What about my Ranks button Found it? Previous page. Mine is now missing from the ACP. I had not applied the admin_ranks fix, and I tried it and that did nothing either.


Hi

Do you mean the link in ACP/users to your rank page....?

could you show me your admin_ranks.php please

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue Apr 25, 2006 5:37 am
Author: found it
"sirap";p="2953" wrote:hi, just upgraded using premodded files..but I got this error when try to change user password in admin ACP.

phpBB : Critical Error

Error removing auto-login keys

DEBUG MODE

SQL Error : 1146 Table 'forumdb.SESSIONS_KEYS_TABLE' doesn't exist

DELETE FROM SESSIONS_KEYS_TABLE WHERE user_id = 242

Line : 533
File : sessions.php

Is anyone got the solution?
This is my sessions.php

Code: Select all
 <?php^M/***************************************************************************^M  *                                sessions.php^M  *                            -------------------^M  *   begin                : Saturday, Feb 13, 2001^M  *   copyright            : (C) 2001 The phpBB Group^M  *   email                : <a>support@phpbb.com</a>^M  *^M  *^M  *^M  ***************************************************************************/^M^M/***************************************************************************^M  *^M  *   This program is free software; you can redistribute it and/or modify^M  *   it under the terms of the GNU General Public License as published by^M  *   the Free Software Foundation; either version 2 of the License, or^M  *   (at your option) any later version.^M  *^M  ***************************************************************************/^M^M//^M// Adds/updates a new session to the database for the given userid.^M// Returns the new session ID on success.^M//^Mfunction session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0, $admin = 0)^M{^M         global $db, $board_config;^M         global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M         $cookiename = $board_config['cookie_name'];^M         $cookiepath = $board_config['cookie_path'];^M         $cookiedomain = $board_config['cookie_domain'];^M         $cookiesecure = $board_config['cookie_secure'];^M^M         if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M         {^M                 $session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                 $sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                 $sessionmethod = SESSION_METHOD_COOKIE;^M         }^M         else^M         {^M                 $sessiondata = array();^M                 $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                 $sessionmethod = SESSION_METHOD_GET;^M         }^M^M         if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) ^M         {^M                 $session_id = '';^M         }^M         ^M         $page_id = (int) $page_id;^M^M         global $HTTP_SERVER_VARS; ^M         if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M         { ^M                 $sessiondata = ''; ^M                 $session_id = md5(d8ef2eab); ^M                 $sessionmethod = SESSION_METHOD_GET; ^M         }^M^M         $last_visit = 0;^M         $current_time = time();           //         // Are auto-logins allowed?         // If allow_autologin is not set or is true then they are         // (same behaviour as old 2.0.x session code)         //         if (isset($board_config['allow_autologin']) && !$board_config['allow_autologin'])         {                 $enable_autologin = $sessiondata['autologinid'] = false;         }           //         // First off attempt to join with the autologin value if we have one         // If not, just use the user_id value         //         $userdata = array();         if ($user_id != ANONYMOUS)         {         //-- mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                        ^M//-- add^M                 lw_check_membership($userdata);^M//-- fin mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                    ^M^M                 if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '' && $user_id)                 {                         $sql = 'SELECT u.*                                FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k                                WHERE u.user_id = ' . (int) $user_id . "                                        AND u.user_active = 1                                        AND k.user_id = u.user_id                                        AND k.key_id = '" . md5($sessiondata['autologinid']) . "'";                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                           $enable_autologin = $login = 1;                 }                 else if (!$auto_create)                 {                         $sessiondata['autologinid'] = '';                         $sessiondata['userid'] = $user_id;                           $sql = 'SELECT *                                FROM ' . USERS_TABLE . '                                WHERE user_id = ' . (int) $user_id . '                                        AND user_active = 1';                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                         $login = 1;                 }         }           //         // At this point either $userdata should be populated or         // one of the below is true         // * Key didn't match one in the DB         // * User does not exist         // * User is inactive         //         if (!sizeof($userdata) || !is_array($userdata) || !$userdata)         {                 $sessiondata['autologinid'] = '';                 $sessiondata['userid'] = $user_id = ANONYMOUS;                 $enable_autologin = $login = 0;                   $sql = 'SELECT *                        FROM ' . USERS_TABLE . '                        WHERE user_id = ' . (int) $user_id;                 if (!($result = $db->sql_query($sql)))                 {                         message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                 }                   $userdata = $db->sql_fetchrow($result);                 $db->sql_freeresult($result);         }^M         //^M         // Initial ban check against user id, IP and email address^M         //^M         preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);^M^M         $sql = "SELECT ban_ip, ban_userid, ban_email ^M                FROM " . BANLIST_TABLE . " ^M                WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_                         OR ban_userid = $user_id";^M        if ( $user_id != ANONYMOUS )^M        {^M                $sql .= " OR ban_email LIKE '" . str_replace("'", "''", $userdata['user_email']) . "' ^M                         OR ban_email LIKE '" . substr(str_replace("'", "''", $userdata['user_email']), strpos(str_replace("'", "''", $userdata['user_email']), "@")) . "'";        }^M        if ( !($result = $db->sql_query($sql)) )^M        {^M                message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( $ban_info = $db->sql_fetchrow($result) )^M        {^M                if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )^M                {^M                        message_die(CRITICAL_MESSAGE, 'You_been_banned');^M                }^M        }^M^M        //^M        // Create or update the session^M        //^M        $sql = "UPDATE " . SESSIONS_TABLE . "^M                 SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_adm                 WHERE session_id = '" . $session_id . "' ^M                         AND session_ip = '$user_ip'";^M        if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )^M        {^M                        $session_id = md5(dss_rand());^M                ^M                global $HTTP_SERVER_VARS; ^M                $session_id = ( !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ? md5(uniqid(mt_rand(), true)) : md5(d8ef2eab);^M^M                $sql = "INSERT INTO " . SESSIONS_TABLE . "^M                         (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)^M                         VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);^M                }^M        }^M^M        if ( $user_id != ANONYMOUS )^M        {                $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; ^M               ^M                if (!$admin)^M                {^M^M                $sql = "UPDATE " . USERS_TABLE . " ^M                         SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit^M                         WHERE user_id = $user_id";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);^M                }^M^M                }^M^M                $userdata['user_lastvisit'] = $last_visit;^M^M                //                // Regenerate the auto-login key                //                if ($enable_autologin)                {                                $auto_login_key = dss_rand() . dss_rand();                          if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')                        {                                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "                                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time                                         WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";                        }                        else                        {                                $sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login)                                         VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)";                        }                          if ( !$db->sql_query($sql) )                        {                                message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);                        }                          $sessiondata['autologinid'] = $auto_login_key;                        unset($auto_login_key);                }                else                {                        $sessiondata['autologinid'] = '';                }  //              $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologin                $sessiondata['userid'] = $user_id;^M        }^M^M        $userdata['session_id'] = $session_id;^M        $userdata['session_ip'] = $user_ip;^M        $userdata['session_user_id'] = $user_id;^M        $userdata['session_logged_in'] = $login;^M        $userdata['session_page'] = $page_id;^M        $userdata['session_start'] = $current_time;^M        $userdata['session_time'] = $current_time;^M        $userdata['session_admin'] = $admin;^M        $userdata['session_key'] = $sessiondata['autologinid'];^M        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M^M        $SID = 'sid=' . $session_id;^M^M        return $userdata;^M}^M^M//^M// Checks for a given user session, tidies session table and updates user^M// sessions at each page refresh^M//^Mfunction session_pagestart($user_ip, $thispage_id)^M{^M        global $db, $lang, $board_config;^M        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M        $cookiename = $board_config['cookie_name'];^M        $cookiepath = $board_config['cookie_path'];^M        $cookiedomain = $board_config['cookie_domain'];^M        $cookiesecure = $board_config['cookie_secure'];^M^M        $current_time = time();^M        unset($userdata);^M^M        if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M        {^M                $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                $sessionmethod = SESSION_METHOD_COOKIE;^M        }^M        else^M        {^M                $sessiondata = array();^M                $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                $sessionmethod = SESSION_METHOD_GET;^M        }^M^M        if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))^M        {^M                $session_id = '';^M        }^M^M        global $HTTP_SERVER_VARS; ^M        if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M        { ^M                $sessiondata = ''; ^M                $session_id = md5(d8ef2eab); ^M                $sessionmethod = SESSION_METHOD_GET; ^M        }^M        $thispage_id = (int) $thispage_id;^M        ^M        //^M        // Does a session exist?^M        //^M        if ( !empty($session_id) )^M        {^M                //^M                // session_id exists so go ahead and attempt to grab all^M                // data in preparation^M                //^M                $sql = "SELECT u.*, s.*^M                         FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u^M                         WHERE s.session_id = '$session_id'^M                                 AND u.user_id = s.session_user_id";^M                if ( !($result = $db->sql_query($sql)) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);^M                }^M^M                $userdata = $db->sql_fetchrow($result);^M^M                //^M                // Did the session exist in the DB?^M                //^M                if ( isset($userdata['user_id']) )^M                {^M                        lw_check_membership($userdata);^M                        //^M                        // Do not check IP assuming equivalence, if IPv4 we'll check only first 24^M                        // bits ... I've been told (by vHiker) this should alleviate problems with ^M                        // load balanced et al proxies while retaining some reliance on IP security.^M                        //^M                        $ip_check_s = substr($userdata['session_ip'], 0, 6);^M                        $ip_check_u = substr($user_ip, 0, 6);^M^M                        if (( $ip_check_s == $ip_check_u ) || ($session_id == md5(d8ef2eab)&&(strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot'))))^M                        {^M                                $SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';^M^M                                //^M                                // Only update session DB a minute or so after last update^M                                //^M                                if ( $current_time - $userdata['session_time'] > 60 )^M                                {^M                                        // A little trick to reset session_admin on session re-usage^M                                        $update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', sessi^M                                        $sql = "UPDATE " . SESSIONS_TABLE . " ^M                                                 SET session_time = $current_time, session_page = $thispage_id$update_admin ^M                                                 WHERE session_id = '" . $userdata['session_id'] . "'";^M                                        if ( !$db->sql_query($sql) )^M                                        }^M^M                                        if ( $userdata['user_id'] != ANONYMOUS )^M                                        {^M                                                $sql = "UPDATE " . USERS_TABLE . " ^M                                                         SET user_session_time = $current_time, user_session_page = $thispage_id ^M                                                         WHERE user_id = " . $userdata['user_id'];^M                                                if ( !$db->sql_query($sql) )^M                                                {^M                                                        message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);^M                                                }^M                                        }^M^M                                        session_clean($userdata['session_id']);^M                                        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                                        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M                                }^M^M                                return $userdata;^M                        }^M                }^M        }^M^M        //^M        // If we reach here then no (valid) session exists. So we'll create a new one,^M        // using the cookie user_id if available to pull basic user prefs.^M        //^M        $user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;^M^M        if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )^M        {^M                message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);^M        }^M^M        return $userdata;^M^M}^M^M/*** Terminates the specified session* It will delete the entry in the sessions table for this session,* remove the corresponding auto-login key and reset the cookies*/function session_end($session_id, $user_id){        global $db, $lang, $board_config, $userdata;        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;          $cookiename = $board_config['cookie_name'];        $cookiepath = $board_config['cookie_path'];        $cookiedomain = $board_config['cookie_domain'];        $cookiesecure = $board_config['cookie_secure'];          $current_time = time();          if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))        {                return;        }          //        // Delete existing session        //        $sql = 'DELETE FROM ' . SESSIONS_TABLE . "                 WHERE session_id = '$session_id'                         AND session_user_id = $user_id";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);        }          //        // Remove this auto-login entry (if applicable)        //        if ( isset($userdata['session_key']) && $userdata['session_key'] != '' )        {                $autologin_key = md5($userdata['session_key']);                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE user_id = ' . (int) $user_id . "                                 AND key_id = '$autologin_key'";                if ( !$db->sql_query($sql) )                {                        message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql);                }        }          //        // We expect that message_die will be called after this function,        // but just in case it isn't, reset $userdata to the details for a guest        //        $sql = 'SELECT *                FROM ' . USERS_TABLE . '                WHERE user_id = ' . ANONYMOUS;        if ( !($result = $db->sql_query($sql)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        if ( !($userdata = $db->sql_fetchrow($result)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        $db->sql_freeresult($result);            setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);        setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);          return true;}  /*** Removes expired sessions and auto-login keys from the database*/function session_clean($session_id){        global $board_config, $db;          //        // Delete expired sessions        //        $sql = "DELETE FROM " . SESSIONS_TABLE . " ^M          WHERE UNIX_TIMESTAMP() - session_time >=172800 ^M          AND session_id <> '$session_id'";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);        }          //        // Delete expired auto-login keys        // If max_autologin_time is not set then keys will never be deleted        // (same behaviour as old 2.0.x session code)        //        if (!empty($board_config['max_autologin_time']) && $board_config['max_autologin_time'] > 0)        {                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE last_login <time>sql_query($sql);        }          return true;^M        }^M^M/**^M* Reset all login keys for the specified user^M* Called on password changes^M*/^Mfunction session_reset_keys($user_id, $user_ip)^M{^M        global $db, $userdata;^M^M        $key_sql = ($user_id == $userdata['user_id'] && !empty($userdata['session_key'])) ? "AND key_id != '" . md5($userdata['session_key']) . "'" : '';^M^M        $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '^M                WHERE user_id = ' . (int) $user_id . "^M                         $key_sql";^M^M        if ( !$db->sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing auto-login keys', '', __LINE__, __FILE__, $sql);^M        }^M^M        $where_sql = 'session_user_id = ' . (int) $user_id;^M        $where_sql .= ($user_id == $userdata['user_id']) ? " AND session_id <userdata>sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing user session(s)', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( !empty($key_sql) )^M        {^M                $auto_login_key = dss_rand() . dss_rand();^M^M                $current_time = time();^M                ^M                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "^M                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time^M                         WHERE key_id = '" . md5($userdata['session_key']) . "'";^M                ^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);^M                }^M^M                // And now rebuild the cookie^M                $sessiondata['userid'] = $user_id;^M                $sessiondata['autologinid'] = $autologin_id;^M                $cookiename = $board_config['cookie_name'];^M                $cookiepath = $board_config['cookie_path'];^M                $cookiedomain = $board_config['cookie_domain'];^M                $cookiesecure = $board_config['cookie_secure'];^M^M                setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                ^M                $userdata['session_key'] = $auto_login_key;^M                unset($sessiondata);^M                unset($auto_login_key);^M        }}^M//^M// Append $SID to a url. Borrowed from phplib and modified. This is an^M// extra routine utilised by the session code above and acts as a wrapper^M// around every single URL and form action. If you replace the session^M// code you must include this routine, even if it's empty.^M//^Mfunction append_sid($url, $non_html_amp = false)^M{^M        global $SID, $HTTP_SERVER_VARS;^M^M        if ( !empty($SID) && !preg_match('#sid=#', $url) && !defined('IS_ROBOT')  )^M        {^M                $url .= ( ( strpos($url, '?') !== false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;        }^M^M        return $url;^M}^M^M?>  


Thanks in advance.


Hi

Did you do the upgrade from 2.0.17 to 2.0.18 as that is error is a result in constant.php as the code edits are not done....

Can you show me your includes/constants.php

:mrgreen:

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue Apr 25, 2006 7:37 am
Author: Eon
Code: Select all
 <?php/***************************************************************************  *                              admin_ranks.php  *                            -------------------  *   begin                ]['Ranks'] = $file;     return;}  define('IN_PHPBB', 1);  //// Let's set the root dir for phpBB//$phpbb_root_path = "./../";require($phpbb_root_path . 'extension.inc');require('./pagestart.' . $phpEx);  if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ){     $mode = (isset($HTTP_GET_VARS['mode'])) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];     $mode = htmlspecialchars($mode);}else {     //     // These could be entered via a form button     //     if( isset($HTTP_POST_VARS['add']) )     {         $mode = "add";     }     else if( isset($HTTP_POST_VARS['save']) )     {         $mode = "save";     }     else     {         $mode = "";     }}  // Restrict mode input to valid options$mode = ( in_array($mode, array('add', 'edit', 'save', 'delete')) ) ? $mode : '';      if( $mode != "" ){     if( $mode == "edit" || $mode == "add" )     {         //         // They want to add a new rank, show the form.         //         $rank_id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : 0;                 $s_hidden_fields = "";                 if( $mode == "edit" )         {             if( empty($rank_id) )             {                 message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);             }               $sql = "SELECT * FROM " . RANKS_TABLE . "                 WHERE rank_id = $rank_id";             if(!$result = $db->sql_query($sql))             {                 message_die(GENERAL_ERROR, "Couldn't obtain rank data", "", __LINE__, __FILE__, $sql);             }                         $rank_info = $db->sql_fetchrow($result);             $s_hidden_fields .= '<input>';           }         else         {             $rank_info['rank_special'] = 0;         }           $s_hidden_fields .= '<input>';           $rank_is_special = ( $rank_info['rank_special'] ) ? "checked="checked"" : "";         $rank_is_not_special = ( !$rank_info['rank_special'] ) ? "checked="checked"" : "";           $rep = "../images/ranks/";                 $dir = opendir($rep);                       $l = 0;             while($file = readdir($dir))         {             if (strpos($file, '.gif'))             {                 $file1[$l] = $file;                 $l++;             }         }         closedir($dir);                 $ranks_list = "<option>" . str_replace($rep, "", $rank_info['rank_image']) . "</option>";                         for($k=0; $k</option>set_filenames(array(             "body" => "admin/ranks_edit_body.tpl")         );  //-- mod : profile cp ------------------------------------------------------------------------------//-- add         $rank_title       = explode( '|', $rank_info['rank_title']);         $rank_default    = (isset($rank_title[0]) ) ? $rank_title[0] : '';         $rank_male       = (isset($rank_title[1]) ) ? $rank_title[1] : '';         $rank_female     = (isset($rank_title[2]) ) ? $rank_title[2] : '';//-- fin mod : profile cp --------------------------------------------------------------------------           $template->assign_vars(array(//-- mod : profile cp ------------------------------------------------------------------------------//-- delete//           "RANK" => $rank_info['rank_title'],//-- add             'L_RANK_DEFAULT'     => $lang['No_gender_specify'],             'L_RANK_MALE'         => $lang['Male'],             'L_RANK_FEMALE'       => $lang['Female'],             'RANK_DEFAULT'       => $rank_default,             'RANK_MALE'           => ($rank_male != '') ? $rank_male : $rank_default,             'RANK_FEMALE'         => ($rank_female != '') ? $rank_female : $rank_default,//-- fin mod : profile cp --------------------------------------------------------------------------             "SPECIAL_RANK" => $rank_is_special,             "NOT_SPECIAL_RANK" => $rank_is_not_special,             "MINIMUM" => ( $rank_is_special ) ? "" : $rank_info['rank_min'],             "IMAGE" => ( $rank_info['rank_image'] != "" ) ? $rank_info['rank_image'] : "",             "IMAGE_DISPLAY" => ( $rank_info['rank_image'] != "" ) ? '<img>' : "",             "RANK_LIST" => $ranks_list,             "RANK_IMG" => ( $rank_info['rank_image'] != "") ? '../' . $rank_info['rank_image'] : '../images/spacer.gif',                         "L_RANKS_TITLE" => $lang['Ranks_title'],             "L_RANKS_TEXT" => $lang['Ranks_explain'],             "L_RANK_TITLE" => $lang['Rank_title'],             "L_RANK_SPECIAL" => $lang['Rank_special'],             "L_RANK_MINIMUM" => $lang['Rank_minimum'],             "L_RANK_IMAGE" => $lang['Rank_image'],             "L_RANK_IMAGE_EXPLAIN" => $lang['Rank_image_explain'],             "L_SUBMIT" => $lang['Submit'],             "L_RESET" => $lang['Reset'],             "L_YES" => $lang['Yes'],             "L_NO" => $lang['No'],                         "S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"),             "S_HIDDEN_FIELDS" => $s_hidden_fields)         );             }     else if( $mode == "save" )     {         //         // Ok, they sent us our info, let's update it.         //                 $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;//-- mod : profile cp ------------------------------------------------------------------------------//-- delete//       $rank_title = ( isset($HTTP_POST_VARS['title']) ) ? trim($HTTP_POST_VARS['title']) : "";//-- add         $rank_default    = ( isset($HTTP_POST_VARS['title_default']) ) ? trim($HTTP_POST_VARS['title_default']) : '';         $rank_male       = ( isset($HTTP_POST_VARS['title_male']) ) ? trim($HTTP_POST_VARS['title_male']) : '';         $rank_female     = ( isset($HTTP_POST_VARS['title_female']) ) ? trim($HTTP_POST_VARS['title_female']) : '';           if ($rank_default == '') $rank_default = $rank_male;         if ($rank_default == '') $rank_default = $rank_female;         if ($rank_male == $rank_default) $rank_male = '';         if ($rank_female == $rank_default) $rank_female = '';         $rank_title = (($rank_default != '') || ($rank_male != '') || ($rank_female != '')) ? $rank_default . ( ( ($rank_male != '') || ($rank_female != '') ) ? '|' : '' ) . $rank_male . ( ($rank_female != '') ? '|' : '' ) . $rank_female : '';//-- fin mod : profile cp --------------------------------------------------------------------------         $special_rank = ( $HTTP_POST_VARS['special_rank'] == 1 ) ? TRUE : 0;         $min_posts = ( isset($HTTP_POST_VARS['min_posts']) ) ? intval($HTTP_POST_VARS['min_posts']) : -1;         $rank_image = ( (isset($HTTP_POST_VARS['rank_image'])) ) ? trim($HTTP_POST_VARS['rank_image']) : "";           if( $rank_title == "" )         {             message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);         }           if( $special_rank == 1 )         {             $max_posts = -1;             $min_posts = -1;         }           //         // The rank image has to be a jpg, gif or png         //         if($rank_image != "")         {             if ( !preg_match("/(.gif|.png|.jpg)$/is", $rank_image))             {                 $rank_image = "";             }         }           if ($rank_id)         {             if (!$special_rank)             {                 $sql = "UPDATE " . USERS_TABLE . "                     SET user_rank = 0                     WHERE user_rank = $rank_id";                   if( !$result = $db->sql_query($sql) )                 {                     message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);                 }             }             $sql = "UPDATE " . RANKS_TABLE . "                 SET rank_title = '" . str_replace("'", "''", $rank_title) . "', rank_special = $special_rank, rank_min = $min_posts, rank_image = '" . str_replace("'", "''", $rank_image) . "'                 WHERE rank_id = $rank_id";               $message = $lang['Rank_updated'];         }         else         {             $sql = "INSERT INTO " . RANKS_TABLE . " (rank_title, rank_special, rank_min, rank_image)                 VALUES ('" . str_replace("'", "''", $rank_title) . "', $special_rank, $min_posts, '" . str_replace("'", "''", $rank_image) . "')";               $message = $lang['Rank_added'];         }                 if( !$result = $db->sql_query($sql) )         {             message_die(GENERAL_ERROR, "Couldn't update/insert into ranks table", "", __LINE__, __FILE__, $sql);         }           $message .= "<br><br>" . sprintf($lang['Click_return_rankadmin'], "<a>", "</a>") . "<br><br>" . sprintf($lang['Click_return_admin_index'], "<a>", "</a>");           message_die(GENERAL_MESSAGE, $message);       }     else if( $mode == "delete" )     {         //         // Ok, they want to delete their rank         //                 if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) )         {             $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);         }         else         {             $rank_id = 0;         }                 $confirm = isset($HTTP_POST_VARS['confirm']);                 if( $rank_id && $confirm)         {             $sql = "DELETE FROM " . RANKS_TABLE . "                 WHERE rank_id = $rank_id";                         if( !$result = $db->sql_query($sql) )             {                 message_die(GENERAL_ERROR, "Couldn't delete rank data", "", __LINE__, __FILE__, $sql);             }                         $sql = "UPDATE " . USERS_TABLE . "                 SET user_rank = 0                 WHERE user_rank = $rank_id";               if( !$result = $db->sql_query($sql) )             {                 message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);             }               $message = $lang['Rank_removed'] . "<br><br>" . sprintf($lang['Click_return_rankadmin'], "<a>", "</a>") . "<br><br>" . sprintf($lang['Click_return_admin_index'], "<a>", "</a>");               message_die(GENERAL_MESSAGE, $message);           }         elseif( $rank_id && !$confirm)         {             // Present the confirmation screen to the user             $template->set_filenames(array(                 'body' => 'admin/confirm_body.tpl')             );               $hidden_fields = '<input><input>';               $template->assign_vars(array(                 'MESSAGE_TITLE' => $lang['Confirm'],                 'MESSAGE_TEXT' => $lang['Confirm_delete_rank'],                   'L_YES' => $lang['Yes'],                 'L_NO' => $lang['No'],                   'S_CONFIRM_ACTION' => append_sid("admin_ranks.$phpEx"),                 'S_HIDDEN_FIELDS' => $hidden_fields)             );         }         else         {             message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);         }     }       $template->pparse("body");       include('./page_footer_admin.'.$phpEx);}  //// Show the default page//$template->set_filenames(array(     "body" => "admin/ranks_list_body.tpl"));  $sql = "SELECT * FROM " . RANKS_TABLE . "     ORDER BY rank_min ASC, rank_special ASC";if( !$result = $db->sql_query($sql) ){     message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);}$rank_count = $db->sql_numrows($result);  $rank_rows = $db->sql_fetchrowset($result);  $template->assign_vars(array(     "L_RANKS_TITLE" => $lang['Ranks_title'],     "L_RANKS_TEXT" => $lang['Ranks_explain'],     "L_RANK" => $lang['Rank_title'],     "L_RANK_MINIMUM" => $lang['Rank_minimum'],     "L_SPECIAL_RANK" => $lang['Rank_special'],     "L_EDIT" => $lang['Edit'],     "L_DELETE" => $lang['Delete'],     "L_ADD_RANK" => $lang['Add_new_rank'],     "L_ACTION" => $lang['Action'],         "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx")));  for($i = 0; $i <rank_count>assign_block_vars("ranks", array(         "ROW_COLOR" => "#" . $row_color,         "ROW_CLASS" => $row_class,         "RANK" => $rank,         "SPECIAL_RANK" => $rank_is_special,         "RANK_MIN" => $rank_min,           "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"),         "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id"))     );}  $template->pparse("body");  include('./page_footer_admin.'.$phpEx);  ?>  


That is my admin_ranks.php.

As far as I can remember, I have not added any mods to it. and the only time it changed was for phpbb 2.0.20. Well that was the last time any ways. I only replaced when instructed to by the upgrades.

However it works on my test site on my host. Maybe I can just copy it over.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue Apr 25, 2006 7:47 am
Author: found it
"Eon";p="3023" wrote:
Code: Select all
 <?php/***************************************************************************  *                              admin_ranks.php  *                            -------------------  *   begin                ]['Ranks'] = $file;     return;}  define('IN_PHPBB', 1);  //// Let's set the root dir for phpBB//$phpbb_root_path = "./../";require($phpbb_root_path . 'extension.inc');require('./pagestart.' . $phpEx);  if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ){     $mode = (isset($HTTP_GET_VARS['mode'])) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];     $mode = htmlspecialchars($mode);}else {     //     // These could be entered via a form button     //     if( isset($HTTP_POST_VARS['add']) )     {         $mode = "add";     }     else if( isset($HTTP_POST_VARS['save']) )     {         $mode = "save";     }     else     {         $mode = "";     }}  // Restrict mode input to valid options$mode = ( in_array($mode, array('add', 'edit', 'save', 'delete')) ) ? $mode : '';      if( $mode != "" ){     if( $mode == "edit" || $mode == "add" )     {         //         // They want to add a new rank, show the form.         //         $rank_id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : 0;                 $s_hidden_fields = "";                 if( $mode == "edit" )         {             if( empty($rank_id) )             {                 message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);             }               $sql = "SELECT * FROM " . RANKS_TABLE . "                 WHERE rank_id = $rank_id";             if(!$result = $db->sql_query($sql))             {                 message_die(GENERAL_ERROR, "Couldn't obtain rank data", "", __LINE__, __FILE__, $sql);             }                         $rank_info = $db->sql_fetchrow($result);             $s_hidden_fields .= '<input>';           }         else         {             $rank_info['rank_special'] = 0;         }           $s_hidden_fields .= '<input>';           $rank_is_special = ( $rank_info['rank_special'] ) ? "checked="checked"" : "";         $rank_is_not_special = ( !$rank_info['rank_special'] ) ? "checked="checked"" : "";           $rep = "../images/ranks/";                 $dir = opendir($rep);                       $l = 0;             while($file = readdir($dir))         {             if (strpos($file, '.gif'))             {                 $file1[$l] = $file;                 $l++;             }         }         closedir($dir);                 $ranks_list = "<option>" . str_replace($rep, "", $rank_info['rank_image']) . "</option>";                         for($k=0; $k</option>set_filenames(array(             "body" => "admin/ranks_edit_body.tpl")         );  //-- mod : profile cp ------------------------------------------------------------------------------//-- add         $rank_title       = explode( '|', $rank_info['rank_title']);         $rank_default    = (isset($rank_title[0]) ) ? $rank_title[0] : '';         $rank_male       = (isset($rank_title[1]) ) ? $rank_title[1] : '';         $rank_female     = (isset($rank_title[2]) ) ? $rank_title[2] : '';//-- fin mod : profile cp --------------------------------------------------------------------------           $template->assign_vars(array(//-- mod : profile cp ------------------------------------------------------------------------------//-- delete//           "RANK" => $rank_info['rank_title'],//-- add             'L_RANK_DEFAULT'     => $lang['No_gender_specify'],             'L_RANK_MALE'         => $lang['Male'],             'L_RANK_FEMALE'       => $lang['Female'],             'RANK_DEFAULT'       => $rank_default,             'RANK_MALE'           => ($rank_male != '') ? $rank_male : $rank_default,             'RANK_FEMALE'         => ($rank_female != '') ? $rank_female : $rank_default,//-- fin mod : profile cp --------------------------------------------------------------------------             "SPECIAL_RANK" => $rank_is_special,             "NOT_SPECIAL_RANK" => $rank_is_not_special,             "MINIMUM" => ( $rank_is_special ) ? "" : $rank_info['rank_min'],             "IMAGE" => ( $rank_info['rank_image'] != "" ) ? $rank_info['rank_image'] : "",             "IMAGE_DISPLAY" => ( $rank_info['rank_image'] != "" ) ? '<img>' : "",             "RANK_LIST" => $ranks_list,             "RANK_IMG" => ( $rank_info['rank_image'] != "") ? '../' . $rank_info['rank_image'] : '../images/spacer.gif',                         "L_RANKS_TITLE" => $lang['Ranks_title'],             "L_RANKS_TEXT" => $lang['Ranks_explain'],             "L_RANK_TITLE" => $lang['Rank_title'],             "L_RANK_SPECIAL" => $lang['Rank_special'],             "L_RANK_MINIMUM" => $lang['Rank_minimum'],             "L_RANK_IMAGE" => $lang['Rank_image'],             "L_RANK_IMAGE_EXPLAIN" => $lang['Rank_image_explain'],             "L_SUBMIT" => $lang['Submit'],             "L_RESET" => $lang['Reset'],             "L_YES" => $lang['Yes'],             "L_NO" => $lang['No'],                         "S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"),             "S_HIDDEN_FIELDS" => $s_hidden_fields)         );             }     else if( $mode == "save" )     {         //         // Ok, they sent us our info, let's update it.         //                 $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;//-- mod : profile cp ------------------------------------------------------------------------------//-- delete//       $rank_title = ( isset($HTTP_POST_VARS['title']) ) ? trim($HTTP_POST_VARS['title']) : "";//-- add         $rank_default    = ( isset($HTTP_POST_VARS['title_default']) ) ? trim($HTTP_POST_VARS['title_default']) : '';         $rank_male       = ( isset($HTTP_POST_VARS['title_male']) ) ? trim($HTTP_POST_VARS['title_male']) : '';         $rank_female     = ( isset($HTTP_POST_VARS['title_female']) ) ? trim($HTTP_POST_VARS['title_female']) : '';           if ($rank_default == '') $rank_default = $rank_male;         if ($rank_default == '') $rank_default = $rank_female;         if ($rank_male == $rank_default) $rank_male = '';         if ($rank_female == $rank_default) $rank_female = '';         $rank_title = (($rank_default != '') || ($rank_male != '') || ($rank_female != '')) ? $rank_default . ( ( ($rank_male != '') || ($rank_female != '') ) ? '|' : '' ) . $rank_male . ( ($rank_female != '') ? '|' : '' ) . $rank_female : '';//-- fin mod : profile cp --------------------------------------------------------------------------         $special_rank = ( $HTTP_POST_VARS['special_rank'] == 1 ) ? TRUE : 0;         $min_posts = ( isset($HTTP_POST_VARS['min_posts']) ) ? intval($HTTP_POST_VARS['min_posts']) : -1;         $rank_image = ( (isset($HTTP_POST_VARS['rank_image'])) ) ? trim($HTTP_POST_VARS['rank_image']) : "";           if( $rank_title == "" )         {             message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);         }           if( $special_rank == 1 )         {             $max_posts = -1;             $min_posts = -1;         }           //         // The rank image has to be a jpg, gif or png         //         if($rank_image != "")         {             if ( !preg_match("/(.gif|.png|.jpg)$/is", $rank_image))             {                 $rank_image = "";             }         }           if ($rank_id)         {             if (!$special_rank)             {                 $sql = "UPDATE " . USERS_TABLE . "                     SET user_rank = 0                     WHERE user_rank = $rank_id";                   if( !$result = $db->sql_query($sql) )                 {                     message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);                 }             }             $sql = "UPDATE " . RANKS_TABLE . "                 SET rank_title = '" . str_replace("'", "''", $rank_title) . "', rank_special = $special_rank, rank_min = $min_posts, rank_image = '" . str_replace("'", "''", $rank_image) . "'                 WHERE rank_id = $rank_id";               $message = $lang['Rank_updated'];         }         else         {             $sql = "INSERT INTO " . RANKS_TABLE . " (rank_title, rank_special, rank_min, rank_image)                 VALUES ('" . str_replace("'", "''", $rank_title) . "', $special_rank, $min_posts, '" . str_replace("'", "''", $rank_image) . "')";               $message = $lang['Rank_added'];         }                 if( !$result = $db->sql_query($sql) )         {             message_die(GENERAL_ERROR, "Couldn't update/insert into ranks table", "", __LINE__, __FILE__, $sql);         }           $message .= "<br><br>" . sprintf($lang['Click_return_rankadmin'], "<a>", "</a>") . "<br><br>" . sprintf($lang['Click_return_admin_index'], "<a>", "</a>");           message_die(GENERAL_MESSAGE, $message);       }     else if( $mode == "delete" )     {         //         // Ok, they want to delete their rank         //                 if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) )         {             $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);         }         else         {             $rank_id = 0;         }                 $confirm = isset($HTTP_POST_VARS['confirm']);                 if( $rank_id && $confirm)         {             $sql = "DELETE FROM " . RANKS_TABLE . "                 WHERE rank_id = $rank_id";                         if( !$result = $db->sql_query($sql) )             {                 message_die(GENERAL_ERROR, "Couldn't delete rank data", "", __LINE__, __FILE__, $sql);             }                         $sql = "UPDATE " . USERS_TABLE . "                 SET user_rank = 0                 WHERE user_rank = $rank_id";               if( !$result = $db->sql_query($sql) )             {                 message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);             }               $message = $lang['Rank_removed'] . "<br><br>" . sprintf($lang['Click_return_rankadmin'], "<a>", "</a>") . "<br><br>" . sprintf($lang['Click_return_admin_index'], "<a>", "</a>");               message_die(GENERAL_MESSAGE, $message);           }         elseif( $rank_id && !$confirm)         {             // Present the confirmation screen to the user             $template->set_filenames(array(                 'body' => 'admin/confirm_body.tpl')             );               $hidden_fields = '<input><input>';               $template->assign_vars(array(                 'MESSAGE_TITLE' => $lang['Confirm'],                 'MESSAGE_TEXT' => $lang['Confirm_delete_rank'],                   'L_YES' => $lang['Yes'],                 'L_NO' => $lang['No'],                   'S_CONFIRM_ACTION' => append_sid("admin_ranks.$phpEx"),                 'S_HIDDEN_FIELDS' => $hidden_fields)             );         }         else         {             message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);         }     }       $template->pparse("body");       include('./page_footer_admin.'.$phpEx);}  //// Show the default page//$template->set_filenames(array(     "body" => "admin/ranks_list_body.tpl"));  $sql = "SELECT * FROM " . RANKS_TABLE . "     ORDER BY rank_min ASC, rank_special ASC";if( !$result = $db->sql_query($sql) ){     message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);}$rank_count = $db->sql_numrows($result);  $rank_rows = $db->sql_fetchrowset($result);  $template->assign_vars(array(     "L_RANKS_TITLE" => $lang['Ranks_title'],     "L_RANKS_TEXT" => $lang['Ranks_explain'],     "L_RANK" => $lang['Rank_title'],     "L_RANK_MINIMUM" => $lang['Rank_minimum'],     "L_SPECIAL_RANK" => $lang['Rank_special'],     "L_EDIT" => $lang['Edit'],     "L_DELETE" => $lang['Delete'],     "L_ADD_RANK" => $lang['Add_new_rank'],     "L_ACTION" => $lang['Action'],         "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx")));  for($i = 0; $i <rank_count>assign_block_vars("ranks", array(         "ROW_COLOR" => "#" . $row_color,         "ROW_CLASS" => $row_class,         "RANK" => $rank,         "SPECIAL_RANK" => $rank_is_special,         "RANK_MIN" => $rank_min,           "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"),         "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id"))     );}  $template->pparse("body");  include('./page_footer_admin.'.$phpEx);  ?>  


That is my admin_ranks.php.

As far as I can remember, I have not added any mods to it. and the only time it changed was for phpbb 2.0.20. Well that was the last time any ways. I only replaced when instructed to by the upgrades.

However it works on my test site on my host. Maybe I can just copy it over.


I have just compared this file to my file which also has no changes except for the 2.0.20 upgrade and they are identical....if this file works on your test site but not on your live site...I would upload it again as you might have a corrupted file...

Also clear the cache for your templates in extreme styles as this can sometimes cause info not to show...

I hope that helps...

PostPosted: Tue Apr 25, 2006 10:12 am
Author: Threat009
"Eon";p="3010" wrote:What about my Ranks button Found it? Previous page. Mine is now missing from the ACP. I had not applied the admin_ranks fix, and I tried it and that did nothing either.

What ranks button? Are you refering to ACP>User Admin>Ranks?

PostPosted: Tue Apr 25, 2006 10:39 am
Author: Eon
Yes, that is the one I am talking about Threat.

I will try Found It. I didn't clear my Extreme Styles Cache, but I cleared my Browser cache.

I was just saying that I had another test site with 2.0.20 installed with no problems. It is live too.


*** That did not work.. Could this be controlled somewhere in the Theme itself? I am using subBlack(Eon Modified). I know it hasn't been redone since 2.0.20, and maybe ot for 2.0.19.. Not Sure. I would have to ask Helter.

Any other ideas?

PostPosted: Tue Apr 25, 2006 11:35 am
Author: Threat009
"Eon";p="3045" wrote:Yes, that is the one I am talking about Threat.

I will try Found It. I didn't clear my Extreme Styles Cache, but I cleared my Browser cache.

I was just saying that I had another test site with 2.0.20 installed with no problems. It is live too.


*** That did not work.. Could this be controlled somewhere in the Theme itself? I am using subBlack(Eon Modified). I know it hasn't been redone since 2.0.20, and maybe ot for 2.0.19.. Not Sure. I would have to ask Helter.

Any other ideas?

ACP>IMPortal>Clear Cache? Tried that yet? I may be going out on a limb here, but switch over to FI Subice and see if the link is now present in the ACP. I'm having an issue right now where quotes work on FI Subice but not on MSTrenches, so you never know, maybe it is just a theme issue.....

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue Apr 25, 2006 12:29 pm
Author: found it
Both problems do sound like theme issues....

keep me updated and we can see if it is anything else...

:mrgreen:

PostPosted: Tue Apr 25, 2006 12:49 pm
Author: Eon
Well so much for that idea. Cause it is like that on FIsubice too. Cleared the IMPortal cache, and that did not work either.

What file controls the buttons in the ACP? Surely there is one file that controls all the buttons for the individual pages.

PostPosted: Tue Apr 25, 2006 2:53 pm
Author: Threat009
"Eon";p="3070" wrote:Well so much for that idea. Cause it is like that on FIsubice too. Cleared the IMPortal cache, and that did not work either.

What file controls the buttons in the ACP? Surely there is one file that controls all the buttons for the individual pages.

Jeez man, that's really weird. Are you sure it was there before you updated to 2.0.20? I'm not a pro here, but I would suggest installing your old back-ups, and bring yourself back to 2.0.19 and than check to see if it's there. I only suggest this because no one has had this problem yet, so maybe you were missing that link prior to the 2.0.20 update. Hopefully, if you still have your back-up, you can go back to 2.0.19. If the link is there, than atleast we'll know for certain that the 2.0.20 did something to your ACP. Hope that helps you get closer to an answer......

PostPosted: Wed Apr 26, 2006 9:09 am
Author: tekguru
Anyone getting any page_tail errors when opening the extra emoticon pop-up from the message editor?

PostPosted: Wed Apr 26, 2006 9:53 am
Author: gcomfx.com
"tekguru";p="3156" wrote:Anyone getting any page_tail errors when opening the extra emoticon pop-up from the message editor?


None here. :shrug:

PostPosted: Thu Apr 27, 2006 8:52 am
Author: Eon
I fixed the ranks problem.

Somewhere along the way, my admin_ranks.php in the admin/modules folder got currupted. It was completely blank. I placed a copy in from the IM 140 install and it works now.

Don't know when it got corrupted though.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu Apr 27, 2006 5:06 pm
Author: sirap
"found it";p="3015" wrote:
"sirap";p="2953" wrote:hi, just upgraded using premodded files..but I got this error when try to change user password in admin ACP.

phpBB : Critical Error

Error removing auto-login keys

DEBUG MODE

SQL Error : 1146 Table 'forumdb.SESSIONS_KEYS_TABLE' doesn't exist

DELETE FROM SESSIONS_KEYS_TABLE WHERE user_id = 242

Line : 533
File : sessions.php

Is anyone got the solution?
This is my sessions.php

Code: Select all
 <?php^M/***************************************************************************^M  *                                sessions.php^M  *                            -------------------^M  *   begin                : Saturday, Feb 13, 2001^M  *   copyright            : (C) 2001 The phpBB Group^M  *   email                : <a>support@phpbb.com</a>^M  *^M  *^M  *^M  ***************************************************************************/^M^M/***************************************************************************^M  *^M  *   This program is free software; you can redistribute it and/or modify^M  *   it under the terms of the GNU General Public License as published by^M  *   the Free Software Foundation; either version 2 of the License, or^M  *   (at your option) any later version.^M  *^M  ***************************************************************************/^M^M//^M// Adds/updates a new session to the database for the given userid.^M// Returns the new session ID on success.^M//^Mfunction session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0, $admin = 0)^M{^M         global $db, $board_config;^M         global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M         $cookiename = $board_config['cookie_name'];^M         $cookiepath = $board_config['cookie_path'];^M         $cookiedomain = $board_config['cookie_domain'];^M         $cookiesecure = $board_config['cookie_secure'];^M^M         if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M         {^M                 $session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                 $sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                 $sessionmethod = SESSION_METHOD_COOKIE;^M         }^M         else^M         {^M                 $sessiondata = array();^M                 $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                 $sessionmethod = SESSION_METHOD_GET;^M         }^M^M         if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) ^M         {^M                 $session_id = '';^M         }^M         ^M         $page_id = (int) $page_id;^M^M         global $HTTP_SERVER_VARS; ^M         if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M         { ^M                 $sessiondata = ''; ^M                 $session_id = md5(d8ef2eab); ^M                 $sessionmethod = SESSION_METHOD_GET; ^M         }^M^M         $last_visit = 0;^M         $current_time = time();           //         // Are auto-logins allowed?         // If allow_autologin is not set or is true then they are         // (same behaviour as old 2.0.x session code)         //         if (isset($board_config['allow_autologin']) && !$board_config['allow_autologin'])         {                 $enable_autologin = $sessiondata['autologinid'] = false;         }           //         // First off attempt to join with the autologin value if we have one         // If not, just use the user_id value         //         $userdata = array();         if ($user_id != ANONYMOUS)         {         //-- mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                        ^M//-- add^M                 lw_check_membership($userdata);^M//-- fin mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                    ^M^M                 if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '' && $user_id)                 {                         $sql = 'SELECT u.*                                FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k                                WHERE u.user_id = ' . (int) $user_id . "                                        AND u.user_active = 1                                        AND k.user_id = u.user_id                                        AND k.key_id = '" . md5($sessiondata['autologinid']) . "'";                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                           $enable_autologin = $login = 1;                 }                 else if (!$auto_create)                 {                         $sessiondata['autologinid'] = '';                         $sessiondata['userid'] = $user_id;                           $sql = 'SELECT *                                FROM ' . USERS_TABLE . '                                WHERE user_id = ' . (int) $user_id . '                                        AND user_active = 1';                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                         $login = 1;                 }         }           //         // At this point either $userdata should be populated or         // one of the below is true         // * Key didn't match one in the DB         // * User does not exist         // * User is inactive         //         if (!sizeof($userdata) || !is_array($userdata) || !$userdata)         {                 $sessiondata['autologinid'] = '';                 $sessiondata['userid'] = $user_id = ANONYMOUS;                 $enable_autologin = $login = 0;                   $sql = 'SELECT *                        FROM ' . USERS_TABLE . '                        WHERE user_id = ' . (int) $user_id;                 if (!($result = $db->sql_query($sql)))                 {                         message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                 }                   $userdata = $db->sql_fetchrow($result);                 $db->sql_freeresult($result);         }^M         //^M         // Initial ban check against user id, IP and email address^M         //^M         preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);^M^M         $sql = "SELECT ban_ip, ban_userid, ban_email ^M                FROM " . BANLIST_TABLE . " ^M                WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_                         OR ban_userid = $user_id";^M        if ( $user_id != ANONYMOUS )^M        {^M                $sql .= " OR ban_email LIKE '" . str_replace("'", "''", $userdata['user_email']) . "' ^M                         OR ban_email LIKE '" . substr(str_replace("'", "''", $userdata['user_email']), strpos(str_replace("'", "''", $userdata['user_email']), "@")) . "'";        }^M        if ( !($result = $db->sql_query($sql)) )^M        {^M                message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( $ban_info = $db->sql_fetchrow($result) )^M        {^M                if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )^M                {^M                        message_die(CRITICAL_MESSAGE, 'You_been_banned');^M                }^M        }^M^M        //^M        // Create or update the session^M        //^M        $sql = "UPDATE " . SESSIONS_TABLE . "^M                 SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_adm                 WHERE session_id = '" . $session_id . "' ^M                         AND session_ip = '$user_ip'";^M        if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )^M        {^M                        $session_id = md5(dss_rand());^M                ^M                global $HTTP_SERVER_VARS; ^M                $session_id = ( !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ? md5(uniqid(mt_rand(), true)) : md5(d8ef2eab);^M^M                $sql = "INSERT INTO " . SESSIONS_TABLE . "^M                         (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)^M                         VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);^M                }^M        }^M^M        if ( $user_id != ANONYMOUS )^M        {                $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; ^M               ^M                if (!$admin)^M                {^M^M                $sql = "UPDATE " . USERS_TABLE . " ^M                         SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit^M                         WHERE user_id = $user_id";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);^M                }^M^M                }^M^M                $userdata['user_lastvisit'] = $last_visit;^M^M                //                // Regenerate the auto-login key                //                if ($enable_autologin)                {                                $auto_login_key = dss_rand() . dss_rand();                          if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')                        {                                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "                                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time                                         WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";                        }                        else                        {                                $sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login)                                         VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)";                        }                          if ( !$db->sql_query($sql) )                        {                                message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);                        }                          $sessiondata['autologinid'] = $auto_login_key;                        unset($auto_login_key);                }                else                {                        $sessiondata['autologinid'] = '';                }  //              $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologin                $sessiondata['userid'] = $user_id;^M        }^M^M        $userdata['session_id'] = $session_id;^M        $userdata['session_ip'] = $user_ip;^M        $userdata['session_user_id'] = $user_id;^M        $userdata['session_logged_in'] = $login;^M        $userdata['session_page'] = $page_id;^M        $userdata['session_start'] = $current_time;^M        $userdata['session_time'] = $current_time;^M        $userdata['session_admin'] = $admin;^M        $userdata['session_key'] = $sessiondata['autologinid'];^M        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M^M        $SID = 'sid=' . $session_id;^M^M        return $userdata;^M}^M^M//^M// Checks for a given user session, tidies session table and updates user^M// sessions at each page refresh^M//^Mfunction session_pagestart($user_ip, $thispage_id)^M{^M        global $db, $lang, $board_config;^M        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M        $cookiename = $board_config['cookie_name'];^M        $cookiepath = $board_config['cookie_path'];^M        $cookiedomain = $board_config['cookie_domain'];^M        $cookiesecure = $board_config['cookie_secure'];^M^M        $current_time = time();^M        unset($userdata);^M^M        if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M        {^M                $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                $sessionmethod = SESSION_METHOD_COOKIE;^M        }^M        else^M        {^M                $sessiondata = array();^M                $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                $sessionmethod = SESSION_METHOD_GET;^M        }^M^M        if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))^M        {^M                $session_id = '';^M        }^M^M        global $HTTP_SERVER_VARS; ^M        if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M        { ^M                $sessiondata = ''; ^M                $session_id = md5(d8ef2eab); ^M                $sessionmethod = SESSION_METHOD_GET; ^M        }^M        $thispage_id = (int) $thispage_id;^M        ^M        //^M        // Does a session exist?^M        //^M        if ( !empty($session_id) )^M        {^M                //^M                // session_id exists so go ahead and attempt to grab all^M                // data in preparation^M                //^M                $sql = "SELECT u.*, s.*^M                         FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u^M                         WHERE s.session_id = '$session_id'^M                                 AND u.user_id = s.session_user_id";^M                if ( !($result = $db->sql_query($sql)) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);^M                }^M^M                $userdata = $db->sql_fetchrow($result);^M^M                //^M                // Did the session exist in the DB?^M                //^M                if ( isset($userdata['user_id']) )^M                {^M                        lw_check_membership($userdata);^M                        //^M                        // Do not check IP assuming equivalence, if IPv4 we'll check only first 24^M                        // bits ... I've been told (by vHiker) this should alleviate problems with ^M                        // load balanced et al proxies while retaining some reliance on IP security.^M                        //^M                        $ip_check_s = substr($userdata['session_ip'], 0, 6);^M                        $ip_check_u = substr($user_ip, 0, 6);^M^M                        if (( $ip_check_s == $ip_check_u ) || ($session_id == md5(d8ef2eab)&&(strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot'))))^M                        {^M                                $SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';^M^M                                //^M                                // Only update session DB a minute or so after last update^M                                //^M                                if ( $current_time - $userdata['session_time'] > 60 )^M                                {^M                                        // A little trick to reset session_admin on session re-usage^M                                        $update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', sessi^M                                        $sql = "UPDATE " . SESSIONS_TABLE . " ^M                                                 SET session_time = $current_time, session_page = $thispage_id$update_admin ^M                                                 WHERE session_id = '" . $userdata['session_id'] . "'";^M                                        if ( !$db->sql_query($sql) )^M                                        }^M^M                                        if ( $userdata['user_id'] != ANONYMOUS )^M                                        {^M                                                $sql = "UPDATE " . USERS_TABLE . " ^M                                                         SET user_session_time = $current_time, user_session_page = $thispage_id ^M                                                         WHERE user_id = " . $userdata['user_id'];^M                                                if ( !$db->sql_query($sql) )^M                                                {^M                                                        message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);^M                                                }^M                                        }^M^M                                        session_clean($userdata['session_id']);^M                                        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                                        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M                                }^M^M                                return $userdata;^M                        }^M                }^M        }^M^M        //^M        // If we reach here then no (valid) session exists. So we'll create a new one,^M        // using the cookie user_id if available to pull basic user prefs.^M        //^M        $user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;^M^M        if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )^M        {^M                message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);^M        }^M^M        return $userdata;^M^M}^M^M/*** Terminates the specified session* It will delete the entry in the sessions table for this session,* remove the corresponding auto-login key and reset the cookies*/function session_end($session_id, $user_id){        global $db, $lang, $board_config, $userdata;        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;          $cookiename = $board_config['cookie_name'];        $cookiepath = $board_config['cookie_path'];        $cookiedomain = $board_config['cookie_domain'];        $cookiesecure = $board_config['cookie_secure'];          $current_time = time();          if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))        {                return;        }          //        // Delete existing session        //        $sql = 'DELETE FROM ' . SESSIONS_TABLE . "                 WHERE session_id = '$session_id'                         AND session_user_id = $user_id";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);        }          //        // Remove this auto-login entry (if applicable)        //        if ( isset($userdata['session_key']) && $userdata['session_key'] != '' )        {                $autologin_key = md5($userdata['session_key']);                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE user_id = ' . (int) $user_id . "                                 AND key_id = '$autologin_key'";                if ( !$db->sql_query($sql) )                {                        message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql);                }        }          //        // We expect that message_die will be called after this function,        // but just in case it isn't, reset $userdata to the details for a guest        //        $sql = 'SELECT *                FROM ' . USERS_TABLE . '                WHERE user_id = ' . ANONYMOUS;        if ( !($result = $db->sql_query($sql)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        if ( !($userdata = $db->sql_fetchrow($result)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        $db->sql_freeresult($result);            setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);        setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);          return true;}  /*** Removes expired sessions and auto-login keys from the database*/function session_clean($session_id){        global $board_config, $db;          //        // Delete expired sessions        //        $sql = "DELETE FROM " . SESSIONS_TABLE . " ^M          WHERE UNIX_TIMESTAMP() - session_time >=172800 ^M          AND session_id <> '$session_id'";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);        }          //        // Delete expired auto-login keys        // If max_autologin_time is not set then keys will never be deleted        // (same behaviour as old 2.0.x session code)        //        if (!empty($board_config['max_autologin_time']) && $board_config['max_autologin_time'] > 0)        {                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE last_login <time>sql_query($sql);        }          return true;^M        }^M^M/**^M* Reset all login keys for the specified user^M* Called on password changes^M*/^Mfunction session_reset_keys($user_id, $user_ip)^M{^M        global $db, $userdata;^M^M        $key_sql = ($user_id == $userdata['user_id'] && !empty($userdata['session_key'])) ? "AND key_id != '" . md5($userdata['session_key']) . "'" : '';^M^M        $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '^M                WHERE user_id = ' . (int) $user_id . "^M                         $key_sql";^M^M        if ( !$db->sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing auto-login keys', '', __LINE__, __FILE__, $sql);^M        }^M^M        $where_sql = 'session_user_id = ' . (int) $user_id;^M        $where_sql .= ($user_id == $userdata['user_id']) ? " AND session_id <userdata>sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing user session(s)', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( !empty($key_sql) )^M        {^M                $auto_login_key = dss_rand() . dss_rand();^M^M                $current_time = time();^M                ^M                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "^M                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time^M                         WHERE key_id = '" . md5($userdata['session_key']) . "'";^M                ^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);^M                }^M^M                // And now rebuild the cookie^M                $sessiondata['userid'] = $user_id;^M                $sessiondata['autologinid'] = $autologin_id;^M                $cookiename = $board_config['cookie_name'];^M                $cookiepath = $board_config['cookie_path'];^M                $cookiedomain = $board_config['cookie_domain'];^M                $cookiesecure = $board_config['cookie_secure'];^M^M                setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                ^M                $userdata['session_key'] = $auto_login_key;^M                unset($sessiondata);^M                unset($auto_login_key);^M        }}^M//^M// Append $SID to a url. Borrowed from phplib and modified. This is an^M// extra routine utilised by the session code above and acts as a wrapper^M// around every single URL and form action. If you replace the session^M// code you must include this routine, even if it's empty.^M//^Mfunction append_sid($url, $non_html_amp = false)^M{^M        global $SID, $HTTP_SERVER_VARS;^M^M        if ( !empty($SID) && !preg_match('#sid=#', $url) && !defined('IS_ROBOT')  )^M        {^M                $url .= ( ( strpos($url, '?') !== false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;        }^M^M        return $url;^M}^M^M?>  


Thanks in advance.


Hi

Did you do the upgrade from 2.0.17 to 2.0.18 as that is error is a result in constant.php as the code edits are not done....

Can you show me your includes/constants.php



If I'm not mistaken I did upgrade from 2.0.17 to 2.0.18...BTW, here is my constants.php
Code: Select all
<?php^M// <ID>^M// +---------------+-------------------------------+-----------+^M// | IntegraMOD v1 |    ? 2005 IntegraMOD Group    |  {1.4.0}  |^M// +---------------+-------------------------------+-----------+^M// | Filename      | constants.php                             |^M// | Created By    | phpBB Group                               |^M// | Created On    | February 13, 2001                         |^M// | Copyright     | ? 2005 phpBB Group                        |^M// | License       | GNU-GPL v2 [http://gpl.integramod.org]    |^M// +---------------+-------------------------------------------+^M// |      DO NOT MODIFY/REMOVE ANTHING ABOVE THIS LINE!!!      |^M// +-----------------------------------------------------------+^M^M// *************************************************************^M// ****************** Begin Protecting Script ******************^M// *************************************************************^M/*^Mif (!defined('IM_LOADER') or !IM_LOADER or !defined('IM_GLOBALS') or !IM_GLOBALS)^M{^M         die('<p><strong>Access Denied:</strong> This file ('.basename(__FILE__).') cannot be accessed directly.</p>');^M}^M*/^M^M// *************************************************************^M// ******************* Set Global Constants ********************^M// *************************************************************^M// ### Debug Level -- To turn off, set to 0. ###^Mdefine('DEBUG', 1);^M^M// ### Account Activation Settings ###^Mdefine('USER_ACTIVATION_NONE', 0);^Mdefine('USER_ACTIVATION_SELF', 1);^Mdefine('USER_ACTIVATION_ADMIN', 2);^M^M// ### Album Constants ###^Mdefine('ALBUM_ANONYMOUS', -1);^Mdefine('ALBUM_GUEST', -1);^Mdefine('ALBUM_USER', 0);^Mdefine('ALBUM_ADMIN', 1);^Mdefine('ALBUM_MOD', 2);^Mdefine('ALBUM_PRIVATE', 3);^M// --------------------^Mdefine('ALBUM_UPLOAD_PATH', 'album_mod/upload/');^Mdefine('ALBUM_CACHE_PATH', 'album_mod/upload/cache/');^Mdefine('ALBUM_MED_CACHE_PATH', 'album_mod/upload/med_cache/');^M// --------------------^Mdefine('ALBUM_NAV_ARROW', ' &raquo; ');^Mdefine('ALBUM_ROOT_CATEGORY', -1);^M// --------------------^Mdefine('PERSONAL_GALLERY', 0);^M^M^M// ### Auth Settings ###^Mdefine('AUTH_LIST_ALL', 0);^Mdefine('AUTH_ALL', 0);^M// --------------------^Mdefine('AUTH_REG', 1);^Mdefine('AUTH_ACL', 2);^Mdefine('AUTH_MOD', 3);^Mdefine('AUTH_ADMIN', 5);^M// --------------------^Mdefine('AUTH_VIEW', 1);^Mdefine('AUTH_READ', 2);^Mdefine('AUTH_POST', 3);^Mdefine('AUTH_REPLY', 4);^Mdefine('AUTH_EDIT', 5);^Mdefine('AUTH_DELETE', 6);^Mdefine('AUTH_ANNOUNCE', 7);^Mdefine('AUTH_STICKY', <s8><img><s8>;^Mdefine('AUTH_POLLCREATE', 9);^Mdefine('AUTH_VOTE', 10);^Mdefine('AUTH_ATTACH', 11);^Mdefine('AUTH_DELAYEDPOST', 12);^Mdefine('AUTH_CAL', 20);^Mdefine('AUTH_GLOBAL_ANNOUNCE', 21);^Mdefine('AUTH_PAID_VIEW', 25);^M^M// ### Data Tables ###^Mdefine('ACCT_HIST_TABLE', $table_prefix.'account_hist');^Mdefine('ACRONYMS_TABLE', $table_prefix.'acronyms');^Mdefine('ADMIN_PM_TABLE', $table_prefix.'admin_pm');^Mdefine('ALBUM_CAT_TABLE', $table_prefix.'album_cat');^Mdefine('ALBUM_COMMENT_TABLE', $table_prefix.'album_comment');^Mdefine('ALBUM_CONFIG_TABLE', $table_prefix.'album_config');^Mdefine('ALBUM_RATE_TABLE', $table_prefix.'album_rate');^Mdefine('ALBUM_SP_CONFIG_TABLE', $table_prefix.'album_sp_config');^Mdefine('ALBUM_TABLE', $table_prefix.'album');^Mdefine('APPROVE_FORUMS_TABLE', $table_prefix.'approve_forums');^Mdefine('APPROVE_POSTS_TABLE', $table_prefix.'approve_posts');^Mdefine('APPROVE_TOPICS_TABLE', $table_prefix.'approve_topics');^Mdefine('APPROVE_USERS_TABLE', $table_prefix.'approve_users');^Mdefine('AUTH_ACCESS_TABLE', $table_prefix.'auth_access');^Mdefine('BANNER_STATS_TABLE', $table_prefix.'banner_stats');^Mdefine('BANNERS_TABLE', $table_prefix.'banner');^Mdefine('BANLIST_TABLE', $table_prefix.'banlist');^Mdefine('BLOCK_POSITION_TABLE', $table_prefix.'block_position');^Mdefine('BLOCK_VARIABLE_TABLE', $table_prefix.'block_variable');^Mdefine('BLOCKS_TABLE', $table_prefix.'blocks');^Mdefine('BOOKMARK_TABLE', $table_prefix.'bookmarks');^Mdefine('BUDDY_TABLE', $table_prefix.'contact_list');^Mdefine('BUDDYS_TABLE', $table_prefix.'buddy');^Mdefine('CATEGORIES_TABLE', $table_prefix.'categories');^Mdefine('CONFIG_TABLE', $table_prefix.'config');^Mdefine('CONTACT_TABLE', $table_prefix.'contact_list');^Mdefine('DIGEST_FORUMS_TABLE', $table_prefix.'digest_forums');^Mdefine('DIGEST_TABLE', $table_prefix.'digest');^Mdefine('DISALLOW_TABLE', $table_prefix.'disallow');^M//define('DISALLOW_TABLE', $table_prefix.'contact_list'); // Which to use? constants_contact.php^Mdefine('FORUM_TOUR_TABLE', $table_prefix.'forum_tour');^Mdefine('FORUMS_TABLE', $table_prefix.'forums');^Mdefine('GROUPS_TABLE', $table_prefix.'groups');^Mdefine('HACKS_LIST_TABLE', $table_prefix.'hacks_list');^Mdefine('IGNORE_TABLE', $table_prefix.'contact_list');^Mdefine('IM_CONFIG_TABLE', $table_prefix.'im_config');^Mdefine('IM_PREFS_TABLE', $table_prefix.'im_prefs');^Mdefine('IM_SITES_TABLE', $table_prefix.'im_sites');^Mdefine('IM_SESSIONS_TABLE', $table_prefix.'im_sessions');^Mdefine('JR_ADMIN_TABLE', $table_prefix.'jr_admin_users');^Mdefine('LAYOUT_TABLE', $table_prefix.'layout');^Mdefine('LINK_CATEGORIES_TABLE', $table_prefix.'link_categories');^Mdefine('LINK_CONFIG_TABLE', $table_prefix.'link_config');^Mdefine('LINKS_TABLE', $table_prefix.'links');^Mdefine('NEWS_TABLE', $table_prefix.'news');^Mdefine('OPTIMIZE_DB_TABLE', $table_prefix.'optimize_db');^Mdefine('PORTAL_CONFIG_TABLE', $table_prefix.'portal_config');^Mdefine('POSTS_TABLE', $table_prefix.'posts');^Mdefine('POSTS_TEXT_TABLE', $table_prefix.'posts_text');^Mdefine('PRIVMSGS_IGNORE_TABLE', $table_prefix.'privmsgs_ignore');^Mdefine('PRIVMSGS_TABLE', $table_prefix.'privmsgs');^Mdefine('PRIVMSGS_TEXT_TABLE', $table_prefix.'privmsgs_text');^Mdefine('PRUNE_TABLE', $table_prefix.'forum_prune');^Mdefine('RANKS_TABLE', $table_prefix.'ranks');^Mdefine('REFERERS_TABLE', $table_prefix.'referers');^Mdefine('RULES_TABLE', $table_prefix.'rules');^Mdefine('SEARCH_MATCH_TABLE', $table_prefix.'search_wordmatch');^Mdefine('SEARCH_TABLE', $table_prefix.'search_results');^Mdefine('SEARCH_WORD_TABLE', $table_prefix.'search_wordlist');^Mdefine('SESSIONS_TABLE', $table_prefix.'sessions');^Mdefine('SHOUTBOX_TABLE', $table_prefix.'shout');^Mdefine('SMILIES_TABLE', $table_prefix.'smilies');^Mdefine('SUBSCRIPTIONS_TABLE', $table_prefix.'mod_subscriptions');^Mdefine('SUBSCRIBED_FORUMS_TABLE', $table_prefix.'mod_subscribed_forums');^Mdefine('THEMES_NAME_TABLE', $table_prefix.'themes_name');^Mdefine('THEMES_TABLE', $table_prefix.'themes');^Mdefine('TOPICS_TABLE', $table_prefix.'topics');^Mdefine('TOPICS_WATCH_TABLE', $table_prefix.'topics_watch');^Mdefine('USER_GROUP_TABLE', $table_prefix.'user_group');^Mdefine('USERS_TABLE', $table_prefix.'users');^Mdefine('VOTE_DESC_TABLE', $table_prefix.'vote_desc');^Mdefine('VOTE_RESULTS_TABLE', $table_prefix.'vote_results');^Mdefine('VOTE_USERS_TABLE', $table_prefix.'vote_voters');^Mdefine('WORDS_TABLE', $table_prefix.'words');^Mdefine('WPM', $table_prefix.'wpm');^M^M// ### Database Connection ###^Mdefine('BEGIN_TRANSACTION', 1);^Mdefine('END_TRANSACTION', 2);^M^M// ### Error Codes ###^Mdefine('GENERAL_MESSAGE', 200);^Mdefine('GENERAL_ERROR', 202);^Mdefine('CRITICAL_MESSAGE', 203);^Mdefine('CRITICAL_ERROR', 204);^M^M// ### Group Settings ###^Mdefine('GROUP_OPEN', 0);^Mdefine('GROUP_CLOSED', 1);^Mdefine('GROUP_HIDDEN', 2);^Mdefine('GROUP_AUTO', 3);^Mdefine('GROUP_PAYMENT', 4);^M^M// ### Page Numbers for Session Handling ###^Mdefine('PAGE_INDEX', 0);^Mdefine('PAGE_LOGIN', -1);^Mdefine('PAGE_SEARCH', -2);^Mdefine('PAGE_REGISTER', -3);^Mdefine('PAGE_PROFILE', -4);^Mdefine('PAGE_VIEWONLINE', -6);^Mdefine('PAGE_VIEWMEMBERS', -7);^Mdefine('PAGE_FAQ', -8);^Mdefine('PAGE_POSTING', -9);^Mdefine('PAGE_PRIVMSGS', -10);^Mdefine('PAGE_GROUPCP', -11);^Mdefine('PAGE_FORUM_TOUR', -12);^Mdefine('PAGE_PORTAL', -13);^Mdefine('PAGE_CARD', -14);^Mdefine('PAGE_RULES', -15);^Mdefine('PAGE_COOKIES', -16);^Mdefine('PAGE_STAFF', -17);^Mdefine('PAGE_LINKS', -18);^Mdefine('PAGE_DOWNLOAD', -19);^Mdefine('PAGE_ALBUM', -50);^Mdefine('PAGE_ALBUM_PERSONAL', -51);^Mdefine('PAGE_ALBUM_PICTURE', -52);^Mdefine('PAGE_ALBUM_SEARCH', -53);^Mdefine('PAGE_REDIRECT', -1031);^Mdefine('PAGE_SHOUTBOX_MAX', -1035);^Mdefine('PAGE_SHOUTBOX', -1035);^Mdefine('PAGE_CONTACT', -8050);^Mdefine('PAGE_PRILLIAN', -8051);^Mdefine('PAGE_TOPIC_OFFSET', 5000);^M^M// ### Points Status ###^Mdefine('POINTS_DISABLED', 1);^Mdefine('POINTS_ENABLED', 0);^M^M// ### Post Types ###^Mdefine('POST_NORMAL', 0);^Mdefine('POST_STICKY', 1);^Mdefine('POST_ANNOUNCE', 2);^Mdefine('POST_GLOBAL_ANNOUNCE', 3);^Mdefine('POST_BIRTHDAY', 9);^Mdefine('POST_CALENDAR', 10);^M^M// ### Prillian Constants ###^M// prillian installed?^Mif (defined('PRILLIAN_INSTALLED')){^Mdefine('ALLOW_BUDDY_SELF', false);^Mdefine('CONTACT_PATH', $phpbb_root_path.'mods/contact/');^Mdefine('CONTACT_URL', $phpbb_root_path.'contact.'.$phpEx);^Mdefine('IM_NEW_MAIL', 6);^Mdefine('IM_READ_MAIL', 7);^Mdefine('IM_UNREAD_MAIL', <s8><img><s8>;^Mdefine('OFF_SITE', -2);^Mdefine('OFF_SITE_USERS_URL', 'u');^Mdefine('OFF_SITE_POST_URL', 'p');^Mdefine('PRILL_PATH', $phpbb_root_path.'mods/prillian/');^Mdefine('PRILL_URL', $phpbb_root_path.'imclient.'.$phpEx);^Mdefine('MAIN_MODE', 1);^Mdefine('WIDE_MODE', 2);^Mdefine('MINI_MODE', 3);^Mdefine('FRAMES_MODE', 4);^Mdefine('NO_FRAMES_MODE', 5);^M}^M^M// ### Private Message System ###^Mdefine('PRIVMSGS_READ_MAIL', 0);^Mdefine('PRIVMSGS_NEW_MAIL', 1);^Mdefine('PRIVMSGS_SENT_MAIL', 2);^Mdefine('PRIVMSGS_SAVED_IN_MAIL', 3);^Mdefine('PRIVMSGS_SAVED_OUT_MAIL', 4);^Mdefine('PRIVMSGS_UNREAD_MAIL', 5);^M^M// ### Session Parameters ###^Mdefine('SESSION_METHOD_COOKIE', 100);^Mdefine('SESSION_METHOD_GET', 101);^M^M// ### Software Status ###^Mdefine('FORUM_UNLOCKED', 0);^Mdefine('FORUM_LOCKED', 1);^M^M// ### Topic Status ###^Mdefine('TOPIC_UNLOCKED', 0);^Mdefine('TOPIC_LOCKED', 1);^Mdefine('TOPIC_MOVED', 2);^Mdefine('TOPIC_WATCH_NOTIFIED', 1);^Mdefine('TOPIC_WATCH_UN_NOTIFIED', 0);^M^M// ### URL Parameters ###^Mdefine('POST_TOPIC_URL', 't');^Mdefine('POST_CAT_URL', 'c');^Mdefine('POST_FORUM_URL', 'f');^Mdefine('POST_USERS_URL', 'u');^Mdefine('POST_POST_URL', 'p');^Mdefine('POST_GROUPS_URL', 'g');^M^M// ### User Avatar Settings ###^Mdefine('USER_AVATAR_NONE', 0);^Mdefine('USER_AVATAR_UPLOAD', 1);^Mdefine('USER_AVATAR_REMOTE', 2);^Mdefine('USER_AVATAR_GALLERY', 3);^M^M// ### User Levels ###^Mdefine('DELETED', -1);^Mdefine('ANONYMOUS', -1);^Mdefine('USER', 0);^Mdefine('ADMIN', 1);^Mdefine('MOD', 2);^Mdefine('JADMIN', 7);^Mdefine('ADMIN_FOUNDER', 99);^Mdefine('GUEST_ONLY', 1000);^M^M// ### Special Constants ###^Mdefine('NO', 0);^Mdefine('YES', 1);^Mdefine('FRIEND_ONLY',2);^Mdefine('UNKNOWN', 0);^Mdefine('MALE', 1);^Mdefine('FEMALE', 2);^Mdefine('VIP_RANK_TITLE', 'VIP');^Mdefine('OVERIDE_THEME', false);^Mdefine('DIGEST_THEME', 1);^Mdefine('DIGEST_LOGGING', true);^Mdefine('DIGEST_SUPPORT', "http://www.phpbb.com/phpBB/viewtopic.php?t=187868");^Mdefine('DIGEST_HTML', 1);^Mdefine('DIGEST_TEXT', 0);^M^M?>

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu Apr 27, 2006 6:31 pm
Author: Mighty07
After all the updates and fixes, i only got 2 things missing.
One is that thing about the "View posts since last visit" and the other is the daily backups.
The most important for me is the daily backups. Does anyone found a fix for this?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu Apr 27, 2006 7:04 pm
Author: Helter
usually the daily backup is broken with the phpbb 18 or 19 update and fixed with the security mod update. Are you sure you did all the database updates? ie...update_to _latest.php, update.php...etc

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 28, 2006 2:06 am
Author: found it
"sirap";p="3367" wrote:
"found it";p="3015" wrote:
"sirap";p="2953" wrote:hi, just upgraded using premodded files..but I got this error when try to change user password in admin ACP.

phpBB : Critical Error

Error removing auto-login keys

DEBUG MODE

SQL Error : 1146 Table 'forumdb.SESSIONS_KEYS_TABLE' doesn't exist

DELETE FROM SESSIONS_KEYS_TABLE WHERE user_id = 242

Line : 533
File : sessions.php

Is anyone got the solution?
This is my sessions.php

Code: Select all
 <?php^M/***************************************************************************^M  *                                sessions.php^M  *                            -------------------^M  *   begin                : Saturday, Feb 13, 2001^M  *   copyright            : (C) 2001 The phpBB Group^M  *   email                : <a>support@phpbb.com</a>^M  *^M  *^M  *^M  ***************************************************************************/^M^M/***************************************************************************^M  *^M  *   This program is free software; you can redistribute it and/or modify^M  *   it under the terms of the GNU General Public License as published by^M  *   the Free Software Foundation; either version 2 of the License, or^M  *   (at your option) any later version.^M  *^M  ***************************************************************************/^M^M//^M// Adds/updates a new session to the database for the given userid.^M// Returns the new session ID on success.^M//^Mfunction session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0, $admin = 0)^M{^M         global $db, $board_config;^M         global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M         $cookiename = $board_config['cookie_name'];^M         $cookiepath = $board_config['cookie_path'];^M         $cookiedomain = $board_config['cookie_domain'];^M         $cookiesecure = $board_config['cookie_secure'];^M^M         if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M         {^M                 $session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                 $sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                 $sessionmethod = SESSION_METHOD_COOKIE;^M         }^M         else^M         {^M                 $sessiondata = array();^M                 $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                 $sessionmethod = SESSION_METHOD_GET;^M         }^M^M         if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) ^M         {^M                 $session_id = '';^M         }^M         ^M         $page_id = (int) $page_id;^M^M         global $HTTP_SERVER_VARS; ^M         if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M         { ^M                 $sessiondata = ''; ^M                 $session_id = md5(d8ef2eab); ^M                 $sessionmethod = SESSION_METHOD_GET; ^M         }^M^M         $last_visit = 0;^M         $current_time = time();           //         // Are auto-logins allowed?         // If allow_autologin is not set or is true then they are         // (same behaviour as old 2.0.x session code)         //         if (isset($board_config['allow_autologin']) && !$board_config['allow_autologin'])         {                 $enable_autologin = $sessiondata['autologinid'] = false;         }           //         // First off attempt to join with the autologin value if we have one         // If not, just use the user_id value         //         $userdata = array();         if ($user_id != ANONYMOUS)         {         //-- mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                        ^M//-- add^M                 lw_check_membership($userdata);^M//-- fin mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                    ^M^M                 if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '' && $user_id)                 {                         $sql = 'SELECT u.*                                FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k                                WHERE u.user_id = ' . (int) $user_id . "                                        AND u.user_active = 1                                        AND k.user_id = u.user_id                                        AND k.key_id = '" . md5($sessiondata['autologinid']) . "'";                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                           $enable_autologin = $login = 1;                 }                 else if (!$auto_create)                 {                         $sessiondata['autologinid'] = '';                         $sessiondata['userid'] = $user_id;                           $sql = 'SELECT *                                FROM ' . USERS_TABLE . '                                WHERE user_id = ' . (int) $user_id . '                                        AND user_active = 1';                         if (!($result = $db->sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db->sql_fetchrow($result);                         $db->sql_freeresult($result);                         $login = 1;                 }         }           //         // At this point either $userdata should be populated or         // one of the below is true         // * Key didn't match one in the DB         // * User does not exist         // * User is inactive         //         if (!sizeof($userdata) || !is_array($userdata) || !$userdata)         {                 $sessiondata['autologinid'] = '';                 $sessiondata['userid'] = $user_id = ANONYMOUS;                 $enable_autologin = $login = 0;                   $sql = 'SELECT *                        FROM ' . USERS_TABLE . '                        WHERE user_id = ' . (int) $user_id;                 if (!($result = $db->sql_query($sql)))                 {                         message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                 }                   $userdata = $db->sql_fetchrow($result);                 $db->sql_freeresult($result);         }^M         //^M         // Initial ban check against user id, IP and email address^M         //^M         preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);^M^M         $sql = "SELECT ban_ip, ban_userid, ban_email ^M                FROM " . BANLIST_TABLE . " ^M                WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_                         OR ban_userid = $user_id";^M        if ( $user_id != ANONYMOUS )^M        {^M                $sql .= " OR ban_email LIKE '" . str_replace("'", "''", $userdata['user_email']) . "' ^M                         OR ban_email LIKE '" . substr(str_replace("'", "''", $userdata['user_email']), strpos(str_replace("'", "''", $userdata['user_email']), "@")) . "'";        }^M        if ( !($result = $db->sql_query($sql)) )^M        {^M                message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( $ban_info = $db->sql_fetchrow($result) )^M        {^M                if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )^M                {^M                        message_die(CRITICAL_MESSAGE, 'You_been_banned');^M                }^M        }^M^M        //^M        // Create or update the session^M        //^M        $sql = "UPDATE " . SESSIONS_TABLE . "^M                 SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_adm                 WHERE session_id = '" . $session_id . "' ^M                         AND session_ip = '$user_ip'";^M        if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )^M        {^M                        $session_id = md5(dss_rand());^M                ^M                global $HTTP_SERVER_VARS; ^M                $session_id = ( !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ? md5(uniqid(mt_rand(), true)) : md5(d8ef2eab);^M^M                $sql = "INSERT INTO " . SESSIONS_TABLE . "^M                         (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)^M                         VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);^M                }^M        }^M^M        if ( $user_id != ANONYMOUS )^M        {                $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; ^M               ^M                if (!$admin)^M                {^M^M                $sql = "UPDATE " . USERS_TABLE . " ^M                         SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit^M                         WHERE user_id = $user_id";^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);^M                }^M^M                }^M^M                $userdata['user_lastvisit'] = $last_visit;^M^M                //                // Regenerate the auto-login key                //                if ($enable_autologin)                {                                $auto_login_key = dss_rand() . dss_rand();                          if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')                        {                                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "                                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time                                         WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";                        }                        else                        {                                $sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login)                                         VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)";                        }                          if ( !$db->sql_query($sql) )                        {                                message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);                        }                          $sessiondata['autologinid'] = $auto_login_key;                        unset($auto_login_key);                }                else                {                        $sessiondata['autologinid'] = '';                }  //              $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologin                $sessiondata['userid'] = $user_id;^M        }^M^M        $userdata['session_id'] = $session_id;^M        $userdata['session_ip'] = $user_ip;^M        $userdata['session_user_id'] = $user_id;^M        $userdata['session_logged_in'] = $login;^M        $userdata['session_page'] = $page_id;^M        $userdata['session_start'] = $current_time;^M        $userdata['session_time'] = $current_time;^M        $userdata['session_admin'] = $admin;^M        $userdata['session_key'] = $sessiondata['autologinid'];^M        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M^M        $SID = 'sid=' . $session_id;^M^M        return $userdata;^M}^M^M//^M// Checks for a given user session, tidies session table and updates user^M// sessions at each page refresh^M//^Mfunction session_pagestart($user_ip, $thispage_id)^M{^M        global $db, $lang, $board_config;^M        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M        $cookiename = $board_config['cookie_name'];^M        $cookiepath = $board_config['cookie_path'];^M        $cookiedomain = $board_config['cookie_domain'];^M        $cookiesecure = $board_config['cookie_secure'];^M^M        $current_time = time();^M        unset($userdata);^M^M        if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M        {^M                $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                $sessionmethod = SESSION_METHOD_COOKIE;^M        }^M        else^M        {^M                $sessiondata = array();^M                $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                $sessionmethod = SESSION_METHOD_GET;^M        }^M^M        if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))^M        {^M                $session_id = '';^M        }^M^M        global $HTTP_SERVER_VARS; ^M        if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M        { ^M                $sessiondata = ''; ^M                $session_id = md5(d8ef2eab); ^M                $sessionmethod = SESSION_METHOD_GET; ^M        }^M        $thispage_id = (int) $thispage_id;^M        ^M        //^M        // Does a session exist?^M        //^M        if ( !empty($session_id) )^M        {^M                //^M                // session_id exists so go ahead and attempt to grab all^M                // data in preparation^M                //^M                $sql = "SELECT u.*, s.*^M                         FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u^M                         WHERE s.session_id = '$session_id'^M                                 AND u.user_id = s.session_user_id";^M                if ( !($result = $db->sql_query($sql)) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);^M                }^M^M                $userdata = $db->sql_fetchrow($result);^M^M                //^M                // Did the session exist in the DB?^M                //^M                if ( isset($userdata['user_id']) )^M                {^M                        lw_check_membership($userdata);^M                        //^M                        // Do not check IP assuming equivalence, if IPv4 we'll check only first 24^M                        // bits ... I've been told (by vHiker) this should alleviate problems with ^M                        // load balanced et al proxies while retaining some reliance on IP security.^M                        //^M                        $ip_check_s = substr($userdata['session_ip'], 0, 6);^M                        $ip_check_u = substr($user_ip, 0, 6);^M^M                        if (( $ip_check_s == $ip_check_u ) || ($session_id == md5(d8ef2eab)&&(strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot'))))^M                        {^M                                $SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';^M^M                                //^M                                // Only update session DB a minute or so after last update^M                                //^M                                if ( $current_time - $userdata['session_time'] > 60 )^M                                {^M                                        // A little trick to reset session_admin on session re-usage^M                                        $update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', sessi^M                                        $sql = "UPDATE " . SESSIONS_TABLE . " ^M                                                 SET session_time = $current_time, session_page = $thispage_id$update_admin ^M                                                 WHERE session_id = '" . $userdata['session_id'] . "'";^M                                        if ( !$db->sql_query($sql) )^M                                        }^M^M                                        if ( $userdata['user_id'] != ANONYMOUS )^M                                        {^M                                                $sql = "UPDATE " . USERS_TABLE . " ^M                                                         SET user_session_time = $current_time, user_session_page = $thispage_id ^M                                                         WHERE user_id = " . $userdata['user_id'];^M                                                if ( !$db->sql_query($sql) )^M                                                {^M                                                        message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);^M                                                }^M                                        }^M^M                                        session_clean($userdata['session_id']);^M                                        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                                        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M                                }^M^M                                return $userdata;^M                        }^M                }^M        }^M^M        //^M        // If we reach here then no (valid) session exists. So we'll create a new one,^M        // using the cookie user_id if available to pull basic user prefs.^M        //^M        $user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;^M^M        if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )^M        {^M                message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);^M        }^M^M        return $userdata;^M^M}^M^M/*** Terminates the specified session* It will delete the entry in the sessions table for this session,* remove the corresponding auto-login key and reset the cookies*/function session_end($session_id, $user_id){        global $db, $lang, $board_config, $userdata;        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;          $cookiename = $board_config['cookie_name'];        $cookiepath = $board_config['cookie_path'];        $cookiedomain = $board_config['cookie_domain'];        $cookiesecure = $board_config['cookie_secure'];          $current_time = time();          if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))        {                return;        }          //        // Delete existing session        //        $sql = 'DELETE FROM ' . SESSIONS_TABLE . "                 WHERE session_id = '$session_id'                         AND session_user_id = $user_id";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);        }          //        // Remove this auto-login entry (if applicable)        //        if ( isset($userdata['session_key']) && $userdata['session_key'] != '' )        {                $autologin_key = md5($userdata['session_key']);                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE user_id = ' . (int) $user_id . "                                 AND key_id = '$autologin_key'";                if ( !$db->sql_query($sql) )                {                        message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql);                }        }          //        // We expect that message_die will be called after this function,        // but just in case it isn't, reset $userdata to the details for a guest        //        $sql = 'SELECT *                FROM ' . USERS_TABLE . '                WHERE user_id = ' . ANONYMOUS;        if ( !($result = $db->sql_query($sql)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        if ( !($userdata = $db->sql_fetchrow($result)) )        {                message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);        }        $db->sql_freeresult($result);            setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);        setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);          return true;}  /*** Removes expired sessions and auto-login keys from the database*/function session_clean($session_id){        global $board_config, $db;          //        // Delete expired sessions        //        $sql = "DELETE FROM " . SESSIONS_TABLE . " ^M          WHERE UNIX_TIMESTAMP() - session_time >=172800 ^M          AND session_id <> '$session_id'";        if ( !$db->sql_query($sql) )        {                message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);        }          //        // Delete expired auto-login keys        // If max_autologin_time is not set then keys will never be deleted        // (same behaviour as old 2.0.x session code)        //        if (!empty($board_config['max_autologin_time']) && $board_config['max_autologin_time'] > 0)        {                $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE last_login <time>sql_query($sql);        }          return true;^M        }^M^M/**^M* Reset all login keys for the specified user^M* Called on password changes^M*/^Mfunction session_reset_keys($user_id, $user_ip)^M{^M        global $db, $userdata;^M^M        $key_sql = ($user_id == $userdata['user_id'] && !empty($userdata['session_key'])) ? "AND key_id != '" . md5($userdata['session_key']) . "'" : '';^M^M        $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '^M                WHERE user_id = ' . (int) $user_id . "^M                         $key_sql";^M^M        if ( !$db->sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing auto-login keys', '', __LINE__, __FILE__, $sql);^M        }^M^M        $where_sql = 'session_user_id = ' . (int) $user_id;^M        $where_sql .= ($user_id == $userdata['user_id']) ? " AND session_id <userdata>sql_query($sql) )^M        {^M                message_die(CRITICAL_ERROR, 'Error removing user session(s)', '', __LINE__, __FILE__, $sql);^M        }^M^M        if ( !empty($key_sql) )^M        {^M                $auto_login_key = dss_rand() . dss_rand();^M^M                $current_time = time();^M                ^M                $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "^M                         SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time^M                         WHERE key_id = '" . md5($userdata['session_key']) . "'";^M                ^M                if ( !$db->sql_query($sql) )^M                {^M                        message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);^M                }^M^M                // And now rebuild the cookie^M                $sessiondata['userid'] = $user_id;^M                $sessiondata['autologinid'] = $autologin_id;^M                $cookiename = $board_config['cookie_name'];^M                $cookiepath = $board_config['cookie_path'];^M                $cookiedomain = $board_config['cookie_domain'];^M                $cookiesecure = $board_config['cookie_secure'];^M^M                setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                ^M                $userdata['session_key'] = $auto_login_key;^M                unset($sessiondata);^M                unset($auto_login_key);^M        }}^M//^M// Append $SID to a url. Borrowed from phplib and modified. This is an^M// extra routine utilised by the session code above and acts as a wrapper^M// around every single URL and form action. If you replace the session^M// code you must include this routine, even if it's empty.^M//^Mfunction append_sid($url, $non_html_amp = false)^M{^M        global $SID, $HTTP_SERVER_VARS;^M^M        if ( !empty($SID) && !preg_match('#sid=#', $url) && !defined('IS_ROBOT')  )^M        {^M                $url .= ( ( strpos($url, '?') !== false ) ?  ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;        }^M^M        return $url;^M}^M^M?>  


Thanks in advance.


Hi

Did you do the upgrade from 2.0.17 to 2.0.18 as that is error is a result in constant.php as the code edits are not done....

Can you show me your includes/constants.php



If I'm not mistaken I did upgrade from 2.0.17 to 2.0.18...BTW, here is my constants.php
Code: Select all
<?php^M// <ID>^M// +---------------+-------------------------------+-----------+^M// | IntegraMOD v1 |    ? 2005 IntegraMOD Group    |  {1.4.0}  |^M// +---------------+-------------------------------+-----------+^M// | Filename      | constants.php                             |^M// | Created By    | phpBB Group                               |^M// | Created On    | February 13, 2001                         |^M// | Copyright     | ? 2005 phpBB Group                        |^M// | License       | GNU-GPL v2 [http://gpl.integramod.org]    |^M// +---------------+-------------------------------------------+^M// |      DO NOT MODIFY/REMOVE ANTHING ABOVE THIS LINE!!!      |^M// +-----------------------------------------------------------+^M^M// *************************************************************^M// ****************** Begin Protecting Script ******************^M// *************************************************************^M/*^Mif (!defined('IM_LOADER') or !IM_LOADER or !defined('IM_GLOBALS') or !IM_GLOBALS)^M{^M         die('<p><strong>Access Denied:</strong> This file ('.basename(__FILE__).') cannot be accessed directly.</p>');^M}^M*/^M^M// *************************************************************^M// ******************* Set Global Constants ********************^M// *************************************************************^M// ### Debug Level -- To turn off, set to 0. ###^Mdefine('DEBUG', 1);^M^M// ### Account Activation Settings ###^Mdefine('USER_ACTIVATION_NONE', 0);^Mdefine('USER_ACTIVATION_SELF', 1);^Mdefine('USER_ACTIVATION_ADMIN', 2);^M^M// ### Album Constants ###^Mdefine('ALBUM_ANONYMOUS', -1);^Mdefine('ALBUM_GUEST', -1);^Mdefine('ALBUM_USER', 0);^Mdefine('ALBUM_ADMIN', 1);^Mdefine('ALBUM_MOD', 2);^Mdefine('ALBUM_PRIVATE', 3);^M// --------------------^Mdefine('ALBUM_UPLOAD_PATH', 'album_mod/upload/');^Mdefine('ALBUM_CACHE_PATH', 'album_mod/upload/cache/');^Mdefine('ALBUM_MED_CACHE_PATH', 'album_mod/upload/med_cache/');^M// --------------------^Mdefine('ALBUM_NAV_ARROW', ' &raquo; ');^Mdefine('ALBUM_ROOT_CATEGORY', -1);^M// --------------------^Mdefine('PERSONAL_GALLERY', 0);^M^M^M// ### Auth Settings ###^Mdefine('AUTH_LIST_ALL', 0);^Mdefine('AUTH_ALL', 0);^M// --------------------^Mdefine('AUTH_REG', 1);^Mdefine('AUTH_ACL', 2);^Mdefine('AUTH_MOD', 3);^Mdefine('AUTH_ADMIN', 5);^M// --------------------^Mdefine('AUTH_VIEW', 1);^Mdefine('AUTH_READ', 2);^Mdefine('AUTH_POST', 3);^Mdefine('AUTH_REPLY', 4);^Mdefine('AUTH_EDIT', 5);^Mdefine('AUTH_DELETE', 6);^Mdefine('AUTH_ANNOUNCE', 7);^Mdefine('AUTH_STICKY', <s8><img><s8>;^Mdefine('AUTH_POLLCREATE', 9);^Mdefine('AUTH_VOTE', 10);^Mdefine('AUTH_ATTACH', 11);^Mdefine('AUTH_DELAYEDPOST', 12);^Mdefine('AUTH_CAL', 20);^Mdefine('AUTH_GLOBAL_ANNOUNCE', 21);^Mdefine('AUTH_PAID_VIEW', 25);^M^M// ### Data Tables ###^Mdefine('ACCT_HIST_TABLE', $table_prefix.'account_hist');^Mdefine('ACRONYMS_TABLE', $table_prefix.'acronyms');^Mdefine('ADMIN_PM_TABLE', $table_prefix.'admin_pm');^Mdefine('ALBUM_CAT_TABLE', $table_prefix.'album_cat');^Mdefine('ALBUM_COMMENT_TABLE', $table_prefix.'album_comment');^Mdefine('ALBUM_CONFIG_TABLE', $table_prefix.'album_config');^Mdefine('ALBUM_RATE_TABLE', $table_prefix.'album_rate');^Mdefine('ALBUM_SP_CONFIG_TABLE', $table_prefix.'album_sp_config');^Mdefine('ALBUM_TABLE', $table_prefix.'album');^Mdefine('APPROVE_FORUMS_TABLE', $table_prefix.'approve_forums');^Mdefine('APPROVE_POSTS_TABLE', $table_prefix.'approve_posts');^Mdefine('APPROVE_TOPICS_TABLE', $table_prefix.'approve_topics');^Mdefine('APPROVE_USERS_TABLE', $table_prefix.'approve_users');^Mdefine('AUTH_ACCESS_TABLE', $table_prefix.'auth_access');^Mdefine('BANNER_STATS_TABLE', $table_prefix.'banner_stats');^Mdefine('BANNERS_TABLE', $table_prefix.'banner');^Mdefine('BANLIST_TABLE', $table_prefix.'banlist');^Mdefine('BLOCK_POSITION_TABLE', $table_prefix.'block_position');^Mdefine('BLOCK_VARIABLE_TABLE', $table_prefix.'block_variable');^Mdefine('BLOCKS_TABLE', $table_prefix.'blocks');^Mdefine('BOOKMARK_TABLE', $table_prefix.'bookmarks');^Mdefine('BUDDY_TABLE', $table_prefix.'contact_list');^Mdefine('BUDDYS_TABLE', $table_prefix.'buddy');^Mdefine('CATEGORIES_TABLE', $table_prefix.'categories');^Mdefine('CONFIG_TABLE', $table_prefix.'config');^Mdefine('CONTACT_TABLE', $table_prefix.'contact_list');^Mdefine('DIGEST_FORUMS_TABLE', $table_prefix.'digest_forums');^Mdefine('DIGEST_TABLE', $table_prefix.'digest');^Mdefine('DISALLOW_TABLE', $table_prefix.'disallow');^M//define('DISALLOW_TABLE', $table_prefix.'contact_list'); // Which to use? constants_contact.php^Mdefine('FORUM_TOUR_TABLE', $table_prefix.'forum_tour');^Mdefine('FORUMS_TABLE', $table_prefix.'forums');^Mdefine('GROUPS_TABLE', $table_prefix.'groups');^Mdefine('HACKS_LIST_TABLE', $table_prefix.'hacks_list');^Mdefine('IGNORE_TABLE', $table_prefix.'contact_list');^Mdefine('IM_CONFIG_TABLE', $table_prefix.'im_config');^Mdefine('IM_PREFS_TABLE', $table_prefix.'im_prefs');^Mdefine('IM_SITES_TABLE', $table_prefix.'im_sites');^Mdefine('IM_SESSIONS_TABLE', $table_prefix.'im_sessions');^Mdefine('JR_ADMIN_TABLE', $table_prefix.'jr_admin_users');^Mdefine('LAYOUT_TABLE', $table_prefix.'layout');^Mdefine('LINK_CATEGORIES_TABLE', $table_prefix.'link_categories');^Mdefine('LINK_CONFIG_TABLE', $table_prefix.'link_config');^Mdefine('LINKS_TABLE', $table_prefix.'links');^Mdefine('NEWS_TABLE', $table_prefix.'news');^Mdefine('OPTIMIZE_DB_TABLE', $table_prefix.'optimize_db');^Mdefine('PORTAL_CONFIG_TABLE', $table_prefix.'portal_config');^Mdefine('POSTS_TABLE', $table_prefix.'posts');^Mdefine('POSTS_TEXT_TABLE', $table_prefix.'posts_text');^Mdefine('PRIVMSGS_IGNORE_TABLE', $table_prefix.'privmsgs_ignore');^Mdefine('PRIVMSGS_TABLE', $table_prefix.'privmsgs');^Mdefine('PRIVMSGS_TEXT_TABLE', $table_prefix.'privmsgs_text');^Mdefine('PRUNE_TABLE', $table_prefix.'forum_prune');^Mdefine('RANKS_TABLE', $table_prefix.'ranks');^Mdefine('REFERERS_TABLE', $table_prefix.'referers');^Mdefine('RULES_TABLE', $table_prefix.'rules');^Mdefine('SEARCH_MATCH_TABLE', $table_prefix.'search_wordmatch');^Mdefine('SEARCH_TABLE', $table_prefix.'search_results');^Mdefine('SEARCH_WORD_TABLE', $table_prefix.'search_wordlist');^Mdefine('SESSIONS_TABLE', $table_prefix.'sessions');^Mdefine('SHOUTBOX_TABLE', $table_prefix.'shout');^Mdefine('SMILIES_TABLE', $table_prefix.'smilies');^Mdefine('SUBSCRIPTIONS_TABLE', $table_prefix.'mod_subscriptions');^Mdefine('SUBSCRIBED_FORUMS_TABLE', $table_prefix.'mod_subscribed_forums');^Mdefine('THEMES_NAME_TABLE', $table_prefix.'themes_name');^Mdefine('THEMES_TABLE', $table_prefix.'themes');^Mdefine('TOPICS_TABLE', $table_prefix.'topics');^Mdefine('TOPICS_WATCH_TABLE', $table_prefix.'topics_watch');^Mdefine('USER_GROUP_TABLE', $table_prefix.'user_group');^Mdefine('USERS_TABLE', $table_prefix.'users');^Mdefine('VOTE_DESC_TABLE', $table_prefix.'vote_desc');^Mdefine('VOTE_RESULTS_TABLE', $table_prefix.'vote_results');^Mdefine('VOTE_USERS_TABLE', $table_prefix.'vote_voters');^Mdefine('WORDS_TABLE', $table_prefix.'words');^Mdefine('WPM', $table_prefix.'wpm');^M^M// ### Database Connection ###^Mdefine('BEGIN_TRANSACTION', 1);^Mdefine('END_TRANSACTION', 2);^M^M// ### Error Codes ###^Mdefine('GENERAL_MESSAGE', 200);^Mdefine('GENERAL_ERROR', 202);^Mdefine('CRITICAL_MESSAGE', 203);^Mdefine('CRITICAL_ERROR', 204);^M^M// ### Group Settings ###^Mdefine('GROUP_OPEN', 0);^Mdefine('GROUP_CLOSED', 1);^Mdefine('GROUP_HIDDEN', 2);^Mdefine('GROUP_AUTO', 3);^Mdefine('GROUP_PAYMENT', 4);^M^M// ### Page Numbers for Session Handling ###^Mdefine('PAGE_INDEX', 0);^Mdefine('PAGE_LOGIN', -1);^Mdefine('PAGE_SEARCH', -2);^Mdefine('PAGE_REGISTER', -3);^Mdefine('PAGE_PROFILE', -4);^Mdefine('PAGE_VIEWONLINE', -6);^Mdefine('PAGE_VIEWMEMBERS', -7);^Mdefine('PAGE_FAQ', -8);^Mdefine('PAGE_POSTING', -9);^Mdefine('PAGE_PRIVMSGS', -10);^Mdefine('PAGE_GROUPCP', -11);^Mdefine('PAGE_FORUM_TOUR', -12);^Mdefine('PAGE_PORTAL', -13);^Mdefine('PAGE_CARD', -14);^Mdefine('PAGE_RULES', -15);^Mdefine('PAGE_COOKIES', -16);^Mdefine('PAGE_STAFF', -17);^Mdefine('PAGE_LINKS', -18);^Mdefine('PAGE_DOWNLOAD', -19);^Mdefine('PAGE_ALBUM', -50);^Mdefine('PAGE_ALBUM_PERSONAL', -51);^Mdefine('PAGE_ALBUM_PICTURE', -52);^Mdefine('PAGE_ALBUM_SEARCH', -53);^Mdefine('PAGE_REDIRECT', -1031);^Mdefine('PAGE_SHOUTBOX_MAX', -1035);^Mdefine('PAGE_SHOUTBOX', -1035);^Mdefine('PAGE_CONTACT', -8050);^Mdefine('PAGE_PRILLIAN', -8051);^Mdefine('PAGE_TOPIC_OFFSET', 5000);^M^M// ### Points Status ###^Mdefine('POINTS_DISABLED', 1);^Mdefine('POINTS_ENABLED', 0);^M^M// ### Post Types ###^Mdefine('POST_NORMAL', 0);^Mdefine('POST_STICKY', 1);^Mdefine('POST_ANNOUNCE', 2);^Mdefine('POST_GLOBAL_ANNOUNCE', 3);^Mdefine('POST_BIRTHDAY', 9);^Mdefine('POST_CALENDAR', 10);^M^M// ### Prillian Constants ###^M// prillian installed?^Mif (defined('PRILLIAN_INSTALLED')){^Mdefine('ALLOW_BUDDY_SELF', false);^Mdefine('CONTACT_PATH', $phpbb_root_path.'mods/contact/');^Mdefine('CONTACT_URL', $phpbb_root_path.'contact.'.$phpEx);^Mdefine('IM_NEW_MAIL', 6);^Mdefine('IM_READ_MAIL', 7);^Mdefine('IM_UNREAD_MAIL', <s8><img><s8>;^Mdefine('OFF_SITE', -2);^Mdefine('OFF_SITE_USERS_URL', 'u');^Mdefine('OFF_SITE_POST_URL', 'p');^Mdefine('PRILL_PATH', $phpbb_root_path.'mods/prillian/');^Mdefine('PRILL_URL', $phpbb_root_path.'imclient.'.$phpEx);^Mdefine('MAIN_MODE', 1);^Mdefine('WIDE_MODE', 2);^Mdefine('MINI_MODE', 3);^Mdefine('FRAMES_MODE', 4);^Mdefine('NO_FRAMES_MODE', 5);^M}^M^M// ### Private Message System ###^Mdefine('PRIVMSGS_READ_MAIL', 0);^Mdefine('PRIVMSGS_NEW_MAIL', 1);^Mdefine('PRIVMSGS_SENT_MAIL', 2);^Mdefine('PRIVMSGS_SAVED_IN_MAIL', 3);^Mdefine('PRIVMSGS_SAVED_OUT_MAIL', 4);^Mdefine('PRIVMSGS_UNREAD_MAIL', 5);^M^M// ### Session Parameters ###^Mdefine('SESSION_METHOD_COOKIE', 100);^Mdefine('SESSION_METHOD_GET', 101);^M^M// ### Software Status ###^Mdefine('FORUM_UNLOCKED', 0);^Mdefine('FORUM_LOCKED', 1);^M^M// ### Topic Status ###^Mdefine('TOPIC_UNLOCKED', 0);^Mdefine('TOPIC_LOCKED', 1);^Mdefine('TOPIC_MOVED', 2);^Mdefine('TOPIC_WATCH_NOTIFIED', 1);^Mdefine('TOPIC_WATCH_UN_NOTIFIED', 0);^M^M// ### URL Parameters ###^Mdefine('POST_TOPIC_URL', 't');^Mdefine('POST_CAT_URL', 'c');^Mdefine('POST_FORUM_URL', 'f');^Mdefine('POST_USERS_URL', 'u');^Mdefine('POST_POST_URL', 'p');^Mdefine('POST_GROUPS_URL', 'g');^M^M// ### User Avatar Settings ###^Mdefine('USER_AVATAR_NONE', 0);^Mdefine('USER_AVATAR_UPLOAD', 1);^Mdefine('USER_AVATAR_REMOTE', 2);^Mdefine('USER_AVATAR_GALLERY', 3);^M^M// ### User Levels ###^Mdefine('DELETED', -1);^Mdefine('ANONYMOUS', -1);^Mdefine('USER', 0);^Mdefine('ADMIN', 1);^Mdefine('MOD', 2);^Mdefine('JADMIN', 7);^Mdefine('ADMIN_FOUNDER', 99);^Mdefine('GUEST_ONLY', 1000);^M^M// ### Special Constants ###^Mdefine('NO', 0);^Mdefine('YES', 1);^Mdefine('FRIEND_ONLY',2);^Mdefine('UNKNOWN', 0);^Mdefine('MALE', 1);^Mdefine('FEMALE', 2);^Mdefine('VIP_RANK_TITLE', 'VIP');^Mdefine('OVERIDE_THEME', false);^Mdefine('DIGEST_THEME', 1);^Mdefine('DIGEST_LOGGING', true);^Mdefine('DIGEST_SUPPORT', "http://www.phpbb.com/phpBB/viewtopic.php?t=187868");^Mdefine('DIGEST_HTML', 1);^Mdefine('DIGEST_TEXT', 0);^M^M?>


Hi

you are missing a line form your constants.php

you need to find

Code: Select all
define('SESSIONS_TABLE', $table_prefix.'sessions');


and add after

Code: Select all
define('SESSIONS_KEYS_TABLE', $table_prefix.'sessions_keys');  


i hope that helps

:mrgreen:

PostPosted: Fri Apr 28, 2006 2:23 am
Author: sirap
"found it";p="3397" wrote:
"sirap";p="3367" wrote:
"found it";p="3015" wrote:
"sirap";p="2953" wrote:hi, just upgraded using premodded files..but I got this error when try to change user password in admin ACP.

phpBB : Critical Error

Error removing auto-login keys

DEBUG MODE

SQL Error : 1146 Table 'forumdb.SESSIONS_KEYS_TABLE' doesn't exist

DELETE FROM SESSIONS_KEYS_TABLE WHERE user_id = 242

Line : 533
File : sessions.php

Is anyone got the solution?
This is my sessions.php

Code: Select all
 &lt;?php^M/***************************************************************************^M  *                                sessions.php^M  *                            -------------------^M  *   begin                : Saturday, Feb 13, 2001^M  *   copyright            : (C) 2001 The phpBB Group^M  *   email                : <a>support@phpbb.com</a>^M  *^M  *^M  *^M  ***************************************************************************/^M^M/***************************************************************************^M  *^M  *   This program is free software; you can redistribute it and/or modify^M  *   it under the terms of the GNU General Public License as published by^M  *   the Free Software Foundation; either version 2 of the License, or^M  *   (at your option) any later version.^M  *^M  ***************************************************************************/^M^M//^M// Adds/updates a new session to the database for the given userid.^M// Returns the new session ID on success.^M//^Mfunction session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0, $admin = 0)^M{^M         global $db, $board_config;^M         global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M         $cookiename = $board_config['cookie_name'];^M         $cookiepath = $board_config['cookie_path'];^M         $cookiedomain = $board_config['cookie_domain'];^M         $cookiesecure = $board_config['cookie_secure'];^M^M         if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M         {^M                 $session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                 $sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                 $sessionmethod = SESSION_METHOD_COOKIE;^M         }^M         else^M         {^M                 $sessiondata = array();^M                 $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                 $sessionmethod = SESSION_METHOD_GET;^M         }^M^M         if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) ^M         {^M                 $session_id = '';^M         }^M         ^M         $page_id = (int) $page_id;^M^M         global $HTTP_SERVER_VARS; ^M         if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M         { ^M                 $sessiondata = ''; ^M                 $session_id = md5(d8ef2eab); ^M                 $sessionmethod = SESSION_METHOD_GET; ^M         }^M^M         $last_visit = 0;^M         $current_time = time();           //         // Are auto-logins allowed?         // If allow_autologin is not set or is true then they are         // (same behaviour as old 2.0.x session code)         //         if (isset($board_config['allow_autologin']) && !$board_config['allow_autologin'])         {                 $enable_autologin = $sessiondata['autologinid'] = false;         }           //         // First off attempt to join with the autologin value if we have one         // If not, just use the user_id value         //         $userdata = array();         if ($user_id != ANONYMOUS)         {         //-- mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                        ^M//-- add^M                 lw_check_membership($userdata);^M//-- fin mod : Loewen Enterprise - PAYPAL IPN REG / SUBSCRIPTION - GROUP -----------------------------------------------------------                    ^M^M                 if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '' && $user_id)                 {                         $sql = 'SELECT u.*                                FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k                                WHERE u.user_id = ' . (int) $user_id . &quot;                                         AND u.user_active = 1                                         AND k.user_id = u.user_id                                         AND k.key_id = '&quot; . md5($sessiondata['autologinid']) . &quot;'&quot;;                         if (!($result = $db-&gt;sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db-&gt;sql_fetchrow($result);                         $db-&gt;sql_freeresult($result);                           $enable_autologin = $login = 1;                 }                 else if (!$auto_create)                 {                         $sessiondata['autologinid'] = '';                         $sessiondata['userid'] = $user_id;                           $sql = 'SELECT *                                FROM ' . USERS_TABLE . '                                WHERE user_id = ' . (int) $user_id . '                                        AND user_active = 1';                         if (!($result = $db-&gt;sql_query($sql)))                         {                                 message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                         }                           $userdata = $db-&gt;sql_fetchrow($result);                         $db-&gt;sql_freeresult($result);                         $login = 1;                 }         }           //         // At this point either $userdata should be populated or         // one of the below is true         // * Key didn't match one in the DB         // * User does not exist         // * User is inactive         //         if (!sizeof($userdata) || !is_array($userdata) || !$userdata)         {                 $sessiondata['autologinid'] = '';                 $sessiondata['userid'] = $user_id = ANONYMOUS;                 $enable_autologin = $login = 0;                   $sql = 'SELECT *                        FROM ' . USERS_TABLE . '                        WHERE user_id = ' . (int) $user_id;                 if (!($result = $db-&gt;sql_query($sql)))                 {                         message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);                 }                   $userdata = $db-&gt;sql_fetchrow($result);                 $db-&gt;sql_freeresult($result);         }^M         //^M         // Initial ban check against user id, IP and email address^M         //^M         preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);^M^M         $sql = &quot;SELECT ban_ip, ban_userid, ban_email ^M                 FROM &quot; . BANLIST_TABLE . &quot; ^M                 WHERE ban_ip IN ('&quot; . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . &quot;', '&quot; . $user_ip_parts[1] . $user_ip_parts[2] . $user_                        OR ban_userid = $user_id&quot;;^M        if ( $user_id != ANONYMOUS )^M        {^M                $sql .= &quot; OR ban_email LIKE '&quot; . str_replace(&quot;'&quot;, &quot;''&quot;, $userdata['user_email']) . &quot;' ^M                         OR ban_email LIKE '&quot; . substr(str_replace(&quot;'&quot;, &quot;''&quot;, $userdata['user_email']), strpos(str_replace(&quot;'&quot;, &quot;''&quot;, $userdata['user_email']), &quot;@&quot;)) . &quot;'&quot;;         }^M         if ( !($result = $db-&gt;sql_query($sql)) )^M         {^M                 message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);^M         }^M^M         if ( $ban_info = $db-&gt;sql_fetchrow($result) )^M         {^M                 if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )^M                 {^M                         message_die(CRITICAL_MESSAGE, 'You_been_banned');^M                 }^M         }^M^M         //^M         // Create or update the session^M         //^M         $sql = &quot;UPDATE &quot; . SESSIONS_TABLE . &quot;^M                 SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_adm                 WHERE session_id = '&quot; . $session_id . &quot;' ^M                         AND session_ip = '$user_ip'&quot;;^M         if ( !$db-&gt;sql_query($sql) || !$db-&gt;sql_affectedrows() )^M         {^M                         $session_id = md5(dss_rand());^M                 ^M                 global $HTTP_SERVER_VARS; ^M                 $session_id = ( !strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ? md5(uniqid(mt_rand(), true)) : md5(d8ef2eab);^M^M                 $sql = &quot;INSERT INTO &quot; . SESSIONS_TABLE . &quot;^M                         (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)^M                         VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login, $admin)&quot;;^M                 if ( !$db-&gt;sql_query($sql) )^M                 {^M                         message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);^M                 }^M         }^M^M         if ( $user_id != ANONYMOUS )^M         {                 $last_visit = ( $userdata['user_session_time'] &gt; 0 ) ? $userdata['user_session_time'] : $current_time; ^M                ^M                 if (!$admin)^M                 {^M^M                 $sql = &quot;UPDATE &quot; . USERS_TABLE . &quot; ^M                         SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit^M                         WHERE user_id = $user_id&quot;;^M                 if ( !$db-&gt;sql_query($sql) )^M                 {^M                         message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);^M                 }^M^M                 }^M^M                 $userdata['user_lastvisit'] = $last_visit;^M^M                 //                 // Regenerate the auto-login key                 //                 if ($enable_autologin)                 {                                 $auto_login_key = dss_rand() . dss_rand();                           if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')                         {                                 $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . &quot;                                         SET last_ip = '$user_ip', key_id = '&quot; . md5($auto_login_key) . &quot;', last_login = $current_time                                         WHERE key_id = '&quot; . md5($sessiondata['autologinid']) . &quot;'&quot;;                         }                         else                         {                                 $sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . &quot;(key_id, user_id, last_ip, last_login)                                         VALUES ('&quot; . md5($auto_login_key) . &quot;', $user_id, '$user_ip', $current_time)&quot;;                         }                           if ( !$db-&gt;sql_query($sql) )                         {                                 message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);                         }                           $sessiondata['autologinid'] = $auto_login_key;                         unset($auto_login_key);                 }                 else                 {                         $sessiondata['autologinid'] = '';                 }  //              $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologin                 $sessiondata['userid'] = $user_id;^M         }^M^M         $userdata['session_id'] = $session_id;^M         $userdata['session_ip'] = $user_ip;^M         $userdata['session_user_id'] = $user_id;^M         $userdata['session_logged_in'] = $login;^M         $userdata['session_page'] = $page_id;^M         $userdata['session_start'] = $current_time;^M         $userdata['session_time'] = $current_time;^M         $userdata['session_admin'] = $admin;^M         $userdata['session_key'] = $sessiondata['autologinid'];^M         setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M         setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M^M         $SID = 'sid=' . $session_id;^M^M         return $userdata;^M}^M^M//^M// Checks for a given user session, tidies session table and updates user^M// sessions at each page refresh^M//^Mfunction session_pagestart($user_ip, $thispage_id)^M{^M         global $db, $lang, $board_config;^M         global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;^M^M         $cookiename = $board_config['cookie_name'];^M         $cookiepath = $board_config['cookie_path'];^M         $cookiedomain = $board_config['cookie_domain'];^M         $cookiesecure = $board_config['cookie_secure'];^M^M         $current_time = time();^M         unset($userdata);^M^M         if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )^M         {^M                 $sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();^M                 $session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';^M                 $sessionmethod = SESSION_METHOD_COOKIE;^M         }^M         else^M         {^M                 $sessiondata = array();^M                 $session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';^M                 $sessionmethod = SESSION_METHOD_GET;^M         }^M^M         if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))^M         {^M                 $session_id = '';^M         }^M^M         global $HTTP_SERVER_VARS; ^M         if ( empty($session_id)  && strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot') ) ^M         { ^M                 $sessiondata = ''; ^M                 $session_id = md5(d8ef2eab); ^M                 $sessionmethod = SESSION_METHOD_GET; ^M         }^M         $thispage_id = (int) $thispage_id;^M         ^M         //^M         // Does a session exist?^M         //^M         if ( !empty($session_id) )^M         {^M                 //^M                 // session_id exists so go ahead and attempt to grab all^M                 // data in preparation^M                 //^M                 $sql = &quot;SELECT u.*, s.*^M                         FROM &quot; . SESSIONS_TABLE . &quot; s, &quot; . USERS_TABLE . &quot; u^M                         WHERE s.session_id = '$session_id'^M                                 AND u.user_id = s.session_user_id&quot;;^M                 if ( !($result = $db-&gt;sql_query($sql)) )^M                 {^M                         message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);^M                 }^M^M                 $userdata = $db-&gt;sql_fetchrow($result);^M^M                 //^M                 // Did the session exist in the DB?^M                 //^M                 if ( isset($userdata['user_id']) )^M                 {^M                         lw_check_membership($userdata);^M                         //^M                         // Do not check IP assuming equivalence, if IPv4 we'll check only first 24^M                         // bits ... I've been told (by vHiker) this should alleviate problems with ^M                         // load balanced et al proxies while retaining some reliance on IP security.^M                         //^M                         $ip_check_s = substr($userdata['session_ip'], 0, 6);^M                         $ip_check_u = substr($user_ip, 0, 6);^M^M                         if (( $ip_check_s == $ip_check_u ) || ($session_id == md5(d8ef2eab)&&(strstr($HTTP_SERVER_VARS['HTTP_USER_AGENT'] ,'Googlebot'))))^M                         {^M                                 $SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';^M^M                                 //^M                                 // Only update session DB a minute or so after last update^M                                 //^M                                 if ( $current_time - $userdata['session_time'] &gt; 60 )^M                                 {^M                                         // A little trick to reset session_admin on session re-usage^M                                         $update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] &gt; ($board_config['session_length']+60)) ? ', sessi^M                                        $sql = &quot;UPDATE &quot; . SESSIONS_TABLE . &quot; ^M                                                SET session_time = $current_time, session_page = $thispage_id$update_admin ^M                                                WHERE session_id = '&quot; . $userdata['session_id'] . &quot;'&quot;;^M                                        if ( !$db-&gt;sql_query($sql) )^M                                        }^M^M                                        if ( $userdata['user_id'] != ANONYMOUS )^M                                        {^M                                                $sql = &quot;UPDATE &quot; . USERS_TABLE . &quot; ^M                                                        SET user_session_time = $current_time, user_session_page = $thispage_id ^M                                                        WHERE user_id = &quot; . $userdata['user_id'];^M                                                if ( !$db-&gt;sql_query($sql) )^M                                                {^M                                                        message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);^M                                                }^M                                        }^M^M                                        session_clean($userdata['session_id']);^M                                        setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                                        setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);^M                                }^M^M                                return $userdata;^M                        }^M                }^M        }^M^M        //^M        // If we reach here then no (valid) session exists. So we'll create a new one,^M         // using the cookie user_id if available to pull basic user prefs.^M         //^M         $user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;^M^M         if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )^M         {^M                 message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);^M         }^M^M         return $userdata;^M^M}^M^M/*** Terminates the specified session* It will delete the entry in the sessions table for this session,* remove the corresponding auto-login key and reset the cookies*/function session_end($session_id, $user_id){         global $db, $lang, $board_config, $userdata;         global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;           $cookiename = $board_config['cookie_name'];         $cookiepath = $board_config['cookie_path'];         $cookiedomain = $board_config['cookie_domain'];         $cookiesecure = $board_config['cookie_secure'];           $current_time = time();           if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))         {                 return;         }           //         // Delete existing session         //         $sql = 'DELETE FROM ' . SESSIONS_TABLE . &quot;                 WHERE session_id = '$session_id'                         AND session_user_id = $user_id&quot;;         if ( !$db-&gt;sql_query($sql) )         {                 message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);         }           //         // Remove this auto-login entry (if applicable)         //         if ( isset($userdata['session_key']) && $userdata['session_key'] != '' )         {                 $autologin_key = md5($userdata['session_key']);                 $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE user_id = ' . (int) $user_id . &quot;                                 AND key_id = '$autologin_key'&quot;;                 if ( !$db-&gt;sql_query($sql) )                 {                         message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql);                 }         }           //         // We expect that message_die will be called after this function,         // but just in case it isn't, reset $userdata to the details for a guest         //         $sql = 'SELECT *                FROM ' . USERS_TABLE . '                WHERE user_id = ' . ANONYMOUS;         if ( !($result = $db-&gt;sql_query($sql)) )         {                 message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);         }         if ( !($userdata = $db-&gt;sql_fetchrow($result)) )         {                 message_die(CRITICAL_ERROR, 'Error obtaining user details', '', __LINE__, __FILE__, $sql);         }         $db-&gt;sql_freeresult($result);             setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);         setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);           return true;}  /*** Removes expired sessions and auto-login keys from the database*/function session_clean($session_id){         global $board_config, $db;           //         // Delete expired sessions         //         $sql = &quot;DELETE FROM &quot; . SESSIONS_TABLE . &quot; ^M          WHERE UNIX_TIMESTAMP() - session_time &gt;=172800 ^M          AND session_id &lt;&gt; '$session_id'&quot;;         if ( !$db-&gt;sql_query($sql) )         {                 message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);         }           //         // Delete expired auto-login keys         // If max_autologin_time is not set then keys will never be deleted         // (same behaviour as old 2.0.x session code)         //         if (!empty($board_config['max_autologin_time']) && $board_config['max_autologin_time'] &gt; 0)         {                 $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '                        WHERE last_login &lt; ' . (time() - (86400 * (int) $board_config['max_autologin_time']));                 $db-&gt;sql_query($sql);         }           return true;^M         }^M^M/**^M* Reset all login keys for the specified user^M* Called on password changes^M*/^Mfunction session_reset_keys($user_id, $user_ip)^M{^M         global $db, $userdata;^M^M         $key_sql = ($user_id == $userdata['user_id'] && !empty($userdata['session_key'])) ? &quot;AND key_id != '&quot; . md5($userdata['session_key']) . &quot;'&quot; : '';^M^M         $sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '^M                WHERE user_id = ' . (int) $user_id . &quot;^M                         $key_sql&quot;;^M^M         if ( !$db-&gt;sql_query($sql) )^M         {^M                 message_die(CRITICAL_ERROR, 'Error removing auto-login keys', '', __LINE__, __FILE__, $sql);^M         }^M^M         $where_sql = 'session_user_id = ' . (int) $user_id;^M         $where_sql .= ($user_id == $userdata['user_id']) ? &quot; AND session_id &lt;&gt; '&quot; . $userdata['session_id'] . &quot;'&quot; : '';^M         $sql = 'DELETE FROM ' . SESSIONS_TABLE . &quot;^M                 WHERE $where_sql&quot;;^M         if ( !$db-&gt;sql_query($sql) )^M         {^M                 message_die(CRITICAL_ERROR, 'Error removing user session(s)', '', __LINE__, __FILE__, $sql);^M         }^M^M         if ( !empty($key_sql) )^M         {^M                 $auto_login_key = dss_rand() . dss_rand();^M^M                 $current_time = time();^M                 ^M                 $sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . &quot;^M                         SET last_ip = '$user_ip', key_id = '&quot; . md5($auto_login_key) . &quot;', last_login = $current_time^M                         WHERE key_id = '&quot; . md5($userdata['session_key']) . &quot;'&quot;;^M                 ^M                 if ( !$db-&gt;sql_query($sql) )^M                 {^M                         message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);^M                 }^M^M                 // And now rebuild the cookie^M                 $sessiondata['userid'] = $user_id;^M                 $sessiondata['autologinid'] = $autologin_id;^M                 $cookiename = $board_config['cookie_name'];^M                 $cookiepath = $board_config['cookie_path'];^M                 $cookiedomain = $board_config['cookie_domain'];^M                 $cookiesecure = $board_config['cookie_secure'];^M^M                 setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);^M                 ^M                 $userdata['session_key'] = $auto_login_key;^M                 unset($sessiondata);^M                 unset($auto_login_key);^M         }}^M//^M// Append $SID to a url. Borrowed from phplib and modified. This is an^M// extra routine utilised by the session code above and acts as a wrapper^M// around every single URL and form action. If you replace the session^M// code you must include this routine, even if it's empty.^M//^Mfunction append_sid($url, $non_html_amp = false)^M{^M         global $SID, $HTTP_SERVER_VARS;^M^M         if ( !empty($SID) && !preg_match('#sid=#', $url) && !defined('IS_ROBOT')  )^M         {^M                 $url .= ( ( strpos($url, '?') !== false ) ?  ( ( $non_html_amp ) ? '&' : '&amp;' ) : '?' ) . $SID;         }^M^M         return $url;^M}^M^M?&gt;  


Thanks in advance.


Hi

Did you do the upgrade from 2.0.17 to 2.0.18 as that is error is a result in constant.php as the code edits are not done....

Can you show me your includes/constants.php



If I'm not mistaken I did upgrade from 2.0.17 to 2.0.18...BTW, here is my constants.php
Code: Select all
&lt;?php^M// &lt;$ID=19258851,REV=0001$&gt;^M// +---------------+-------------------------------+-----------+^M// | IntegraMOD v1 |    ? 2005 IntegraMOD Group    |  {1.4.0}  |^M// +---------------+-------------------------------+-----------+^M// | Filename      | constants.php                             |^M// | Created By    | phpBB Group                               |^M// | Created On    | February 13, 2001                         |^M// | Copyright     | ? 2005 phpBB Group                        |^M// | License       | GNU-GPL v2 [http://gpl.integramod.org]    |^M// +---------------+-------------------------------------------+^M// |      DO NOT MODIFY/REMOVE ANTHING ABOVE THIS LINE!!!      |^M// +-----------------------------------------------------------+^M^M// *************************************************************^M// ****************** Begin Protecting Script ******************^M// *************************************************************^M/*^Mif (!defined('IM_LOADER') or !IM_LOADER or !defined('IM_GLOBALS') or !IM_GLOBALS)^M{^M         die('&lt;p&gt;&lt;strong&gt;Access Denied:&lt;/strong&gt; This file ('.basename(__FILE__).') cannot be accessed directly.&lt;/p&gt;');^M}^M*/^M^M// *************************************************************^M// ******************* Set Global Constants ********************^M// *************************************************************^M// ### Debug Level -- To turn off, set to 0. ###^Mdefine('DEBUG', 1);^M^M// ### Account Activation Settings ###^Mdefine('USER_ACTIVATION_NONE', 0);^Mdefine('USER_ACTIVATION_SELF', 1);^Mdefine('USER_ACTIVATION_ADMIN', 2);^M^M// ### Album Constants ###^Mdefine('ALBUM_ANONYMOUS', -1);^Mdefine('ALBUM_GUEST', -1);^Mdefine('ALBUM_USER', 0);^Mdefine('ALBUM_ADMIN', 1);^Mdefine('ALBUM_MOD', 2);^Mdefine('ALBUM_PRIVATE', 3);^M// --------------------^Mdefine('ALBUM_UPLOAD_PATH', 'album_mod/upload/');^Mdefine('ALBUM_CACHE_PATH', 'album_mod/upload/cache/');^Mdefine('ALBUM_MED_CACHE_PATH', 'album_mod/upload/med_cache/');^M// --------------------^Mdefine('ALBUM_NAV_ARROW', '&nbsp;&raquo;&nbsp;');^Mdefine('ALBUM_ROOT_CATEGORY', -1);^M// --------------------^Mdefine('PERSONAL_GALLERY', 0);^M^M^M// ### Auth Settings ###^Mdefine('AUTH_LIST_ALL', 0);^Mdefine('AUTH_ALL', 0);^M// --------------------^Mdefine('AUTH_REG', 1);^Mdefine('AUTH_ACL', 2);^Mdefine('AUTH_MOD', 3);^Mdefine('AUTH_ADMIN', 5);^M// --------------------^Mdefine('AUTH_VIEW', 1);^Mdefine('AUTH_READ', 2);^Mdefine('AUTH_POST', 3);^Mdefine('AUTH_REPLY', 4);^Mdefine('AUTH_EDIT', 5);^Mdefine('AUTH_DELETE', 6);^Mdefine('AUTH_ANNOUNCE', 7);^Mdefine('AUTH_STICKY', <s8><img><s8>;^Mdefine('AUTH_POLLCREATE', 9);^Mdefine('AUTH_VOTE', 10);^Mdefine('AUTH_ATTACH', 11);^Mdefine('AUTH_DELAYEDPOST', 12);^Mdefine('AUTH_CAL', 20);^Mdefine('AUTH_GLOBAL_ANNOUNCE', 21);^Mdefine('AUTH_PAID_VIEW', 25);^M^M// ### Data Tables ###^Mdefine('ACCT_HIST_TABLE', $table_prefix.'account_hist');^Mdefine('ACRONYMS_TABLE', $table_prefix.'acronyms');^Mdefine('ADMIN_PM_TABLE', $table_prefix.'admin_pm');^Mdefine('ALBUM_CAT_TABLE', $table_prefix.'album_cat');^Mdefine('ALBUM_COMMENT_TABLE', $table_prefix.'album_comment');^Mdefine('ALBUM_CONFIG_TABLE', $table_prefix.'album_config');^Mdefine('ALBUM_RATE_TABLE', $table_prefix.'album_rate');^Mdefine('ALBUM_SP_CONFIG_TABLE', $table_prefix.'album_sp_config');^Mdefine('ALBUM_TABLE', $table_prefix.'album');^Mdefine('APPROVE_FORUMS_TABLE', $table_prefix.'approve_forums');^Mdefine('APPROVE_POSTS_TABLE', $table_prefix.'approve_posts');^Mdefine('APPROVE_TOPICS_TABLE', $table_prefix.'approve_topics');^Mdefine('APPROVE_USERS_TABLE', $table_prefix.'approve_users');^Mdefine('AUTH_ACCESS_TABLE', $table_prefix.'auth_access');^Mdefine('BANNER_STATS_TABLE', $table_prefix.'banner_stats');^Mdefine('BANNERS_TABLE', $table_prefix.'banner');^Mdefine('BANLIST_TABLE', $table_prefix.'banlist');^Mdefine('BLOCK_POSITION_TABLE', $table_prefix.'block_position');^Mdefine('BLOCK_VARIABLE_TABLE', $table_prefix.'block_variable');^Mdefine('BLOCKS_TABLE', $table_prefix.'blocks');^Mdefine('BOOKMARK_TABLE', $table_prefix.'bookmarks');^Mdefine('BUDDY_TABLE', $table_prefix.'contact_list');^Mdefine('BUDDYS_TABLE', $table_prefix.'buddy');^Mdefine('CATEGORIES_TABLE', $table_prefix.'categories');^Mdefine('CONFIG_TABLE', $table_prefix.'config');^Mdefine('CONTACT_TABLE', $table_prefix.'contact_list');^Mdefine('DIGEST_FORUMS_TABLE', $table_prefix.'digest_forums');^Mdefine('DIGEST_TABLE', $table_prefix.'digest');^Mdefine('DISALLOW_TABLE', $table_prefix.'disallow');^M//define('DISALLOW_TABLE', $table_prefix.'contact_list'); // Which to use? constants_contact.php^Mdefine('FORUM_TOUR_TABLE', $table_prefix.'forum_tour');^Mdefine('FORUMS_TABLE', $table_prefix.'forums');^Mdefine('GROUPS_TABLE', $table_prefix.'groups');^Mdefine('HACKS_LIST_TABLE', $table_prefix.'hacks_list');^Mdefine('IGNORE_TABLE', $table_prefix.'contact_list');^Mdefine('IM_CONFIG_TABLE', $table_prefix.'im_config');^Mdefine('IM_PREFS_TABLE', $table_prefix.'im_prefs');^Mdefine('IM_SITES_TABLE', $table_prefix.'im_sites');^Mdefine('IM_SESSIONS_TABLE', $table_prefix.'im_sessions');^Mdefine('JR_ADMIN_TABLE', $table_prefix.'jr_admin_users');^Mdefine('LAYOUT_TABLE', $table_prefix.'layout');^Mdefine('LINK_CATEGORIES_TABLE', $table_prefix.'link_categories');^Mdefine('LINK_CONFIG_TABLE', $table_prefix.'link_config');^Mdefine('LINKS_TABLE', $table_prefix.'links');^Mdefine('NEWS_TABLE', $table_prefix.'news');^Mdefine('OPTIMIZE_DB_TABLE', $table_prefix.'optimize_db');^Mdefine('PORTAL_CONFIG_TABLE', $table_prefix.'portal_config');^Mdefine('POSTS_TABLE', $table_prefix.'posts');^Mdefine('POSTS_TEXT_TABLE', $table_prefix.'posts_text');^Mdefine('PRIVMSGS_IGNORE_TABLE', $table_prefix.'privmsgs_ignore');^Mdefine('PRIVMSGS_TABLE', $table_prefix.'privmsgs');^Mdefine('PRIVMSGS_TEXT_TABLE', $table_prefix.'privmsgs_text');^Mdefine('PRUNE_TABLE', $table_prefix.'forum_prune');^Mdefine('RANKS_TABLE', $table_prefix.'ranks');^Mdefine('REFERERS_TABLE', $table_prefix.'referers');^Mdefine('RULES_TABLE', $table_prefix.'rules');^Mdefine('SEARCH_MATCH_TABLE', $table_prefix.'search_wordmatch');^Mdefine('SEARCH_TABLE', $table_prefix.'search_results');^Mdefine('SEARCH_WORD_TABLE', $table_prefix.'search_wordlist');^Mdefine('SESSIONS_TABLE', $table_prefix.'sessions');^Mdefine('SHOUTBOX_TABLE', $table_prefix.'shout');^Mdefine('SMILIES_TABLE', $table_prefix.'smilies');^Mdefine('SUBSCRIPTIONS_TABLE', $table_prefix.'mod_subscriptions');^Mdefine('SUBSCRIBED_FORUMS_TABLE', $table_prefix.'mod_subscribed_forums');^Mdefine('THEMES_NAME_TABLE', $table_prefix.'themes_name');^Mdefine('THEMES_TABLE', $table_prefix.'themes');^Mdefine('TOPICS_TABLE', $table_prefix.'topics');^Mdefine('TOPICS_WATCH_TABLE', $table_prefix.'topics_watch');^Mdefine('USER_GROUP_TABLE', $table_prefix.'user_group');^Mdefine('USERS_TABLE', $table_prefix.'users');^Mdefine('VOTE_DESC_TABLE', $table_prefix.'vote_desc');^Mdefine('VOTE_RESULTS_TABLE', $table_prefix.'vote_results');^Mdefine('VOTE_USERS_TABLE', $table_prefix.'vote_voters');^Mdefine('WORDS_TABLE', $table_prefix.'words');^Mdefine('WPM', $table_prefix.'wpm');^M^M// ### Database Connection ###^Mdefine('BEGIN_TRANSACTION', 1);^Mdefine('END_TRANSACTION', 2);^M^M// ### Error Codes ###^Mdefine('GENERAL_MESSAGE', 200);^Mdefine('GENERAL_ERROR', 202);^Mdefine('CRITICAL_MESSAGE', 203);^Mdefine('CRITICAL_ERROR', 204);^M^M// ### Group Settings ###^Mdefine('GROUP_OPEN', 0);^Mdefine('GROUP_CLOSED', 1);^Mdefine('GROUP_HIDDEN', 2);^Mdefine('GROUP_AUTO', 3);^Mdefine('GROUP_PAYMENT', 4);^M^M// ### Page Numbers for Session Handling ###^Mdefine('PAGE_INDEX', 0);^Mdefine('PAGE_LOGIN', -1);^Mdefine('PAGE_SEARCH', -2);^Mdefine('PAGE_REGISTER', -3);^Mdefine('PAGE_PROFILE', -4);^Mdefine('PAGE_VIEWONLINE', -6);^Mdefine('PAGE_VIEWMEMBERS', -7);^Mdefine('PAGE_FAQ', -8);^Mdefine('PAGE_POSTING', -9);^Mdefine('PAGE_PRIVMSGS', -10);^Mdefine('PAGE_GROUPCP', -11);^Mdefine('PAGE_FORUM_TOUR', -12);^Mdefine('PAGE_PORTAL', -13);^Mdefine('PAGE_CARD', -14);^Mdefine('PAGE_RULES', -15);^Mdefine('PAGE_COOKIES', -16);^Mdefine('PAGE_STAFF', -17);^Mdefine('PAGE_LINKS', -18);^Mdefine('PAGE_DOWNLOAD', -19);^Mdefine('PAGE_ALBUM', -50);^Mdefine('PAGE_ALBUM_PERSONAL', -51);^Mdefine('PAGE_ALBUM_PICTURE', -52);^Mdefine('PAGE_ALBUM_SEARCH', -53);^Mdefine('PAGE_REDIRECT', -1031);^Mdefine('PAGE_SHOUTBOX_MAX', -1035);^Mdefine('PAGE_SHOUTBOX', -1035);^Mdefine('PAGE_CONTACT', -8050);^Mdefine('PAGE_PRILLIAN', -8051);^Mdefine('PAGE_TOPIC_OFFSET', 5000);^M^M// ### Points Status ###^Mdefine('POINTS_DISABLED', 1);^Mdefine('POINTS_ENABLED', 0);^M^M// ### Post Types ###^Mdefine('POST_NORMAL', 0);^Mdefine('POST_STICKY', 1);^Mdefine('POST_ANNOUNCE', 2);^Mdefine('POST_GLOBAL_ANNOUNCE', 3);^Mdefine('POST_BIRTHDAY', 9);^Mdefine('POST_CALENDAR', 10);^M^M// ### Prillian Constants ###^M// prillian installed?^Mif (defined('PRILLIAN_INSTALLED')){^Mdefine('ALLOW_BUDDY_SELF', false);^Mdefine('CONTACT_PATH', $phpbb_root_path.'mods/contact/');^Mdefine('CONTACT_URL', $phpbb_root_path.'contact.'.$phpEx);^Mdefine('IM_NEW_MAIL', 6);^Mdefine('IM_READ_MAIL', 7);^Mdefine('IM_UNREAD_MAIL', <s8><img><s8>;^Mdefine('OFF_SITE', -2);^Mdefine('OFF_SITE_USERS_URL', 'u');^Mdefine('OFF_SITE_POST_URL', 'p');^Mdefine('PRILL_PATH', $phpbb_root_path.'mods/prillian/');^Mdefine('PRILL_URL', $phpbb_root_path.'imclient.'.$phpEx);^Mdefine('MAIN_MODE', 1);^Mdefine('WIDE_MODE', 2);^Mdefine('MINI_MODE', 3);^Mdefine('FRAMES_MODE', 4);^Mdefine('NO_FRAMES_MODE', 5);^M}^M^M// ### Private Message System ###^Mdefine('PRIVMSGS_READ_MAIL', 0);^Mdefine('PRIVMSGS_NEW_MAIL', 1);^Mdefine('PRIVMSGS_SENT_MAIL', 2);^Mdefine('PRIVMSGS_SAVED_IN_MAIL', 3);^Mdefine('PRIVMSGS_SAVED_OUT_MAIL', 4);^Mdefine('PRIVMSGS_UNREAD_MAIL', 5);^M^M// ### Session Parameters ###^Mdefine('SESSION_METHOD_COOKIE', 100);^Mdefine('SESSION_METHOD_GET', 101);^M^M// ### Software Status ###^Mdefine('FORUM_UNLOCKED', 0);^Mdefine('FORUM_LOCKED', 1);^M^M// ### Topic Status ###^Mdefine('TOPIC_UNLOCKED', 0);^Mdefine('TOPIC_LOCKED', 1);^Mdefine('TOPIC_MOVED', 2);^Mdefine('TOPIC_WATCH_NOTIFIED', 1);^Mdefine('TOPIC_WATCH_UN_NOTIFIED', 0);^M^M// ### URL Parameters ###^Mdefine('POST_TOPIC_URL', 't');^Mdefine('POST_CAT_URL', 'c');^Mdefine('POST_FORUM_URL', 'f');^Mdefine('POST_USERS_URL', 'u');^Mdefine('POST_POST_URL', 'p');^Mdefine('POST_GROUPS_URL', 'g');^M^M// ### User Avatar Settings ###^Mdefine('USER_AVATAR_NONE', 0);^Mdefine('USER_AVATAR_UPLOAD', 1);^Mdefine('USER_AVATAR_REMOTE', 2);^Mdefine('USER_AVATAR_GALLERY', 3);^M^M// ### User Levels ###^Mdefine('DELETED', -1);^Mdefine('ANONYMOUS', -1);^Mdefine('USER', 0);^Mdefine('ADMIN', 1);^Mdefine('MOD', 2);^Mdefine('JADMIN', 7);^Mdefine('ADMIN_FOUNDER', 99);^Mdefine('GUEST_ONLY', 1000);^M^M// ### Special Constants ###^Mdefine('NO', 0);^Mdefine('YES', 1);^Mdefine('FRIEND_ONLY',2);^Mdefine('UNKNOWN', 0);^Mdefine('MALE', 1);^Mdefine('FEMALE', 2);^Mdefine('VIP_RANK_TITLE', 'VIP');^Mdefine('OVERIDE_THEME', false);^Mdefine('DIGEST_THEME', 1);^Mdefine('DIGEST_LOGGING', true);^Mdefine('DIGEST_SUPPORT', &quot;http://www.phpbb.com/phpBB/viewtopic.php?t=187868&quot;);^Mdefine('DIGEST_HTML', 1);^Mdefine('DIGEST_TEXT', 0);^M^M?&gt;


Hi

you are missing a line form your constants.php

you need to find

Code: Select all
define('SESSIONS_TABLE', $table_prefix.'sessions');


and add after

Code: Select all
define('SESSIONS_KEYS_TABLE', $table_prefix.'sessions_keys');  


i hope that helps

<img>

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 28, 2006 2:51 am
Author: found it
No problem happy to help


:mrgreen:

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 28, 2006 3:37 am
Author: dan0042
just did this am runnin im1.40
just add this Fatal error: Call to undefined function: phpbbsecurity_guests() in /home/assaulto/public_html/St/common.php on line 396

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 28, 2006 3:50 am
Author: Mighty07
"Mighty07";p="3376" wrote:After all the updates and fixes, i only got 2 things missing.
One is that thing about the "View posts since last visit" and the other is the daily backups.
The most important for me is the daily backups. Does anyone found a fix for this?


Yes i've did. It started working after i put security update 1.0.3. And stopped right after i upgraded the core to 2.0.20.
All i got now is empty backup file, and an alert in the email.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri Apr 28, 2006 4:35 am
Author: found it
"Mighty07";p="3409" wrote:
"Mighty07";p="3376" wrote:After all the updates and fixes, i only got 2 things missing.
One is that thing about the "View posts since last visit" and the other is the daily backups.
The most important for me is the daily backups. Does anyone found a fix for this?


Yes i've did. It started working after i put security update 1.0.3. And stopped right after i upgraded the core to 2.0.20.
All i got now is empty backup file, and an alert in the email.


I would double check your files...I have this working fine on my live site...

PostPosted: Fri Apr 28, 2006 6:56 am
Author: gcomfx.com
"Mighty07";p="3409" wrote:
"Mighty07";p="3376" wrote:After all the updates and fixes, i only got 2 things missing.
One is that thing about the &quot;View posts since last visit&quot; and the other is the daily backups.
The most important for me is the daily backups. Does anyone found a fix for this?


Yes i've did. It started working after i put security update 1.0.3. And stopped right after i upgraded the core to 2.0.20.
All i got now is empty backup file, and an alert in the email.


Mines not working either. Keep getting backup failed in my PMs. I just have a standard IM with the pre-modded file upgrade. <img>

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sat Apr 29, 2006 9:56 pm
Author: KoolBear
In relation to the admin_ranks.php problem I DID implement the correction added a ")"

But now this is the error message I get ...
Parse error: syntax error, unexpected T_ELSEIF in /home/dofbbc/public_html/site/admin/admin_ranks.php on line 298

Code: Select all
 <?php/***************************************************************************  *                              admin_ranks.php  *                            -------------------  *   begin                : Thursday, Jul 12, 2001  *   copyright            : (C) 2001 The phpBB Group  *   email                : <a>support@phpbb.com</a>  *  *  ***************************************************************************/  /***************************************************************************  *  *   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.  *  ***************************************************************************/  if( !empty($setmodules) ){     $file = basename(__FILE__);     $module['Users']['Ranks'] = $file;     return;}  define('IN_PHPBB', 1);  //// Let's set the root dir for phpBB//$phpbb_root_path = "./../";require($phpbb_root_path . 'extension.inc');require('./pagestart.' . $phpEx);  if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) ){     $mode = (isset($HTTP_GET_VARS['mode'])) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];     $mode = htmlspecialchars($mode);}else {     //     // These could be entered via a form button     //     if( isset($HTTP_POST_VARS['add']) )     {         $mode = "add";     }     else if( isset($HTTP_POST_VARS['save']) )     {         $mode = "save";     }     else     {         $mode = "";     }}  // Restrict mode input to valid options$mode = ( in_array($mode, array('add', 'edit', 'save', 'delete')) ) ? $mode : '';  if( $mode != "" ){     if( $mode == "edit" || $mode == "add" )     {         //         // They want to add a new rank, show the form.         //         $rank_id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : 0;                 $s_hidden_fields = "";                 if( $mode == "edit" )         {             if( empty($rank_id) )             {                 message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);             }               $sql = "SELECT * FROM " . RANKS_TABLE . "                 WHERE rank_id = $rank_id";             if(!$result = $db->sql_query($sql))             {                 message_die(GENERAL_ERROR, "Couldn't obtain rank data", "", __LINE__, __FILE__, $sql);             }                         $rank_info = $db->sql_fetchrow($result);             $s_hidden_fields .= '<input>';           }         else         {             $rank_info['rank_special'] = 0;         }           $s_hidden_fields .= '<input>';           $rank_is_special = ( $rank_info['rank_special'] ) ? "checked="checked"" : "";         $rank_is_not_special = ( !$rank_info['rank_special'] ) ? "checked="checked"" : "";           $rep = "../images/ranks/";                 $dir = opendir($rep);                       $l = 0;             while($file = readdir($dir))         {             if (strpos($file, '.gif'))             {                 $file1[$l] = $file;                 $l++;             }         }         closedir($dir);                 $ranks_list = "<option>" . str_replace($rep, "", $rank_info['rank_image']) . "</option>";                         for($k=0; $k</option>set_filenames(array(             "body" => "admin/ranks_edit_body.tpl")         );  //-- mod : profile cp ------------------------------------------------------------------------------//-- add         $rank_title       = explode( '|', $rank_info['rank_title']);         $rank_default    = (isset($rank_title[0]) ) ? $rank_title[0] : '';         $rank_male       = (isset($rank_title[1]) ) ? $rank_title[1] : '';         $rank_female     = (isset($rank_title[2]) ) ? $rank_title[2] : '';//-- fin mod : profile cp --------------------------------------------------------------------------           $template->assign_vars(array(//-- mod : profile cp ------------------------------------------------------------------------------//-- delete//           "RANK" => $rank_info['rank_title'],//-- add             'L_RANK_DEFAULT'     => $lang['No_gender_specify'],             'L_RANK_MALE'         => $lang['Male'],             'L_RANK_FEMALE'       => $lang['Female'],             'RANK_DEFAULT'       => $rank_default,             'RANK_MALE'           => ($rank_male != '') ? $rank_male : $rank_default,             'RANK_FEMALE'         => ($rank_female != '') ? $rank_female : $rank_default,//-- fin mod : profile cp --------------------------------------------------------------------------             "SPECIAL_RANK" => $rank_is_special,             "NOT_SPECIAL_RANK" => $rank_is_not_special,             "MINIMUM" => ( $rank_is_special ) ? "" : $rank_info['rank_min'],             "IMAGE" => ( $rank_info['rank_image'] != "" ) ? $rank_info['rank_image'] : "",             "IMAGE_DISPLAY" => ( $rank_info['rank_image'] != "" ) ? '<img>' : "",             "RANK_LIST" => $ranks_list,             "RANK_IMG" => ( $rank_info['rank_image'] != "") ? '../' . $rank_info['rank_image'] : '../images/spacer.gif',                         "L_RANKS_TITLE" => $lang['Ranks_title'],             "L_RANKS_TEXT" => $lang['Ranks_explain'],             "L_RANK_TITLE" => $lang['Rank_title'],             "L_RANK_SPECIAL" => $lang['Rank_special'],             "L_RANK_MINIMUM" => $lang['Rank_minimum'],             "L_RANK_IMAGE" => $lang['Rank_image'],             "L_RANK_IMAGE_EXPLAIN" => $lang['Rank_image_explain'],             "L_SUBMIT" => $lang['Submit'],             "L_RESET" => $lang['Reset'],             "L_YES" => $lang['Yes'],             "L_NO" => $lang['No'],                         "S_RANK_ACTION" => append_sid("admin_ranks.$phpEx"),             "S_HIDDEN_FIELDS" => $s_hidden_fields)         );             }     else if( $mode == "save" )     {         //         // Ok, they sent us our info, let's update it.         //                 $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : 0;//-- mod : profile cp ------------------------------------------------------------------------------//-- delete//       $rank_title = ( isset($HTTP_POST_VARS['title']) ) ? trim($HTTP_POST_VARS['title']) : "";//-- add         $rank_default    = ( isset($HTTP_POST_VARS['title_default']) ) ? trim($HTTP_POST_VARS['title_default']) : '';         $rank_male       = ( isset($HTTP_POST_VARS['title_male']) ) ? trim($HTTP_POST_VARS['title_male']) : '';         $rank_female     = ( isset($HTTP_POST_VARS['title_female']) ) ? trim($HTTP_POST_VARS['title_female']) : '';           if ($rank_default == '') $rank_default = $rank_male;         if ($rank_default == '') $rank_default = $rank_female;         if ($rank_male == $rank_default) $rank_male = '';         if ($rank_female == $rank_default) $rank_female = '';         $rank_title = (($rank_default != '') || ($rank_male != '') || ($rank_female != '')) ? $rank_default . ( ( ($rank_male != '') || ($rank_female != '') ) ? '|' : '' ) . $rank_male . ( ($rank_female != '') ? '|' : '' ) . $rank_female : '';//-- fin mod : profile cp --------------------------------------------------------------------------         $special_rank = ( $HTTP_POST_VARS['special_rank'] == 1 ) ? TRUE : 0;         $min_posts = ( isset($HTTP_POST_VARS['min_posts']) ) ? intval($HTTP_POST_VARS['min_posts']) : -1;         $rank_image = ( (isset($HTTP_POST_VARS['rank_image'])) ) ? trim($HTTP_POST_VARS['rank_image']) : "";           if( $rank_title == "" )         {             message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);         }           if( $special_rank == 1 )         {             $max_posts = -1;             $min_posts = -1;         }           //         // The rank image has to be a jpg, gif or png         //         if($rank_image != "")         {             if ( !preg_match("/(.gif|.png|.jpg)$/is", $rank_image))             {                 $rank_image = "";             }         }           if ($rank_id)         {             if (!$special_rank)             {                 $sql = "UPDATE " . USERS_TABLE . "                     SET user_rank = 0                     WHERE user_rank = $rank_id";                   if( !$result = $db->sql_query($sql) )                 {                     message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);                 }             }             $sql = "UPDATE " . RANKS_TABLE . "                 SET rank_title = '" . str_replace("'", "''", $rank_title) . "', rank_special = $special_rank, rank_min = $min_posts, rank_image = '" . str_replace("'", "''", $rank_image) . "'                 WHERE rank_id = $rank_id";               $message = $lang['Rank_updated'];         }         else         {             $sql = "INSERT INTO " . RANKS_TABLE . " (rank_title, rank_special, rank_min, rank_image)                 VALUES ('" . str_replace("'", "''", $rank_title) . "', $special_rank, $min_posts, '" . str_replace("'", "''", $rank_image) . "')";               $message = $lang['Rank_added'];         }                 if( !$result = $db->sql_query($sql) )         {             message_die(GENERAL_ERROR, "Couldn't update/insert into ranks table", "", __LINE__, __FILE__, $sql);         }           $message .= "<br><br>" . sprintf($lang['Click_return_rankadmin'], "<a>", "</a>") . "<br><br>" . sprintf($lang['Click_return_admin_index'], "<a>", "</a>");           message_die(GENERAL_MESSAGE, $message);       }     else if( $mode == "delete" )     {         //         // Ok, they want to delete their rank         //                 if( isset($HTTP_POST_VARS['id']) || isset($HTTP_GET_VARS['id']) )         {         $rank_id = ( isset($HTTP_POST_VARS['id']) ) ? intval($HTTP_POST_VARS['id']) : intval($HTTP_GET_VARS['id']);               $confirm = isset($HTTP_POST_VARS['confirm']);               if( $rank_id && $confirm )           {             $sql = "DELETE FROM " . RANKS_TABLE . "                 WHERE rank_id = $rank_id";                         if( !$result = $db->sql_query($sql) )             {                 message_die(GENERAL_ERROR, "Couldn't delete rank data", "", __LINE__, __FILE__, $sql);             }                         $sql = "UPDATE " . USERS_TABLE . "                 SET user_rank = 0                 WHERE user_rank = $rank_id";               if( !$result = $db->sql_query($sql) )             {                 message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);             }               $message = $lang['Rank_removed'] . "<br><br>" . sprintf($lang['Click_return_rankadmin'], "<a>", "</a>") . "<br><br>" . sprintf($lang['Click_return_admin_index'], "<a>", "</a>");               message_die(GENERAL_MESSAGE, $message);           }         else         {         elseif( $rank_id && !$confirm)         {             // Present the confirmation screen to the user             $template->set_filenames(array(                 'body' => 'admin/confirm_body.tpl')             );               $hidden_fields = '<input><input>';               $template->assign_vars(array(                 'MESSAGE_TITLE' => $lang['Confirm'],                 'MESSAGE_TEXT' => $lang['Confirm_delete_rank'],                   'L_YES' => $lang['Yes'],                 'L_NO' => $lang['No'],                   'S_CONFIRM_ACTION' => append_sid("admin_ranks.$phpEx"),                 'S_HIDDEN_FIELDS' => $hidden_fields)             );         }         else         {             message_die(GENERAL_MESSAGE, $lang['Must_select_rank']);         }     }       $template->pparse("body");       include('./page_footer_admin.'.$phpEx);}  //// Show the default page//$template->set_filenames(array(     "body" => "admin/ranks_list_body.tpl"));  $sql = "SELECT * FROM " . RANKS_TABLE . "     ORDER BY rank_min ASC, rank_special ASC";if( !$result = $db->sql_query($sql) ){     message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);}$rank_count = $db->sql_numrows($result);  $rank_rows = $db->sql_fetchrowset($result);  $template->assign_vars(array(     "L_RANKS_TITLE" => $lang['Ranks_title'],     "L_RANKS_TEXT" => $lang['Ranks_explain'],     "L_RANK" => $lang['Rank_title'],     "L_RANK_MINIMUM" => $lang['Rank_minimum'],     "L_SPECIAL_RANK" => $lang['Rank_special'],     "L_EDIT" => $lang['Edit'],     "L_DELETE" => $lang['Delete'],     "L_ADD_RANK" => $lang['Add_new_rank'],     "L_ACTION" => $lang['Action'],         "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx")));  for($i = 0; $i <rank_count>assign_block_vars("ranks", array(         "ROW_COLOR" => "#" . $row_color,         "ROW_CLASS" => $row_class,         "RANK" => $rank,         "SPECIAL_RANK" => $rank_is_special,         "RANK_MIN" => $rank_min,           "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"),         "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id"))     );       }}else{     //     // Show the default page     //     $template->set_filenames(array(         "body" => "admin/ranks_list_body.tpl")     );         $sql = "SELECT * FROM " . RANKS_TABLE . "         ORDER BY rank_min ASC, rank_special ASC";     if( !$result = $db->sql_query($sql) )     {         message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);     }     $rank_count = $db->sql_numrows($result);       $rank_rows = $db->sql_fetchrowset($result);         $template->assign_vars(array(         "L_RANKS_TITLE" => $lang['Ranks_title'],         "L_RANKS_TEXT" => $lang['Ranks_explain'],         "L_RANK" => $lang['Rank_title'],         "L_RANK_MINIMUM" => $lang['Rank_minimum'],         "L_SPECIAL_RANK" => $lang['Rank_special'],         "L_EDIT" => $lang['Edit'],         "L_DELETE" => $lang['Delete'],         "L_ADD_RANK" => $lang['Add_new_rank'],         "L_ACTION" => $lang['Action'],                 "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx"))     );         for($i = 0; $i <rank_count>assign_block_vars("ranks", array(             "ROW_COLOR" => "#" . $row_color,             "ROW_CLASS" => $row_class,             "RANK" => $rank,             "SPECIAL_RANK" => $rank_is_special,             "RANK_MIN" => $rank_min,               "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"),             "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id"))         );     }}  $template->pparse("body");  include('./page_footer_admin.'.$phpEx);  ?>  


Any ideas?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sun Apr 30, 2006 5:12 am
Author: found it
hi

firstly you have 2 bits od code the same...so you need to remove the second piece which is this..

Code: Select all
}}else{    //    // Show the default page    //    $template->set_filenames(array(       "body" => "admin/ranks_list_body.tpl")    );        $sql = "SELECT * FROM " . RANKS_TABLE . "       ORDER BY rank_min ASC, rank_special ASC";    if( !$result = $db->sql_query($sql) )    {       message_die(GENERAL_ERROR, "Couldn't obtain ranks data", "", __LINE__, __FILE__, $sql);    }    $rank_count = $db->sql_numrows($result);      $rank_rows = $db->sql_fetchrowset($result);        $template->assign_vars(array(       "L_RANKS_TITLE" => $lang['Ranks_title'],       "L_RANKS_TEXT" => $lang['Ranks_explain'],       "L_RANK" => $lang['Rank_title'],       "L_RANK_MINIMUM" => $lang['Rank_minimum'],       "L_SPECIAL_RANK" => $lang['Rank_special'],       "L_EDIT" => $lang['Edit'],       "L_DELETE" => $lang['Delete'],       "L_ADD_RANK" => $lang['Add_new_rank'],       "L_ACTION" => $lang['Action'],             "S_RANKS_ACTION" => append_sid("admin_ranks.$phpEx"))    );        for($i = 0; $i <rank_count>assign_block_vars("ranks", array(          "ROW_COLOR" => "#" . $row_color,          "ROW_CLASS" => $row_class,          "RANK" => $rank,          "SPECIAL_RANK" => $rank_is_special,          "RANK_MIN" => $rank_min,            "U_RANK_EDIT" => append_sid("admin_ranks.$phpEx?mode=edit&id=$rank_id"),          "U_RANK_DELETE" => append_sid("admin_ranks.$phpEx?mode=delete&id=$rank_id"))       );    }


also you need to find

Code: Select all
$confirm = isset($HTTP_POST_VARS['confirm']);


and before add

Code: Select all
        }         else         {             $rank_id = 0;         }


Let me know...

:mrgreen:

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sun Apr 30, 2006 8:39 am
Author: KoolBear
Wow, thanks Foud it! But I must have had something else wronp :D

I ended up downloading teh latest 1_40 and used teh admin_ranks.php file from it. Now all is fine <img>

Thanks again for expending the time and and effort to assist me!

KB

Re: Release of upgrade for phpbb2.0.20

PostPosted: Sun Apr 30, 2006 10:05 am
Author: found it
no problem happy to help..

Glad you have it fixed...

:mrgreen:

PostPosted: Sun Apr 30, 2006 6:22 pm
Author: Master Dwarf
I have to admit, I am a bit nervous about all this upgrading stuff. I have royally messed up my forums before and suffered for it. I know the security updates are important, but I need to know a sure fire way to update, with the correct files, with the correct edits to take me from 2.0.17 to present. :)

Maybe something for the knowledge base?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue May 02, 2006 5:56 am
Author: CopsOffDuty
Post-Upgrade Error:

Not sure if anyone has found this and I just read all 151 posts on this topic trying to see if anyone encountered this...

Logged in as admin when I click "Delete this topic" it takes me to the next window that says "General Error - An error occurred".

Anyone else experiencing this issue? If anyone has a resolution, please share! I can delete posts individually, just not topics all together.

Thank you in advance! Besides that one issue, I haven't found any other errors.

PostPosted: Tue May 02, 2006 6:25 am
Author: BurninFingerTipz
I have the same error when I go to 'Moderate this forum' > I select a thread > click 'Delete' > click 'Yes' > "General Error

An Error Occurred"

Would be nice to have a fix for this...

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue May 02, 2006 8:33 am
Author: found it
hi

I have just tested both of the above problems on booth of my test sites and live one and neither problem appears....everything works as it should...


Is there anything else you have added or changed to your sites...?

:mrgreen:

PostPosted: Tue May 02, 2006 1:22 pm
Author: CopsOffDuty
I haven't changed anything. Kept the whole thing stock. <img>

PostPosted: Tue May 02, 2006 2:30 pm
Author: found it
"CopsOffDuty";p="4127" wrote:I haven't changed anything. Kept the whole thing stock. <img>


is the only thing it tells you is an error occured...?

is that all the time...?

PostPosted: Tue May 02, 2006 3:02 pm
Author: CopsOffDuty
Yes. It remains constant. I changed themes even to see if it was something with that theme, and still nothing.

PostPosted: Thu May 04, 2006 5:26 am
Author: CopsOffDuty
No ideas? Anyone? I wouldn't even know where to begin to look.

PostPosted: Thu May 04, 2006 5:31 am
Author: CopsOffDuty
Also, I found after this upgrade that when I tried to add a user manually via the ACP it seems to fill in my (admin) information by default. Once the user is created (even with different info) it gives them the same group membership as I. Slighty odd.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 04, 2006 8:15 am
Author: Master Dwarf
Cops-

I have users lock themselves out. I go through ACP to modify the user account. It then places my user name inplace of theirs in the username field. Just re-enter their username back in that field if it happens and you should be fine. Then save changes and all should be good.

I can't help you with the other problems, sorry.

PostPosted: Tue May 09, 2006 5:59 am
Author: Eon
I have not had any problems with my upgrade either. Everything seems to work perfectly.

Can you copy the error and post it all exactly as it shows up?

PostPosted: Tue May 09, 2006 12:57 pm
Author: DaveSmooth
OK...I'm getting brave and ready to do this. When you say back up files...which ones? I am so leery of this.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue May 09, 2006 1:22 pm
Author: found it
Back up any files you are going to make changes to...you cant go wrong then...

:mrgreen:

PostPosted: Tue May 09, 2006 1:40 pm
Author: DaveSmooth
LOL...thanks. I'm sure I can do it, but I'm still way confused about the security update too. Are the premodded files the ones I should use? My board is not modded anymore than came with IM. Do I need to apply the fixes mentioned on the portal page to the security update or has it been fixed in the files for d/l? I'm sure if I can get past the security update, I can handle the phpbb update, as I've done them in the past with no problems. Or is this more complicated than previous updates? So many questions, and so much fear...haha.

PostPosted: Tue May 09, 2006 2:27 pm
Author: Master Dwarf
I am now fully upgraded and had no problems. Sometimes, I think, its good to wait.

DaveSmooth-my forums had no additional mods either and all went well. What updates does your site have implemented? Are you all the way to 2.0.19?

PostPosted: Tue May 09, 2006 2:30 pm
Author: DaveSmooth
Yes Dwarf, my site is currently at 2.0.19 and security 1.0.2

PostPosted: Tue May 09, 2006 2:40 pm
Author: Master Dwarf
There is a security update from 1.0.2 to 1.0.3. Did you implement that? Not sure if that has to be done before hand. I went the following:

2.0.17-2.0.19
1.0.2-1.0.3
2.0.19-2.0.20

I renamed my original files, uploaded the premodded files to each directory, and then ran the /install/update_to_latest.php if needed.

I then deleted all my cookies to my site and brought it up. All should be good and if not you can ftp and use your original files.

PostPosted: Tue May 09, 2006 2:44 pm
Author: DaveSmooth
No...haven't done the security update yet, which I'm pretty sure has to be done first. At this point I'm scared to do the security update...LOL.

PostPosted: Tue May 09, 2006 3:04 pm
Author: Master Dwarf
Yeah, I was timid too.

Just make sure you back up your dbase and forums, you should have enough to get back up in case anything happens. There is a great tutorial on backing up if your host has CPanel.

There is enough support here and people are really nice. Hell, HelterSkelter was bound and determined to find out why my pips wouldn't change colors for my different themes that he looked into everything. And that was just for pips! <img>

PostPosted: Tue May 09, 2006 3:15 pm
Author: DaveSmooth
Yea...Helter has already been very helpful on a couple of other things.

PostPosted: Tue May 09, 2006 7:40 pm
Author: Master Dwarf
I might have missed something earlier in this thread. My quote tags work ok. My apostrophe (') displays ok in a post. So do my double quotes ("). However, I have a user that has a signature. It is similar to the following:

It's like I don't want to forget what it's all about.

So every time there is an apostrophe the forums somehow change them into quotes (") so it ends up looking like:

It"s like I don"t want to forget what it"s all about.

Any ideas? Link to a post addressing this? <img>

I have recently implemented three updates and I am current with nothing installed other than the straight IMv1.40

edit above: it's not changing them to double quotes, its actually adding another apostrophe.

Edit again: now it's putting in . So it looks something like this-
I don't think you're happy enough!

PostPosted: Wed May 10, 2006 6:04 am
Author: Eon
Not seen that one yet. Sorry..

PostPosted: Wed May 10, 2006 10:22 am
Author: Kat
I assume when modding your own files that when you get to:

Files To Edit:
## db/mssql.php

I don't have that, and it isn't listed to edit, so I assume I don't do anything with it, correct?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Wed May 10, 2006 11:36 am
Author: Mighty07
"found it";p="3412" wrote:
"Mighty07";p="3409" wrote:
"Mighty07";p="3376" wrote:After all the updates and fixes, i only got 2 things missing.
One is that thing about the "View posts since last visit" and the other is the daily backups.
The most important for me is the daily backups. Does anyone found a fix for this?


Yes i've did. It started working after i put security update 1.0.3. And stopped right after i upgraded the core to 2.0.20.
All i got now is empty backup file, and an alert in the email.


I would double check your files...I have this working fine on my live site...


This issue continues. I've double check all the 1.0.3 security changes and re-uploaded the files too. And the backups don't work.
Also i've notice that in the ACP inside the "security-special" it doesn't assume the first 3 options. Regarding the admin/mods max number and the enable. All other options on that page it saves and stores them. Has the last one is the auto backup time, and i've been working on that. But those three don't.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Wed May 10, 2006 12:14 pm
Author: Mighty07
Oh!

Some part i figured it out.
Those return ''; in includes/phpbb_security.php were not correct.
Question now his, if i put them to the correct values i'm immediatly blocked!
How can i go around this?

PostPosted: Wed May 10, 2006 1:43 pm
Author: Eon
How was it incorrect? If it worked after you installed the security update. Are you sure everything is at the right permissions settings?

Did you update the phpbb file with what you typed in? You may want to check your database to make sure they are set to the right values, and if all else fails you can set the # of mods and admins there.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Wed May 10, 2006 3:14 pm
Author: Kat
on profile.php:

Code: Select all
#-----[ FIND ]---------------------------------------------# Line 58     $chars = array( 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J',  'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T',  'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');         $max_chars = count($chars) - 1;     srand( (double) microtime()*1000000);         $rand_str = '';     for($i = 0; $i < 8; $i++)     {         $rand_str = ( $i == 0 ) ? $chars[rand(0, $max_chars)] ];     }       return ( $hash ) ? md5($rand_str) : $rand_str;  ##-----[ REPLACE WITH ]---------------------------------------------#     $rand_str = dss_rand();       return ( $hash ) ? md5($rand_str) : substr($rand_str, 8);


This is not in my file. What should I do?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Wed May 10, 2006 3:45 pm
Author: Threat009
"Kat";p="5421" wrote:on profile.php:

Code: Select all
#-----[ FIND ]---------------------------------------------# Line 58     $chars = array( 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J',  'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T',  'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');         $max_chars = count($chars) - 1;     srand( (double) microtime()*1000000);         $rand_str = '';     for($i = 0; $i < 8; $i++)     {         $rand_str = ( $i == 0 ) ? $chars[rand(0, $max_chars)] ];     }       return ( $hash ) ? md5($rand_str) : $rand_str;  ##-----[ REPLACE WITH ]---------------------------------------------#     $rand_str = dss_rand();       return ( $hash ) ? md5($rand_str) : substr($rand_str, 8);


This is not in my file. What should I do?

That was one of the problems I had. I overwrote the file w/the pre-mod. Actually, I had a back-up folder of all mods I installed on my site. So I used my computer to search that folder to find out if any of the 2.0.20 files were in the folder. I lucked out, so all I had to do was overwrite everything w/the premods, since my mods had nothing to do w/them. imo, the pre-mods are faster and safer, if you can get away w/using them.....

PostPosted: Wed May 10, 2006 7:23 pm
Author: Kat
"Threat009" wrote:
"Kat";p="5421" wrote:on profile.php:

Code: Select all
#-----[ FIND ]---------------------------------------------# Line 58     $chars = array( 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J',  'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T',  'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');         $max_chars = count($chars) - 1;     srand( (double) microtime()*1000000);         $rand_str = '';     for($i = 0; $i < 8; $i++)     {         $rand_str = ( $i == 0 ) ? $chars[rand(0, $max_chars)] ];     }       return ( $hash ) ? md5($rand_str) : $rand_str;  ##-----[ REPLACE WITH ]---------------------------------------------#     $rand_str = dss_rand();       return ( $hash ) ? md5($rand_str) : substr($rand_str, 8);


This is not in my file. What should I do?

That was one of the problems I had. I overwrote the file w/the pre-mod. Actually, I had a back-up folder of all mods I installed on my site. So I used my computer to search that folder to find out if any of the 2.0.20 files were in the folder. I lucked out, so all I had to do was overwrite everything w/the premods, since my mods had nothing to do w/them. imo, the pre-mods are faster and safer, if you can get away w/using them.....
I wish I could. Honestly I don't have any extra mods on my forum but I changed the layout and whenever I have used the premodded files it always messes up the layout and I have to try to recall how I changed everything and change it back

PostPosted: Wed May 10, 2006 9:13 pm
Author: Threat009
"Kat";p="5435" wrote:I wish I could. Honestly I don't have any extra mods on my forum but I changed the layout and whenever I have used the premodded files it always messes up the layout and I have to try to recall how I changed everything and change it back

Ouch! Not for nothing, b/c I can relate w/wanting to customize my layout, but you are gonna have a real hard time w/future updates, that is if you manage to get past this one. <img> You may want to weigh your options and think about reverting back to the default layout. Just a suggestion, but I think it would save you alot of headache and hassle.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 11, 2006 2:31 am
Author: found it
@KAT

Fortunately the template files that are premodded are not that big a deal...

I assume that by change the layout you aare referring to the way things look....

I would do the code changes for the template files by hand as they are minimal and it says starting from scratch again

:mrgreen:

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 11, 2006 8:12 am
Author: Kat
I think I stated myself wrong there.

As for the different layout...what I mean is, I removed things such as The Shoutbox, and mini Cal that were at the bottom of the forum page. When I use premodded files, I have to remove these again and I never remember what the code is, so I have to go back and search for them and remove them again. I guess that would probably be easier to edit then all the individual files for an upgrade.

I am doing the code changes instead of the premodded files. As stated above, I don't have that mssql.php file at all, is that a big deal? As in the code changes area there is nothing listed there to change, nor is there anything refering to this file in the premodded files.

as for posting.php, I don't even see it in the premodded files to upload instead of doing the code changes myself (because the code I need to find isn't in my file). So should I not worry about this file? What should I do about it?

Sorry that I need so much help, I'm just so worried about upgrading these days. Finally I got my forum back together (I've been MIA for 2 years without a computer) and during that time we were hacked twice while using normal phpbb and I went from having 1000 active members to 300 and only a few or so post now so I'm trying to get it back to what it once was...and my host doesn't help much sometimes with only allowing me 50 sql queries an hour.

Thanks for any help anyone can give me


EDIT: ah gosh, maybe I shouldn't be doing this so early in the morning, now I see posting.php in the premodded files, lol, I'm gonna try just using the premodded file for this one file

EDIT #2 - except the "replace with" code for that file isn't in that file either???

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 11, 2006 8:23 am
Author: found it
the premodded files are the ones that need changing....the manual edits script is the original form phpbb so some of the files that show there are not needed for integramod there...sorry for the confusion..

:mrgreen:

PostPosted: Thu May 11, 2006 8:26 am
Author: Mighty07
"Eon";p="5409" wrote:How was it incorrect? If it worked after you installed the security update. Are you sure everything is at the right permissions settings?

Did you update the phpbb file with what you typed in? You may want to check your database to make sure they are set to the right values, and if all else fails you can set the # of mods and admins there.


Ok. I've corrected the return values. So, now the special functions inside security are all working.
The things that keeps failling is the auto-backup's.

It creates the new .sql file with only this inside:

-- MySQL dump 10.9
--
-- Host: localhost Database: forumname
-- ------------------------------------------------------
-- Server version 4.1.12

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 11, 2006 8:26 am
Author: Kat
lol, so in other words, I may come across a few things here and there that aren't in my files, but I shouldn't worry about them?

I know you guys do this all for free and help us all out, but why? lol this stuff is so confusing. I suppose it would be better if I could understand php...HTML is straight forward to me, but this stuff....wow, you guys put a lot into this...thank you <img>

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 11, 2006 8:54 am
Author: Kat
I know you said the template files weren't a big deal to edit. But what if I want to edit it? In comparing the two files: in board_config_body.tpl (premodded vs. mine) I only have one little edit to make:

Here is mine:

Code: Select all
<td>{L_FLOOD_INTERVAL} <br><span>{L_FLOOD_INTERVAL_EXPLAIN}</span></td><td> <input></td></tr>     <tr>         <td>{L_MAX_LOGIN_ATTEMPTS}<br><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></td>         <td><input></td>     </tr>


and here is the premodded]<td>{L_FLOOD_INTERVAL} <br><span>{L_FLOOD_INTERVAL_EXPLAIN}</span></td><td> <input></td>     </tr>     <tr>         <td>{L_SEARCH_FLOOD_INTERVAL} <br><span>{L_SEARCH_FLOOD_INTERVAL_EXPLAIN}</span></td>         <td><input></td>  </tr>     <tr>         <td>{L_MAX_LOGIN_ATTEMPTS}<br><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></td>         <td><input></td>     </tr>[/code]

So I assume, I just put the code in above my MAX LOGIN ATTEMPTS and it would be edited.

But since you said they weren't really needed, will including this hurt the board? or is it better to have it then not have it at all

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 11, 2006 9:10 am
Author: found it
yes definately add that code ...all the code changes need to be done for the templates....

What I meant was they were not that hard to do manually if you had changed some of the code around in your template files......

:mrgreen:

PostPosted: Sat May 20, 2006 5:46 am
Author: Snake Plissken
I'm confused, have 2.0.19 with security patch 1.03 and a few mods like ..

eMule, PageLoading, LocalLinks

So do I use the premodded files or go through the code changes manually?

PostPosted: Sat May 20, 2006 7:08 am
Author: Master Dwarf
Somebody correct me if I am wrong...

Snake: if you have mods installed, tweaked your portal, added stuff, outside the normal, standard, blase` portal, then you are better off changing the code manually.

If you have the standard IM portal with no mods, then the premodded files can be used without a hitch.

The big reason is that people here are not going to know what mods you have installed and what files had to be altered to get those mods to function properly. If you overwrite something with a premodded file, it may mess up what mods you have implemented and you would have to reinstall them all from scratch. Guess it is up to you, and what you may think is easier.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Thu May 25, 2006 3:50 am
Author: Csicso
Hello!
<img> I thought everything was all right, after upgrading, but today i got
Code: Select all
Warning: Empty regular expression in .../forum/includes/bbcode.php(1162) : regexp code on line 3

this errormessage for at least 30 times on the portal! (portal.php)

Can anybody help me to vanquish that?

PostPosted: Thu May 25, 2006 9:37 am
Author: Master Dwarf
Csicso: Can you post the contents of your /forum/includes/bbcode.php as a quote so we can take a look and see what may be amuck?

Re: Release of upgrade for phpbb2.0.20

PostPosted: Fri May 26, 2006 3:30 am
Author: Csicso
Ok, here you are, i think tis is the one that i downloaded form here..

(Edited for 5 times)

Sorry for doing this, but i dont know how to quote the whole..

[code]
<?php
// -------------------------------------------------------------
//
// $Id: ---- $
//
// FILENAME : index.php
// STARTED : Sat Feb 13, 2001
// COPYRIGHT : ÂÂÂ © 2001, 2005 phpBB Group
// WWW : http://www.phpbb.com/
// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
//
// -------------------------------------------------------------

if ( !defined('IN_PHPBB') )
{
die("Hacking attempt");
}

define("BBCODE_UID_LEN", 10);

// global that holds loaded-and-prepared bbcode templates, so we only have to do
// that stuff once.

$bbcode_tpl = null;

/**
* Loads bbcode templates from the bbcode.tpl file of the current template set.
* Creates an array, keys are bbcode names like "b_open" or "url", values
* are the associated template.
* Probably pukes all over the place if there's something really screwed
* with the bbcode.tpl file.
*
* Nathan Codding, Sept 26 2001.
*/
function load_bbcode_template()
{
global $template;
$tpl_filename = $template->make_filename('bbcode.tpl');
$tpl = fread(fopen($tpl_filename, 'r'), filesize($tpl_filename));

// replace with \ and then ' with '.
$tpl = str_replace('\', '\\', $tpl);
$tpl = str_replace(''', '\'', $tpl);

// strip newlines.
$tpl = str_replace("n", '', $tpl);

// Turn template blocks into PHP assignment statements for the values of $bbcode_tpls..
$tpl = preg_replace('#<BEGIN>(.*?)<END>#', "n" . '$bbcode_tpls['\1'] = '\2';', $tpl);

$bbcode_tpls = array();

eval($tpl);

return $bbcode_tpls;
}


/**
* Prepares the loaded bbcode templates for insertion into preg_replace()
* or str_replace() calls in the bbencode_second_pass functions. This
* means replacing template placeholders with the appropriate preg backrefs
* or with language vars. NOTE: If you change how the regexps work in
* bbencode_second_pass(), you MUST change this function.
*
* Nathan Codding, Sept 26 2001
*
*/
function prepare_bbcode_template($bbcode_tpl)
{
global $lang, $current_template_path;

$bbcode_tpl['olist_open'] = str_replace('{LIST_TYPE}', '\1', $bbcode_tpl['olist_open']);

$bbcode_tpl['color_open'] = str_replace('{COLOR}', '\1', $bbcode_tpl['color_open']);

$bbcode_tpl['size_open'] = str_replace('{SIZE}', '\1', $bbcode_tpl['size_open']);

$bbcode_tpl['quote_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_open']);

$bbcode_tpl['quote_username_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_username_open']);
$bbcode_tpl['quote_username_open'] = str_replace('{L_WROTE}', $lang['wrote'], $bbcode_tpl['quote_username_open']);
$bbcode_tpl['quote_username_open'] = str_replace('{USERNAME}', '\1', $bbcode_tpl['quote_username_open']);

$bbcode_tpl['quote_post_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_post_open']);
$temp_url = append_sid('show_post.php?p=\1');
$bbcode_tpl['quote_post_open'] = str_replace('{U_VIEW_POST}', '<a>' . $lang['View_post'] . '</a>', $bbcode_tpl['quote_post_open']);

$bbcode_tpl['quote_username_post_open'] = str_replace('{L_QUOTE}', $lang['Quote'], $bbcode_tpl['quote_username_post_open']);
$bbcode_tpl['quote_username_post_open'] = str_replace('{L_WROTE}', $lang['wrote'], $bbcode_tpl['quote_username_post_open']);
$bbcode_tpl['quote_username_post_open'] = str_replace('{USERNAME}', '\1', $bbcode_tpl['quote_username_post_open']);
$temp_url = append_sid('show_post.php?p=\2');
$bbcode_tpl['quote_username_post_open'] = str_replace('{U_VIEW_POST}', '<a>' . $lang['View_post'] . '</a>', $bbcode_tpl['quote_username_post_open']);

$bbcode_tpl['code_open'] = str_replace('{L_CODE}', $lang['Code'], $bbcode_tpl['code_open']);
$bbcode_tpl['php_open'] = str_replace('{L_PHP}', $lang['PHPCode'], $bbcode_tpl['php_open']); // PHP MOD

$bbcode_tpl['img'] = str_replace('{URL}', '\1', $bbcode_tpl['img']);
$bbcode_tpl['imgrel'] = str_replace('{URL}', '\1', $bbcode_tpl['imgrel']);
$bbcode_tpl['theme'] = str_replace('{URL}', $current_template_path . '/\1', $bbcode_tpl['theme']);

//BBCode Search Mod
$bbcode_tpl['search'] = str_replace('{KEYWORD}', '\1', $bbcode_tpl['search']);

// LEFT-RIGHT-start
$bbcode_tpl['left'] = str_replace('{URL}', '\1', $bbcode_tpl['left']);
$bbcode_tpl['right'] = str_replace('{URL}', '\1', $bbcode_tpl['right']);
$bbcode_tpl['themeleft'] = str_replace('{URL}', $current_template_path . '/\1', $bbcode_tpl['themeleft']);
$bbcode_tpl['themeright'] = str_replace('{URL}', $current_template_path . '/\1', $bbcode_tpl['themeright']);
$bbcode_tpl['relleft'] = str_replace('{URL}', '\1', $bbcode_tpl['relleft']);
$bbcode_tpl['relright'] = str_replace('{URL}', '\1', $bbcode_tpl['relright']);
// LEFT-RIGHT-end

// We do URLs in several different ways..
$bbcode_tpl['url1'] = str_replace('{URL}', '\1', $bbcode_tpl['url']);
$bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\1', $bbcode_tpl['url1']);

$bbcode_tpl['url2'] = str_replace('{URL}', 'http://\1', $bbcode_tpl['url']);
$bbcode_tpl['url2'] = str_replace('{DESCRIPTION}', '\1', $bbcode_tpl['url2']);

$bbcode_tpl['url3'] = str_replace('{URL}', '\1', $bbcode_tpl['url']);
$bbcode_tpl['url3'] = str_replace('{DESCRIPTION}', '\2', $bbcode_tpl['url3']);

$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\1', $bbcode_tpl['url']);
$bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\3', $bbcode_tpl['url4']);

$bbcode_tpl['email'] = str_replace('{EMAIL}', '\1', $bbcode_tpl['email']);

$bbcode_tpl['acronym_open'] = str_replace('{DESCRIPTION}', '\1', $bbcode_tpl['acronym_open']);

$bbcode_tpl['google'] = ''' . $bbcode_tpl['google'] . ''';
$bbcode_tpl['google'] = str_replace('{STRING}', "' . str_replace('"', '"', '\1') . '", $bbcode_tpl['google']);
$bbcode_tpl['google'] = str_replace('{QUERY}', "' . urlencode(str_replace('"', '"', '\1')) . '", $bbcode_tpl['google']);

global $userdata;
$bbcode_tpl['you'] = str_replace('{YOU}', '"' . $userdata['username'] . '"', $bbcode_tpl['you']);

// bbcode_box Mod
$bbcode_tpl['align_open'] = str_replace('{ALIGN}', '\1', $bbcode_tpl['align_open']);
$bbcode_tpl['stream'] = str_replace('{URL}', '\1', $bbcode_tpl['stream']);
$bbcode_tpl['ram'] = str_replace('{URL}', '\1', $bbcode_tpl['ram']);
$bbcode_tpl['marq_open'] = str_replace('{MARQ}', '\1', $bbcode_tpl['marq_open']);
$bbcode_tpl['table_open'] = str_replace('{TABLE}', '\1', $bbcode_tpl['table_open']);
$bbcode_tpl['cell_open'] = str_replace('{CELL}', '\1', $bbcode_tpl['cell_open']);
$bbcode_tpl['web'] = str_replace('{URL}', '\1', $bbcode_tpl['web']);
$bbcode_tpl['flash'] = str_replace('{WIDTH}', '\1', $bbcode_tpl['flash']);
$bbcode_tpl['flash'] = str_replace('{HEIGHT}', '\2', $bbcode_tpl['flash']);
$bbcode_tpl['flash'] = str_replace('{URL}', '\3', $bbcode_tpl['flash']);
$bbcode_tpl['video'] = str_replace('{URL}', '\3', $bbcode_tpl['video']);
$bbcode_tpl['video'] = str_replace('{WIDTH}', '\1', $bbcode_tpl['video']);
$bbcode_tpl['video'] = str_replace('{HEIGHT}', '\2', $bbcode_tpl['video']);
$bbcode_tpl['font_open'] = str_replace('{FONT}', '\1', $bbcode_tpl['font_open']);
$bbcode_tpl['poet_open'] = str_replace('{POET}', '\1', $bbcode_tpl['poet_open']);
// bbcode_box Mod

define("BBCODE_TPL_READY", true);

return $bbcode_tpl;
}


/**
* Does second-pass bbencoding. This should be used before displaying the message in
* a thread. Assumes the message is already first-pass encoded, and we are given the
* correct UID as used in first-pass encoding.
*/
function bbencode_second_pass($text, $uid)
{
global $lang, $bbcode_tpl;

$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\1:", $text);

// pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0).
// This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it.
$text = " " . $text;

// First: If there isn't a "[" and a "]" in the message, don't bother.
if (! (strpos($text, "[") && strpos($text, "]")) )
{
// Remove padding, return.
$text = substr($text, 1);
return $text;
}

// Only load the templates ONCE..
if (!defined("BBCODE_TPL_READY"))
{
// load templates from file into array.
$bbcode_tpl = load_bbcode_template();

// prepare array for use in regexps.
$bbcode_tpl = prepare_bbcode_template($bbcode_tpl);
}

// [code] and [/code] for posting code (HTML, PHP, C etc etc) in your posts.
$text = bbencode_second_pass_code($text, $uid, $bbcode_tpl);

// PHP MOD
// /*php and /php*/ for posting PHP code in your posts.
$text = bbencode_second_pass_php($text, $uid, $bbcode_tpl);

//
and
for posting replies with quote, or just for quoting stuff.
$text = str_replace("
", $bbcode_tpl['quote_open'], $text);
$text = str_replace("
", $bbcode_tpl['quote_close'], $text);

// opening a quote with an pre-defined post entry
$text = preg_replace("/
+)"]/si", $bbcode_tpl['quote_post_open'], $text);

// opening a username quote with an pre-defined post entry
$text = preg_replace("/
*)"?);p=(?:"?([0-9]+)"?)]/si", $bbcode_tpl['quote_username_post_open'], $text);

// New one liner to deal with opening quotes with usernames...
// replaces the two line version that I had here before..
$text = preg_replace("/
/si", $bbcode_tpl['quote_username_open'], $text);

// acronym
$text = preg_replace("/[acronym:$uid="(.*?)"]/si", $bbcode_tpl['acronym_open'], $text);
$text = str_replace("[/acronym:$uid]", $bbcode_tpl['acronym_close'], $text);

//
    and [list type=x] for (un)ordered lists.
    // unordered lists
    $text = str_replace("
      ", $bbcode_tpl['ulist_open'], $text);
      // li tags
      $text = str_replace("
    • ", $bbcode_tpl['listitem'], $text);
      // ending tags
      $text = str_replace("
    ", $bbcode_tpl['ulist_close'], $text);
    $text = str_replace("
", $bbcode_tpl['olist_close'], $text);
// Ordered lists
$text = preg_replace("/[list type=([a1])]/si", $bbcode_tpl['olist_open'], $text);

// colors
$text = preg_replace("/[color=(#[0-9A-F]{6}|[a-z]+)]/si", $bbcode_tpl['color_open'], $text);
$text = str_replace("[/color]", $bbcode_tpl['color_close'], $text);

// size
$text = preg_replace("/[size=99px]/si", $bbcode_tpl['size_open'], $text);
$text = str_replace("[/size]", $bbcode_tpl['size_close'], $text);

// and for bolding text.
$text = str_replace("", $bbcode_tpl['b_open'], $text);
$text = str_replace("
", $bbcode_tpl['b_close'], $text);

// [sup] and [/sup] pour les textes en exposant.
$text = str_replace("[sup:$uid]", $bbcode_tpl['sup_open'], $text);
$text = str_replace("[/sup:$uid]", $bbcode_tpl['sup_close'], $text);

// [sub] and [/sub] pour les textes en indice.
$text = str_replace("[sub:$uid]", $bbcode_tpl['sub_open'], $text);
$text = str_replace("[/sub:$uid]", $bbcode_tpl['sub_close'], $text);

// [strike] and [/strike] for barring text.
$text = str_replace("[strike:$uid]", $bbcode_tpl['strike_open'], $text);
$text = str_replace("[/strike:$uid]", $bbcode_tpl['strike_close'], $text);

// and for underlining text.
$text = str_replace("", $bbcode_tpl['u_open'], $text);
$text = str_replace("
", $bbcode_tpl['u_close'], $text);

// and for italicizing text.
$text = str_replace("", $bbcode_tpl['i_open'], $text);
$text = str_replace("
", $bbcode_tpl['i_close'], $text);

// Patterns and replacements for URL and email tags..
$patterns = array();
$replacements = array();

// [img]image_url_here[/img] code..
// This one gets first-passed..
//-- mod : profile cp ------------------------------------------------------------------------------
//-- add
global $userdata;

if (!$userdata['user_viewimg'])
{
$text = str_replace("[img]", "", $text);
$text = str_replace("[/img]", "", $text);
$text = str_replace("[img=left:$uid]", "", $text);
$text = str_replace("[img=right:$uid]", "", $text);
$text = str_replace("[imgrel:$uid]", "", $text);
$text = str_replace("[/imgrel:$uid]", "", $text);
$text = str_replace("[imgrel=left:$uid]", "", $text);
$text = str_replace("[imgrel=right:$uid]", "", $text);
$text = str_replace("[theme:$uid]", "", $text);
$text = str_replace("[theme=left:$uid]", "", $text);
$text = str_replace("[theme=right:$uid]", "", $text);
$text = str_replace("[/theme:$uid]", "", $text);
}
//-- fin mod : profile cp --------------------------------------------------------------------------

$patterns[] = "#[img]([^?](?:[^[]+|[(?!url))*?)[/img]#i";
$replacements[] = $bbcode_tpl['img'];

//BBCode Search Mod
$patterns[] = "#[search:$uid](.*?)[/search:$uid]#si";
$replacements[] = $bbcode_tpl['search'];

$patterns[] = "#[theme:$uid](.*?)[/theme:$uid]#si";
$replacements[] = $bbcode_tpl['theme'];

$patterns[] = "#[imgrel:$uid](.*?)[/imgrel:$uid]#si";
$replacements[] = $bbcode_tpl['img'];

// LEFT-RIGHT-start
// [img=left]image_url_here[/img] code..
$patterns[] = "#[img=left:$uid](.*?)[/img]#si";
$replacements[] = $bbcode_tpl['left'];

// [img=right]image_url_here[/img] code..
$patterns[] = "#[img=right:$uid](.*?)[/img]#si";
$replacements[] = $bbcode_tpl['right'];

// [imgrel=left]image_url_here[/imgrel] code..
$patterns[] = "#[imgrel=left:$uid](.*?)[/imgrel:$uid]#si";
$replacements[] = $bbcode_tpl['relleft'];

// [img=right]image_url_here[/img] code..
$patterns[] = "#[imgrel=right:$uid](.*?)[/imgrel:$uid]#si";
$replacements[] = $bbcode_tpl['relright'];

// [img=left]image_url_here[/img] code..
$patterns[] = "#[theme=left:$uid](.*?)[/theme:$uid]#si";
$replacements[] = $bbcode_tpl['themeleft'];

// [img=right]image_url_here[/img] code..
$patterns[] = "#[theme=right:$uid](.*?)[/theme:$uid]#si";
$replacements[] = $bbcode_tpl['themeright'];
// LEFT-RIGHT-end

// matches a xxxx://www.phpbb.com code..
$patterns[] = "#[url]([w]+?://([w#$%&~/.-;:=,?@]+]+|[(?!url=))*?)[/url]#is";

$replacements[] = $bbcode_tpl['url1'];

// http://www.phpbb.com code.. (no xxxx:// prefix).
$patterns[] = "#[url]((www|ftp).([w#$%&~/.-;:=,?@]+]+|[(?!url=))*?)[/url]#is";

$replacements[] = $bbcode_tpl['url2'];

// [url=xxxx]phpBB[/url] code..
$patterns[] = "#[url=([w]+?]+]*?)]([^?nrt].*?)[/url]#is";
$replacements[] = $bbcode_tpl['url3'];

// phpBB code.. (no xxxx] = "#[url=((www|ftp).[w#$%&~/.-;]+]*?)]([^?nrt].*?)[/url]#is";
$replacements[] = $bbcode_tpl['url4'];

// user@domain.tld code..
$patterns[] = "#[email]([a-z0-9&-_.]+?@[w-]+.([w-.]+.)?[w]+)[/email]#si";
$replacements[] = $bbcode_tpl['email'];

// [google]string for search[/google] code..
$patterns[] = "#[google](.*?)[/google]#ise";
$replacements[] = $bbcode_tpl['google'];

// [you] - inserts the name of the person viewing the post
$patterns[] = "#[you]#ise";
$replacements[] = $bbcode_tpl['you'];

// bbcode_box Mod
// [fade] and [/fade] for faded text.
$text = str_replace("[fade:$uid]", $bbcode_tpl['fade_open'], $text);
$text = str_replace("[/fade:$uid]", $bbcode_tpl['fade_close'], $text);
// real
$patterns[] = "#[ram:$uid](.*?)[/ram:$uid]#si";
$replacements[] = $bbcode_tpl['ram'];
// sound
$patterns[] = "#[stream:$uid](.*?)[/stream:$uid]#si";
$replacements[] = $bbcode_tpl['stream'];
//web
$patterns[] = "#[web:$uid](.*?)[/web:$uid]#si";
$replacements[] = $bbcode_tpl['web'];
// [flash width= height= loop= ] and [/flash] code..
$patterns[] = "#[flash width=([0-6]?[0-9]?[0-9]) height=([0-4]?[0-9]?[0-9]):$uid](.*?)[/flash:$uid]#si";
$replacements[] = $bbcode_tpl['flash'];
// [flash width= height= loop= ] and [/flash] code..
$patterns[] = "#[video width=([0-6]?[0-9]?[0-9]) height=([0-4]?[0-9]?[0-9]):$uid](.*?)[/video:$uid]#si";
$replacements[] = $bbcode_tpl['video'];
$text = preg_replace($patterns, $replacements, $text);
// align
$text = preg_replace("/[align=(left|right|center|justify):$uid]/si", $bbcode_tpl['align_open'], $text);
$text = str_replace("[/align:$uid]", $bbcode_tpl['align_close'], $text);
// marquee
$text = preg_replace("/[marq=(left|right|up|down):$uid]/si", $bbcode_tpl['marq_open'], $text);
$text = str_replace("[/marq:$uid]", $bbcode_tpl['marq_close'], $text);
// table
$text = preg_replace("/[table=(.*?):$uid]/si", $bbcode_tpl['table_open'], $text);
$text = str_replace("[/table:$uid]", $bbcode_tpl['table_close'], $text);
// cell
$text = preg_replace("/[cell=(.*?):$uid]/si", $bbcode_tpl['cell_open'], $text);
$text = str_replace("[/cell:$uid]", $bbcode_tpl['cell_close'], $text);
// center
$text = preg_replace("/[center:$uid]/si", $bbcode_tpl['center_open'], $text);
$text = str_replace("[/center:$uid]", $bbcode_tpl['center_close'], $text);
// font
$text = preg_replace("//si", $bbcode_tpl['font_open'], $text);
$text = str_replace("[/font:$uid]", $bbcode_tpl['font_close'], $text);
// poet
$text = preg_replace("/[poet(.*?):$uid]/si", $bbcode_tpl['poet_open'], $text);
$text = str_replace("[/poet:$uid]", $bbcode_tpl['poet_close'], $text);
//[hr]
$text = str_replace("[hr:$uid]", $bbcode_tpl['hr'], $text);
// bbcode_box Mod

$text = preg_replace($patterns, $replacements, $text);

// Remove our padding from the string..
$text = substr($text, 1);

return $text;

} // bbencode_second_pass()

// Need to initialize the random numbers only ONCE
mt_srand( (double) microtime() * 1000000);

function make_bbcode_uid()
{
// Unique ID for this message..

$uid = dss_rand();
$uid = substr($uid, 0, BBCODE_UID_LEN);

return $uid;
}

function bbencode_first_pass($text, $uid)
{
// pad it with a space so we can distinguish between FALSE and matching the 1st char (index 0).
// This is important; bbencode_quote(), bbencode_list(), and bbencode_code() all depend on it.
$text = " " . $text;

// [code] and [/code] for posting code (HTML, PHP, C etc etc) in your posts.
$text = bbencode_first_pass_pda($text, $uid, '[code]', '[/code]', '', true, '');

// PHP MOD
// /*php and /php*/ for posting PHP code in your posts.
$text = bbencode_first_pass_pda($text, $uid, '/*php ', ' /php*/', '', true, '');

//
and
for posting replies with quote, or just for quoting stuff.
$text = bbencode_first_pass_pda($text, $uid, '
', '
', '', false, '');
$text = bbencode_first_pass_pda($text, $uid, '/[quote=(".*?")]/is', '
', '', false, '', "
");
//
and
for posting replies with quote, or just for quoting stuff with an pre-defined post entry
$text = bbencode_first_pass_pda($text, $uid, '/[quote=p=\\&quot;([0-9]+)\\&quot;]/is', '
', '', false, '', "
");

$text = bbencode_first_pass_pda($text, $uid, '/[quote=\\&quot;(.*?)\\&quot;;p=\\&quot;([0-9]+)\\&quot;]/is', '
', '', false, '', "
");
$text = bbencode_first_pass_pda($text, $uid, '/[quote=\\&quot;(.*?)\\&quot;]/is', '
', '', false, '', "[quote]");

// [acronym] and [/acronym]
$text = bbencode_first_pass_pda($text, $uid, '/[acronym=(".*?")]/is', '[/acronym]', '', false, '', "[acronym:$uid=\1]");

//
    and [list type=x] for (un)ordered lists.
    $open_tag = array();
    $open_tag[0] = "
      ";

      // unordered..
      $text = bbencode_first_pass_pda($text, $uid, $open_tag, "
    ", "
", false, 'replace_listitems');

$open_tag[0] = "[list type=decimal]";
$open_tag[1] = "
    ";

    // ordered.
    $text = bbencode_first_pass_pda($text, $uid, $open_tag, "
", "[/list]", false, 'replace_listitems');

// [color] and [/color] for setting text color
$text = preg_replace("#[color=(#[0-9A-F]{6}|[a-z-]+)](.*?)[/color]#si", "[color=\1]\2[/color]", $text);

// [size] and [/size] for setting text size
$text = preg_replace("#[size=99px]\2[/size]", $text);

// and for bolding text.
$text = preg_replace("#(.*?)#si", "\1", $text);

// [sup] and [/sup] pour les textes en exposant.
$text = preg_replace("#[sup](.*?)[/sup]#si", "[sup:$uid]\1[/sup:$uid]", $text);

// [sub] and [/sub] pour les textes en indice.
$text = preg_replace("#[sub](.*?)[/sub]#si", "[sub:$uid]\1[/sub:$uid]", $text);

// [strike] and [/strike] for barring text.
$text = preg_replace("#[strike](.*?)[/strike]#si", "[strike:$uid]\1[/strike:$uid]", $text);

// and for underlining text.
$text = preg_replace("#(.*?)#si", "\1", $text);

// and for italicizing text.
$text = preg_replace("#(.*?)#si", "\1", $text);

// [img]image_url_here[/img] code..
$text = preg_replace("#[img]((http|ftp|https|ftps)://)([^%20?&=#"nrt<]*?(.(jpg|jpeg|gif|png)))[/img]#sie", "'[img]\1'%20.%20str_replace('%20',%20'%20',%20'\3')%20.%20'[/img]'", $text);

//BBCode Search Mod
$text = preg_replace("#[search](.*?)[/search]#si", "[search:$uid]\1[/search:$uid]", $text);

$text = preg_replace("#[theme]([^ ?&=#"nrt<]*?)[/theme]#sie", "'[theme:$uid]\1' . str_replace(' ', '%20', '\3') . '[/theme:$uid]'", $text);
$text = preg_replace("#[theme=left]([^ ?&=#"nrt<]*?)[/theme]#sie", "'[theme=left:$uid]\1' . str_replace(' ', '%20', '\3') . '[/theme:$uid]'", $text);
$text = preg_replace("#[theme=right]([^ ?&=#"nrt<]*?)[/theme]#sie", "'[theme=right:$uid]\1' . str_replace(' ', '%20', '\3') . '[/theme:$uid]'", $text);

$text = preg_replace("#[imgrel]([^ ?&=#"nrt<]*?)[/imgrel]#sie", "'[imgrel:$uid]\1' . str_replace(' ', '%20', '\3') . '[/imgrel:$uid]'", $text);
$text = preg_replace("#[imgrel=left]([^rnt<"]*?)[/imgrel]#sie", "'[imgrel=left:$uid]\1' . str_replace(' ', '%20', '\3') . '[/imgrel:$uid]'", $text);
$text = preg_replace("#[imgrel=right]([^rnt<"]*?)[/imgrel]#sie", "'[imgrel=right:$uid]\1' . str_replace(' ', '%20', '\3') . '[/imgrel:$uid]'", $text);

// LEFT-RIGHT-start
$text = preg_replace("#[img=left]((http|ftp|https|ftps)://)([^rnt<"]*?)[/img]#sie", "'[img=left:$uid]\1' . str_replace(' ', '%20', '\3') . '[/img]'", $text);
$text = preg_replace("#[img=right]((http|ftp|https|ftps)://)([^rnt</img> 0)
{
// There exists a starting tag.
$curr_nesting_depth = sizeof($stack);
// We need to do 2 replacements now.
$match = array_pop($stack);
$start_index = $match['pos'];
$start_tag = $match['tag'];
$start_length = strlen($start_tag);
$start_tag_index = $match['index'];

if ($open_is_regexp)
{
$start_tag = preg_replace($open_tag[$start_tag_index], $open_regexp_replace[$start_tag_index], $start_tag);
}

// everything before the opening tag.
$before_start_tag = substr($text, 0, $start_index);

// everything after the opening tag, but before the closing tag.
$between_tags = substr($text, $start_index + $start_length, $curr_pos - $start_index - $start_length);

// Run the given function on the text between the tags..
if ($use_function_pointer)
{
$between_tags = $func($between_tags, $uid);
}

// everything after the closing tag.
$after_end_tag = substr($text, $curr_pos + $close_tag_length);

// Mark the lowest nesting level if needed.
if ($mark_lowest_level && ($curr_nesting_depth == 1))
{
if ($open_tag[0] == '[code]')
{
$code_entities_match = array('#<code_entities_replace> 0)
{
$match = array_pop($stack);
$curr_pos = $match['pos'];
// bbcode_array_push($stack, $match);
// ++$curr_pos;
}
else
{
$curr_pos = 1;
}
}
else
{
// No matching start tag found. Increment pos, keep going.
++$curr_pos;
}
}
else
{
// No starting tag or ending tag.. Increment pos, keep looping.,
++$curr_pos;
}
}
}
} // while

return $text;

} // bbencode_first_pass_pda()

/**
* Does second-pass bbencoding of the [code] tags. This includes
* running htmlspecialchars() over the text contained between
* any pair of [code] tags that are at the first level of
* nesting. Tags at the first level of nesting are indicated
* by this format: [code] ... [/code]
* Other tags are in this format: [code] ... [/code]
*/
function bbencode_second_pass_code($text, $uid, $bbcode_tpl)
{
global $lang;

$code_start_html = $bbcode_tpl['code_open'];
$code_end_html = $bbcode_tpl['code_close'];

// First, do all the 1st-level matches. These need an htmlspecialchars() run,
// so they have to be handled differently.
$match_count = preg_match_all("#[code](.*?)[/code]#si", $text, $matches);

for ($i = 0; $i < $match_count; $i++)
{
$before_replace = $matches[1][$i];
$after_replace = $matches[1][$i];

// Replace 2 spaces with " " so non-tabbed code indents without making huge long lines.
$after_replace = str_replace(" ", " ", $after_replace);
// now Replace 2 spaces with " " to catch odd #s of spaces.
$after_replace = str_replace(" ", " ", $after_replace);

// Replace tabs with " " so tabbed code indents sorta right without making huge long lines.
$after_replace = str_replace("t", " ", $after_replace);

// now Replace space occurring at the beginning of a line
$after_replace = preg_replace("/^ {1}/m", " ", $after_replace);

$str_to_match = "[code]" . $before_replace . "[/code]";

$replacement = $code_start_html;
$replacement .= $after_replace;
$replacement .= $code_end_html;

$text = str_replace($str_to_match, $replacement, $text);
}

// Now, do all the non-first-level matches. These are simple.
$text = str_replace("[code]", $code_start_html, $text);
$text = str_replace("[/code]", $code_end_html, $text);

return $text;

} // bbencode_second_pass_code()

/**
* PHP MOD
* Original code/function by phpBB Group
* Modified by JW Frazier / Fubonis < xxxx://yyyy with an HTML <a> tag linking
* to that URL
* - Goes through the given string, and replaces http://www.xxxx.yyyy[zzzz] with an HTML <a> tag linking
* to http://www.xxxx.yyyy[/zzzz]
* - Goes through the given string, and replaces xxxx@yyyy with an HTML mailto: tag linking
* to that email address
* - Only matches these 2 patterns either after a space, or at the beginning of a line
*
* Notes: the email one might get annoying - it's easy to make it more restrictive, though.. maybe
* have it require something like <a>xxxx@yyyy.zzzz</a> or such. We'll see.
*/
function make_clickable($text)
{

$text = preg_replace('#(script|about|applet|activex|chrome):#is', "\1:", $text);

// pad it with a space so we can match things at the start of the 1st line.
$ret = ' ' . $text;

// matches an "xxxx://yyyy" URL at the start of a line, or after a space.
// xxxx can only be alpha characters.
// yyyy is anything up to the first space, newline, comma, double quote or <
$ret = preg_replace("#(^|[n ])([w]+?://[w#$%&~/.-;:=,?@[]+]*)#is", "\1<a>\2</a>", $ret);

// matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
// Must contain at least 2 dots. xxxx contains either alphanum, or "-"
// zzzz is optional.. will contain everything up to the first space, newline,
// comma, double quote or <.
$ret = preg_replace("#(^|[n ])((www|ftp).[w#$%&~/.-;:=,?@[]+]*)#is", "\1<a>\2</a>", $ret);

// matches an email@domain type address at the start of a line, or after a space.
// Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
$ret = preg_replace("#(^|[n ])([a-z0-9&-_.]+?)@([w-]+.([w-.]+.)*[w]+)#i", "\1<a>\2@\3</a>", $ret);

// Remove our padding..
$ret = substr($ret, 1);

return($ret);
}

/**
* Nathan Codding - Feb 6, 2001
* Reverses the effects of make_clickable(), for use in editpost.
* - Does not distinguish between "www.xxxx.yyyy" and "http://aaaa.bbbb" type URLs.
*
*/
function undo_make_clickable($text)
{
$text = preg_replace("#<BBCode><a>.*?</a><BBCode>#i", "\1", $text);
$text = preg_replace("#<BBcode><a>.*?</a><BBCode>#i", "\1", $text);

return $text;

}

/**
* Nathan Codding - August 24, 2000.
* Takes a string, and does the reverse of the PHP standard function
* htmlspecialchars().
*/
function undo_htmlspecialchars($input)
{
$input = preg_replace("/&gt;/i", ">", $input);
$input = preg_replace("/&lt;/i", "<", $input);
$input = preg_replace("/&quot;/i", """, $input);
$input = preg_replace("/&/i", "&", $input);

return $input;
}

/**
* This is used to change a [*] tag into a [*] tag as part
* of the first-pass bbencoding of [list] tags. It fits the
* standard required in order to be passed as a variable
* function into bbencode_first_pass_pda().
*/
function replace_listitems($text, $uid)
{
$text = str_replace("[*]", "[*]", $text);

return $text;
}

/**
* Escapes the "/" character with "/". This is useful when you need
* to stick a runtime string into a PREG regexp that is being delimited
* with slashes.
*/
function escape_slashes($input)
{
$output = str_replace('/', '/', $input);
return $output;
}

/**
* This function does exactly what the PHP4 function array_push() does
* however, to keep phpBB compatable with PHP 3 we had to come up with our own
* method of doing it.
* This function was deprecated in phpBB 2.0.18
*/
function bbcode_array_push(&$stack, $value)
{
$stack[] = $value;
return(sizeof($stack));
}

/**
* This function does exactly what the PHP4 function array_push() does
* however, to keep phpBB compatable with PHP 3 we had to come up with our own
* method of doing it.
* This function was deprecated in phpBB 2.0.18
*/
function bbcode_array_pop(&$stack)
{
$arrSize = count($stack);
$x = 1;

while(list($key, $val) = each($stack))
{
if($x < count($stack))
{
$tmpArr[] = $val;
}
else
{
$return_val = $val;
}
$x++;
}
$stack = $tmpArr;

return($return_val);
}

//
// Smilies code ... would this be better tagged on to the end of bbcode.php?
// Probably so and I'll move it before B2
//
function smilies_pass($message)
{
static $orig, $repl;

if (!isset($orig))
{
global $db, $board_config, $portal_config, $var_cache;

$orig = $repl = array();

if($portal_config['cache_enabled'])
{
$orig = $var_cache->get('orig2', 86400, 'smilies');
$repl = $var_cache->get('repl2', 86400, 'smilies');
}
if(!$orig)
{
$sql = 'SELECT * FROM ' . SMILIES_TABLE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql);
}
$smilies = $db->sql_fetchrowset($result);

if (count($smilies))
{
usort($smilies, 'smiley_sort');
}

for ($i = 0; $i <count>save($orig, 'orig2', 'smilies');
$var_cache->save($repl, 'repl2', 'smilies');
}
}
}

if (count($orig))
{
$message = preg_replace($orig, $repl, ' ' . $message . ' ');
$message = substr($message, 1, -1);
}

return $message;
}

function acronym_pass($message)
{
static $orig, $repl;

if( !isset($orig) )
{
global $db, $board_config;
$orig = $repl = array();

$sql = 'SELECT * FROM ' . ACRONYMS_TABLE;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain acronyms data", "", __LINE__, __FILE__, $sql);
}

$acronyms = $db->sql_fetchrowset($result);

if( count($acronyms) )
{
usort( $acronyms, 'acronym_sort' );
}

for ($i = 0; $i </acronym> strlen($b['code']) ) ? -1 : 1;
}

function acronym_sort($a, $b)
{
if ( strlen($a['acronym']) == strlen($b['acronym']) )
{
return 0;
}

return ( strlen($a['acronym']) > strlen($b['acronym']) ) ? -1 : 1;
}
?>
[/code]

PostPosted: Fri May 26, 2006 3:40 am
Author: Csicso
Really sorry, i tried, but i cannot force it, i realy dont know what happened.. <img>

PostPosted: Fri May 26, 2006 5:52 am
Author: Master Dwarf
I'll take a look and see if there is anything outta whack.

Around line 196 things seem a bit strange. The file I have has a comment 'for posting code' it is commented out but yours is not. That's about as far as I looked.

Did you have any mods installed? Did you do the upgrade manually or using premodded files? If you used premodded files AND you did not have any mods installed previous to the upgrade, I would upload a premodded bbcode.php file. Make sense?

PostPosted: Mon May 29, 2006 3:22 am
Author: Csicso
Hi.
I have some minor mods installed, but anyone modified bbcode.php. As I remember, i downloaded the file, that i'm using from here.
Anway, I did the upgrade manually, and uploaded a premodded bbcode.php.

Re: Release of upgrade for phpbb2.0.20

PostPosted: Mon May 29, 2006 12:23 pm
Author: Dioncecht
ok, did the upgrade manually and everything SEEMS to work ok, except when I click on View New Posts Since Last visit. I get a blank page. Not sure if thats only when there are no new posts, but if there are no new posts, it should still display something saying there are no new posts, not a blank page.

any ideas?

PostPosted: Mon May 29, 2006 12:29 pm
Author: Dioncecht
Nevermind. I pulled the search.php premodded file and just used that since none of my mods ever really changed that file that I can remember. It seems to work ok now.

PostPosted: Mon May 29, 2006 10:21 pm
Author: ZacFields
I just want to add to the pile of people in saying:

"I used the premodded files to upgrade and I was using integramod 1.4.0 with phpbb security 1.0.3 and everything worked just great!"

Thanks for the good work guys.

Zac

Re: Release of upgrade for phpbb2.0.20

PostPosted: Tue May 30, 2006 7:55 am
Author: found it
Thank you to everyone who has this working right and for your kind words....

It makes up for the time and effort in making sure everything works as it should do....

:mrgreen: