SQL ERROR [ mysqli ]
Posted: 16 Nov 2011, 04:40
Hello, I just installed this mod. And when a user is logged in, everything is ok!
But when you are not logged in, you get an error ..
All other pages are working .. just error @ the index page ...
When I remove this from index.php it works again...
Any idea what this could be please?
Index.php
But when you are not logged in, you get an error ..
All other pages are working .. just error @ the index page ...
When I remove this from index.php it works again...
Code: Select all
//-- mod: Top Stats ---------------------------------------------------------//
include($phpbb_root_path . 'includes/functions_top_stats.' . $phpEx);
//-- end: Top Stats ---------------------------------------------------------//
Index.php
Code: Select all
<?php
/**
*
* @package phpBB3
* @version $Id: index.php 8987 2008-10-09 14:17:02Z acydburn $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// phpBB Arcade Start
$scoretype = (strtolower(request_var('act', '')) == 'arcade' && strtolower(request_var('do', '')) == 'newscore') ? 'IBPRO_GAME' : ((strtolower(request_var('autocom', '')) == 'arcade') ? 'IBPROV3_GAME' : false);
if ($scoretype)
{
require($phpbb_root_path . 'includes/arcade/arcade_scoretype.' . $phpEx);
}
// phpBB Arcade End
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
// SmiX.MODs feed news center [+]
$smix_feed_parser = new smix_feed_parser();
$smix_feed_parser->index_init();
// SmiX.MODs feed news center [-]
display_forums('', $config['load_moderators']);
// Set some stats, get posts count from forums data if we... hum... retrieve all forums data
$total_posts = $config['num_posts'];
$total_topics = $config['num_topics'];
$total_users = $config['num_users'];
$uptimeindex = shell_exec("cut -d. -f1 /proc/uptime");
$daysindex = floor($uptimeindex/60/60/24);
$hoursindex = $uptimeindex/60/60%24;
$minsindex = $uptimeindex/60%60;
$secsindex = $uptimeindex%60;
$load = sys_getloadavg();
$l_total_user_s = ($total_users == 0) ? 'TOTAL_USERS_ZERO' : 'TOTAL_USERS_OTHER';
$l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER';
$l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';
// Grab group details for legend display
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
{
$sql = 'SELECT group_id, group_name, group_colour, group_type
FROM ' . GROUPS_TABLE . '
WHERE group_legend = 1
ORDER BY group_name ASC';
}
else
{
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
FROM ' . GROUPS_TABLE . ' g
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
ON (
g.group_id = ug.group_id
AND ug.user_id = ' . $user->data['user_id'] . '
AND ug.user_pending = 0
)
WHERE g.group_legend = 1
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
ORDER BY g.group_name ASC';
}
$result = $db->sql_query($sql);
$legend = array();
while ($row = $db->sql_fetchrow($result))
{
$colour_text = ($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . '"' : '';
$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
if ($row['group_name'] == 'BOTS' || ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')))
{
$legend[] = '<span' . $colour_text . '>' . $group_name . '</span>';
}
else
{
$legend[] = '<a' . $colour_text . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . $group_name . '</a>';
}
}
$db->sql_freeresult($result);
$legend = implode(', ', $legend);
// Generate birthday list if required ...
$birthday_list = '';
if ($config['load_birthdays'] && $config['allow_birthdays'])
{
$now = getdate(time() + $user->timezone + $user->dst - date('Z'));
$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
WHERE (b.ban_id IS NULL
OR b.ban_exclude = 1)
AND u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%'
AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_list .= ' (' . ($now['year'] - $age) . ')';
}
/*
* Post Bot - Birthday Post
* By Poppertom69
*/
if(pb::check_extension_status('post_bot_users_birthday'))
{
$birth = $now['year'] - $age;
pb::post_bot_user_birthday($row['username'], $row['user_id'], $birth);
}
/* End Post Bot */
}
$db->sql_freeresult($result);
}
// Show amount of reported and queue posts for authenticated users
if ($auth->acl_getf_global('m_report') || $auth->acl_getf_global('m_approve'))
{
if (!function_exists('get_forum_list'))
{
include($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
}
$user->add_lang('mcp');
// Reported Posts
$forum_list = get_forum_list('m_report');
if (!empty($forum_list))
{
$sql = 'SELECT COUNT(r.report_id) AS total_reported
FROM ' . REPORTS_TABLE . ' r, ' . POSTS_TABLE . ' p
WHERE r.post_id = p.post_id
AND r.report_closed = 0
AND ' . $db->sql_in_set('p.forum_id', $forum_list);
$result = $db->sql_query($sql);
$total_reported = (int) $db->sql_fetchfield('total_reported');
$db->sql_freeresult($result);
if ($total_reported)
{
$template->assign_vars(array(
'L_REPORTS_TOTAL' => ($total_reported == 1) ? $user->lang['REPORT_TOTAL'] : sprintf($user->lang['REPORTS_TOTAL'], $total_reported),
'U_MCP_REPORTS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports'))
);
}
}
// Reported PMs
$sql = 'SELECT COUNT(report_id) AS total_pm_reported
FROM ' . REPORTS_TABLE . '
WHERE pm_id <> 0
AND report_closed = 0';
$result = $db->sql_query($sql);
$total_pm_reported = (int) $db->sql_fetchfield('total_pm_reported');
$db->sql_freeresult($result);
if ($total_pm_reported)
{
$template->assign_vars(array(
'L_PM_REPORTS_TOTAL' => ($total_pm_reported == 1) ? $user->lang['PM_REPORT_TOTAL'] : sprintf($user->lang['PM_REPORTS_TOTAL'], $total_pm_reported),
'U_MCP_PM_REPORTS' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=pm_reports'))
);
}
// Posts and Topics in the Queue
$forum_list = get_forum_list('m_approve');
if (!empty($forum_list))
{
// Get the queue topics and posts in 1 query :)
$sql = 'SELECT COUNT(t.topic_id) AS total_queue_topics, (
SELECT COUNT(p.post_id)
FROM ' . POSTS_TABLE . ' p
WHERE p.post_approved = 0
AND ' . $db->sql_in_set('p.forum_id', $forum_list) . ' ) AS total_queue_posts
FROM ' . TOPICS_TABLE . ' t
WHERE t.topic_approved = 0
AND ' . $db->sql_in_set('t.forum_id', $forum_list);
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
// Topics contain posts, so let's remove these
$total_queue_posts = $row['total_queue_posts'] - $row['total_queue_topics'];
$total_queue_topics = $row['total_queue_topics'];
if ($total_queue_posts)
{
$template->assign_vars(array(
'L_UNAPPROVED_POSTS_TOTAL' => ($total_queue_posts == 1) ? $user->lang['UNAPPROVED_POST_TOTAL'] : sprintf($user->lang['UNAPPROVED_POSTS_TOTAL'], $total_queue_posts),
'U_MCP_POSTS_QUEUE' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=unapproved_posts'))
);
}
if ($total_queue_topics)
{
$template->assign_vars(array(
'L_UNAPPROVED_TOPICS_TOTAL' => ($total_queue_topics == 1) ? $user->lang['UNAPPROVED_TOPIC_TOTAL'] : sprintf($user->lang['UNAPPROVED_TOPICS_TOTAL'], $total_queue_topics),
'U_MCP_TOPICS_QUEUE' => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=unapproved_topics'))
);
}
}
}
if ( isset($config['announcement_enable']))
{
if ( $config['announcement_show_index'] && ($config['announcement_enable'] || $config['announcement_show_birthdays_always']) )
{
if (!function_exists('get_announcement_data'))
{
include($phpbb_root_path . 'includes/functions_announcements.' . $phpEx);
}
get_announcement_data();
}
}
// BEGIN Welcome Mod
//--Welcome_Mod--get the hour number-->
$date = $user->format_date(time(), 'H');
if ($user->data['is_registered'])
{
$u_user_name = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']);
}
else
{
$u_user_name = $user->lang['WELCOME_GUEST'];
}
switch (true)
{
case ($date < 1):
// if the hour is 11am-12am (18-23)
$s_welcome = sprintf($user->lang['GOOD_NIGHT'], $u_user_name);;
break;
case ($date < 4):
// if the hour is 1-3 am
$s_welcome = sprintf($user->lang['UP_LATE'], $u_user_name);
break;
case ($date < 8):
// if the hour is 4-7 am
$s_welcome = sprintf($user->lang['UP_EARLY'], $u_user_name);
break;
case ($date < 12):
// if the hour is 8-11 am
$s_welcome = sprintf($user->lang['GOOD_MORNING'], $u_user_name);
break;
case ($date < 18):
// if the hour is 12-5pm
$s_welcome = sprintf($user->lang['GOOD_AFTERNOON'], $u_user_name);
break;
case ($date < 24):
// if the hour is 6pm-11pm
$s_welcome = sprintf($user->lang['GOOD_EVENING'], $u_user_name);;
break;
}
// how long a member for
$member_for = '';
if ($user->data['is_registered'] && !$user->data['is_bot'])
{
$member_length = time() - $user->data['user_regdate'];
$years = $months = $days = 0;
$member_for = '';
if ($member_length)
{
if ($member_length >= 31536000)
{
$years = floor($member_length / 31536000);
$member_length = $member_length - ($years * 31536000);
$member_for .= $years > 1 ? ($years . ' ' . $user->lang['WELCOME_YEARS'] . ', ') : ($years . ' ' . $user->lang['WELCOME_YEAR'] . ', ');
}
$months = floor($member_length / 2628000);
if ($months)
{
$months = $months > 1 ? ($months . ' ' . $user->lang['WELCOME_MONTHS'] . ', ') : ($months . ' ' . $user->lang['WELCOME_MONTHS'] . ', ');
$member_length = $member_length - ($months * 2628000);
$member_for .= $months;
}
$days = floor($member_length / 86400);
if ($days)
{
$days = $days > 1 ? ($days . ' ' . $user->lang['WELCOME_DAYS']) : ($days . ' ' . $user->lang['WELCOME_DAY']);
$member_for .= $days;
}
}
}
//END Welcome Mod
//-- mod: top five ---------------------------------------------------------//
include($phpbb_root_path . 'includes/top_five.' . $phpEx);
//-- end: top five ---------------------------------------------------------//
//-- Arcade leaders on index
include_once($phpbb_root_path . './includes/arcade/arcade_common.' . $phpEx);
$arcade = new arcade(false);
$real_leaders_count = sizeof($arcade->leaders);
$leaders_count = ($real_leaders_count > 3) ? 3 : $real_leaders_count;
$arcade_leaders_img = array();
$arcade_leaders_img[0] = '';
$arcade_leaders_img[1] = $phpbb_root_path . $arcade->config['image_path'] . '1st.gif';
$arcade_leaders_img[2] = $phpbb_root_path . $arcade->config['image_path'] . '2nd.gif';
$arcade_leaders_img[3] = $phpbb_root_path . $arcade->config['image_path'] . '3rd.gif';
$arcade_leaders_img_alt = array();
$arcade_leaders_img_alt[0] = '';
$arcade_leaders_img_alt[1] = $user->lang['ARCADE_FIRST'];
$arcade_leaders_img_alt[2] = $user->lang['ARCADE_SECOND'];
$arcade_leaders_img_alt[3] = $user->lang['ARCADE_THIRD'];
if ($leaders_count > 0)
{
$rank = 0;
$actual_rank = 0;
$previous_wins = 0;
for ($i = 0; $i < $leaders_count; $i++)
{
//This code is used to calculate the actual rank.
//For example if there are ties...
$actual_rank++;
if ($previous_wins != $arcade->leaders[$i]['total_wins'])
{
$rank = $actual_rank;
}
$previous_wins = $arcade->leaders[$i]['total_wins'];
$user_link = $arcade->get_username_string('full', $arcade->leaders[$i]['user_id'], $arcade->leaders[$i]['username'], $arcade->leaders[$i]['user_colour']);
$template->assign_block_vars('arcade_leaders', array(
'ARCADE_LEADERS_RANK' => $rank,
'ARCADE_LEADERS' => $user_link,
'ARCADE_LEADERS_IMAGE' => (isset($arcade_leaders_img[$rank])) ? $arcade_leaders_img[$rank] : '',
'ARCADE_LEADERS_IMAGE_ALT' => (isset($arcade_leaders_img_alt[$rank])) ? $arcade_leaders_img_alt[$rank] : '',
'VICTORIES' => $arcade->leaders[$i]['total_wins']
));
}
}
//-- Arcade leaders on index
/**
* Ultimate Points
*/
if ( isset($config['points_name']) )
{
// Add points lang
$user->add_lang('mods/points');
// Generate the bank statistics
$sql_array = array(
'SELECT' => 'SUM(holding) AS total_holding, count(user_id) AS total_users',
'FROM' => array(
POINTS_BANK_TABLE => 'b',
),
'WHERE' => 'id > 0',
);
$sql = $db->sql_build_query('SELECT', $sql_array);
$result = $db->sql_query($sql);
$b_row = $db->sql_fetchrow($result);
$bankholdings = ( $b_row['total_holding'] ) ? $b_row['total_holding'] : 0;
$bankusers = $b_row['total_users'];
// Create most rich users - cash and bank
$limit = $points_values['number_show_top_points'];
$sql_array = array(
'SELECT' => 'u.user_id, u.username, u.user_colour, u.user_points, b.holding',
'FROM' => array(
USERS_TABLE => 'u',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(POINTS_BANK_TABLE => 'b'),
'ON' => 'u.user_id = b.user_id'
)
),
);
$sql = $db->sql_build_query('SELECT', $sql_array);
$result = $db->sql_query($sql);
// Create a new array for the users
$rich_users = array();
// Create sorting array
$rich_users_sort = array();
// Loop all users array to escape the 0 points users
while( $row = $db->sql_fetchrow($result))
{
if ( $row['user_points'] > 0 || $row['holding'] > 0 ) //let away beggars
{
$total_points = $row['user_points'] + $row['holding'];
$index = $row['user_id'];
$rich_users[$index] = array('total_points' => $total_points, 'username' => $row['username'], 'user_colour' => $row['user_colour'], 'user_id' => $index);
$rich_users_sort[$index] = $total_points;
}
}
$db->sql_freeresult($result);
// Sort by points desc
arsort( $rich_users_sort);
// Extract the user ids
$rich_users_sort = array_keys($rich_users_sort);
// Create new sorted rich users array
$rich_users_sorted = array();
// Check, if number of users in array is below the set limit
$new_limit = sizeof($rich_users) < $limit ? sizeof($rich_users) : $limit;
for($i = 0; $i < $new_limit; $i++)
{
$rich_users_sorted[] = $rich_users[$rich_users_sort[$i]];
}
// Send to template
foreach($rich_users_sorted as $var)
{
$template->assign_block_vars('rich_user', array(
'USERNAME' => get_username_string('full', $var['user_id'], $var['username'], $var['user_colour']),
'SUM_POINTS' => number_format_points($var['total_points']),
'SUM_POINTS_NAME' => $config['points_name'],
));
}
//Generate the points statistics
$sql_array = array(
'SELECT' => 'SUM(user_points) AS total_points',
'FROM' => array(
USERS_TABLE => 'u',
),
'WHERE' => 'user_points > 0',
);
$sql = $db->sql_build_query('SELECT', $sql_array);
$result = $db->sql_query($sql);
$b_row = $db->sql_fetchrow($result);
$totalpoints = ( $b_row['total_points'] ) ? $b_row['total_points'] : 0;
$lottery_time = $user->format_date(($points_values['lottery_last_draw_time'] + $points_values['lottery_draw_period']), false, true);
// Run Lottery
if ( $points_values['lottery_draw_period'] != 0 && $points_values['lottery_last_draw_time'] + $points_values['lottery_draw_period'] - time() < 0 )
{
if (!function_exists('run_lottery'))
{
include($phpbb_root_path . 'includes/points/functions_points.' . $phpEx);
}
if (!function_exists('send_pm'))
{
include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
}
run_lottery();
}
$template->assign_vars(array(
'TOTAL_BANK_USER' => sprintf($user->lang['POINTS_BUPOINTS_TOTAL'], $bankusers, $points_values['bank_name']),
'TOTAL_BANK_POINTS' => sprintf($user->lang['POINTS_BPOINTS_TOTAL'], number_format_points($bankholdings), $config['points_name'], $points_values['bank_name']),
'TOTAL_POINTS_USER' => sprintf($user->lang['POINTS_TOTAL'], number_format_points($totalpoints), $config['points_name']),
'LOTTERY_TIME' => sprintf($user->lang['POINTS_LOTTERY_TIME'], $lottery_time),
'S_DISPLAY_LOTTERY' => ($points_config['display_lottery_stats']) ? true : false,
'S_DISPLAY_POINTS_STATS' => ($points_config['stats_enable']) ? true : false,
'S_DISPLAY_INDEX' => ($points_values['number_show_top_points'] > 0) ? true : false,
));
}
// Assign index specific vars
$template->assign_vars(array(
'TOTAL_POSTS' => sprintf($user->lang[$l_total_post_s], $total_posts),
'TOTAL_TOPICS' => sprintf($user->lang[$l_total_topic_s], $total_topics),
'TOTAL_USERS' => sprintf($user->lang[$l_total_user_s], $total_users),
'NEWEST_USER' => sprintf($user->lang['NEWEST_USER'], get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),
'UPTIME_DAYS' => $daysindex,
'UPTIME_HOURS' => $hoursindex,
'UPTIME_MINS' => $minsindex,
'UPTIME_SECS' => $secsindex,
'AVG_LOAD0' => $load[0],
'AVG_LOAD1' => $load[1],
'AVG_LOAD2' => $load[2],
// BEGIN Welcome Mod
'S_WELCOME' => $s_welcome,
'S_JOINED_DATE' => $user->lang['JOINED'] . ': ' . $user->format_date($user->data['user_regdate']),
'USER_AVATAR' => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
'MEMBER_FOR' => (!empty($member_for)) ? $user->lang['MEMBER_FOR'] . ' ' . $member_for : '',
// END Welcome Mod
'LEGEND' => $legend,
'BIRTHDAY_LIST' => $birthday_list,
'U_ID' => $user->data['user_id'],
'FORUM_IMG' => $user->img('forum_read', 'NO_UNREAD_POSTS'),
'FORUM_UNREAD_IMG' => $user->img('forum_unread', 'UNREAD_POSTS'),
'FORUM_LOCKED_IMG' => $user->img('forum_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
'FORUM_UNREAD_LOCKED_IMG' => $user->img('forum_unread_locked', 'UNREAD_POSTS_LOCKED'),
'S_LOGIN_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
'S_DISPLAY_BIRTHDAY_LIST' => ($config['load_birthdays']) ? true : false,
'U_MARK_FORUMS' => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums') : '',
'U_MCP' => ($auth->acl_get('m_') || $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=front', true, $user->session_id) : '')
);
if ($config['rt_index'])
{
if (!function_exists('display_recent_topics'))
{
include($phpbb_root_path . 'includes/functions_recenttopics.' . $phpEx);
}
display_recent_topics($config['rt_number'], $config['rt_page_number'], $config['rt_anti_topics'], 'recent_topics', request_var('f', 0), true);
}
//-- mod: Top Stats ---------------------------------------------------------//
include($phpbb_root_path . 'includes/functions_top_stats.' . $phpEx);
//-- end: Top Stats ---------------------------------------------------------//
// Output page
page_header($user->lang['INDEX']);
$template->set_filenames(array(
'body' => 'index_body.html')
);
page_footer();
?>