recent.php verhindert phpbb-externen Datenbankzugriff

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Bubbi
Mitglied
Beiträge: 3
Registriert: 22.03.2005 14:10

recent.php verhindert phpbb-externen Datenbankzugriff

Beitrag von Bubbi »

Hallo zusammen,

ich habe das Problem, dass ich in phpbb-externen Seiten, an Stellen nachdem die recent.php (eine ca. 1 Jahr alte Version) includet wurde, offensichtlich nicht mehr auf die Datenbank zugreifen kann, sondern folgenden Fehler bekomme:

Fatal error: Call to undefined function: query()

Die betreffende Zeile lautet:

$db->query("SELECT * FROM tbl_news INNER JOIN tbl_ligen ON tbl_news.bfv = tbl_ligen.bfv WHERE tbl_news.bfv = '$bfv_nr' ORDER BY news_id DESC LIMIT 10");

Zum Gesamtverständnis: die recent.php wird in die phpbb-fremde index.php includet. Ganz am Anfang der index.php wird mysqldb.php includet, die die Verbindung zur Datenbank herstellt.

Vor dem Include der recent.php funktioniert die Datenbankabfrage einwandfrei, nur danach nicht mehr? Wo liegt das Problem? Danke!
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Wie schaut denn diese recent.php aus?
Bubbi
Mitglied
Beiträge: 3
Registriert: 22.03.2005 14:10

Beitrag von Bubbi »

so:

Code: Alles auswählen

<?php
// ############ Edit below ###############################
$length = '35'; // length of topic title
$limit = '5'; // how many topics?
$l_recent = 'recent topics';
$l_started = 'started at';
$l_by = 'by';
$special_forums = '0'; // 0 = no; 1 = yes
$forums = '1,2,3'; // ID of forums; separate them with a comma
$css = 'templates/subSilver/subSilver.css'; //path and name to your css_sheet - optional
// ############ Edit above ###############################


define('IN_PHPBB', true);
$phpbb_root_path = '../board/'; // board folder with! ending mark (if in same folder just './')
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


@$userdata = session_pagestart($user_ip, PAGE_INDEX);
@init_userprefs($userdata);


// #### html output ####
echo "<table width=\"100%\" cellpadding=\"4\" cellspacing=\"0\" border=\"0\" align=\"center\">";
// #### html output ####

$sql = "SELECT post_id FROM ". POSTS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain matched posts list.', '', __LINE__, __FILE__, $sql);
}
$recent_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
	$recent_ids[] = $row['post_id'];
}
$db->sql_freeresult($result);

$recent_forum = ( isset($HTTP_POST_VARS['forum']) ) ? intval($HTTP_POST_VARS['forum']) : -1;
if ( $recent_forum == -1 )
{
        $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
        $ignore_forum_sql = '';
        while( list($key, $value) = each($is_auth_ary) )
        {
                if ( !$value['auth_read'] )
                {
                        $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
                }
        }
        if ( $ignore_forum_sql != '' )
        {
                $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
        }
}
if ( $recent_author == '' && $auth_sql == '' )
{
        $sql = "SELECT topic_id FROM ". POSTS_TABLE ."
                   WHERE post_id IN (" . implode(", ", $recent_ids) . ")
                   $where_sql GROUP BY topic_id";
}
else
{
        $from_sql = POSTS_TABLE ." p";
        if ( $auth_sql != '' )
        {
                $from_sql .= ", ". FORUMS_TABLE ." f";
                $where_sql .= " AND f.forum_id = p.forum_id AND $auth_sql";
        }
        $sql = "SELECT p.topic_id FROM $from_sql
                   WHERE p.post_id IN (" . implode(", ", $recent_ids) . ")
                   $where_sql GROUP BY p.topic_id";
}
if ( !($result = $db->sql_query($sql)) )
{
        message_die(GENERAL_ERROR, 'Could not obtain topic ids', '', __LINE__, __FILE__, $sql);
}

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

$auth_results = implode(', ', $recent_ids);
$where_part1 = ( $special_forums == '0' ) ? 't.topic_id IN ('.$auth_results.')' : 'f.forum_id IN ('.$forums.')';

$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time
           FROM ". TOPICS_TABLE ." t, ". FORUMS_TABLE ." f, ". USERS_TABLE ." u, ". POSTS_TABLE ." p, ". POSTS_TABLE ." p2, ". USERS_TABLE ." u2
           WHERE $where_part1
                      AND t.topic_poster = u.user_id
                      AND f.forum_id = t.forum_id
                      AND p.post_id = t.topic_first_post_id
                      AND p2.post_id = t.topic_last_post_id
                      AND u2.user_id = p2.poster_id
           ORDER BY t.topic_last_post_id DESC LIMIT $limit";
if ( !$result = $db->sql_query($sql) )
{
        message_die(GENERAL_ERROR, 'Could not obtain main information', '', __LINE__, __FILE__, $sql);
}
$line = array();
while( $row = $db->sql_fetchrow($result) )
{
        $line[] = $row;
}
$db->sql_freeresult($result);

$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();
$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();
for($i = 0; $i < count($line); $i++)
{
        $forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $line[$i]['forum_id']);
        $forum_id = $line[$i]['forum_id'];
        $topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $line[$i]['topic_id']);
        $topic_id = $line[$i]['topic_id'];

        $orig_word = array();
        $replacement_word = array();
        obtain_word_list($orig_word, $replacement_word);
        $word_censor = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $line[$i]['topic_title']) : $line[$i]['topic_title'];
        $topic_title = ( strlen($line[$i]['topic_title']) < $length ) ? $word_censor : substr(stripslashes($word_censor), 0, $length) . "...";

        $topic_type = ( $line[$i]['topic_type'] == POST_ANNOUNCE ) ? $lang['Topic_Announcement'] .' ': '';
        $topic_type .= ( $line[$i]['topic_type'] == POST_GLOBAL_ANNOUNCE ) ? $lang['Topic_global_announcement'] .' ': '';
        $topic_type .= ( $line[$i]['topic_type'] == POST_STICKY ) ? $lang['Topic_Sticky'] .' ': '';
        $topic_type .= ( $line[$i]['topic_vote'] ) ? $lang['Topic_Poll'] .' ': '';

        $views = $line[$i]['topic_views'];
        $replies = $line[$i]['topic_replies'];
        if ( ( $replies + 1 ) > $board_config['posts_per_page'] )
        {
                $total_pages = ceil( ( $replies + 1 ) / $board_config['posts_per_page'] );
                $goto_page = ' [ ';
                $times = 1;
                for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page'])
                {
                       // $goto_page .= '<a href="' . append_sid("http://www.domain.de/".$phpbb_root_path."viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id . "&start=$j") . '" ><font size="-6" color="#799FBD">' . $times . '</a>';
                        $goto_page .= '<a href="' . append_sid("http://www.domain.de/board/ftopic$topic_id-$j.html") . '" ><font size="-6" color="#799FBD">' . $times . '</a>';
                        if ( $times == 1 && $total_pages > 4 )
                        {
                                $goto_page .= ' ... ';
                                $times = $total_pages - 3;
                                $j += ( $total_pages - 4 ) * $board_config['posts_per_page'];
                        }
                        else if ( $times < $total_pages )
                        {
                                $goto_page .= ', ';
                        }
                        $times++;
                }
                $goto_page .= ' ] ';
        }
        else
        {
                $goto_page = '';
        }

        if ( $line[$i]['topic_status'] == TOPIC_LOCKED )
        {
                $folder = $images['folder_locked'];
                $folder_new = $images['folder_locked_new'];
        }
        else if ( $line[$i]['topic_type'] == POST_ANNOUNCE )
        {
                $folder = $images['folder_announce'];
                $folder_new = $images['folder_announce_new'];
        }
        else if ( $line[$i]['topic_type'] == POST_GLOBAL_ANNOUNCE )
        {
                $folder = $images['folder_global_announce'];
                $folder_new = $images['folder_global_announce_new'];
        }
        else if ( $line[$i]['topic_type'] == POST_STICKY )
        {
                $folder = $images['folder_sticky'];
                $folder_new = $images['folder_sticky_new'];
        }
        else
        {
                if ( $replies >= $board_config['hot_threshold'] )
                {
                        $folder = $images['folder_hot'];
                        $folder_new = $images['folder_hot_new'];
                }
                else
                {
                        $folder = $images['folder'];
                        $folder_new = $images['folder_new'];
                }
        }

        if ( $userdata['session_logged_in'] )
        {
                if ( $line[$i]['post_time'] > $userdata['user_lastvisit'] )
                {
                        if ( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
                        {
                                $unread_topics = true;
                                if ( !empty($tracking_topics[$topic_id]) )
                                {
                                        if ( $tracking_topics[$topic_id] > $line[$i]['post_time'] )
                                        {
                                                $unread_topics = false;
                                        }
                                }
                                if ( !empty($tracking_forums[$forum_id]) )
                                {
                                        if ( $tracking_forums[$forum_id] > $line[$i]['post_time'] )
                                        {
                                                $unread_topics = false;
                                        }
                                }
                                if ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
                                {
                                        if ( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] > $line[$i]['post_time'] )
                                        {
                                                $unread_topics = false;
                                        }
                                }
                                if ( $unread_topics )
                                {
                                        $folder_image = $folder_new;
                                        $folder_alt = $lang['New_posts'];
                                        $newest_img = '<a href="' . append_sid("http://www.domain.de/".$phpbb_root_path."viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="'.$phpbb_root_path.$images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
                                }
                                else
                                {
                                        $folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
                                        $folder_image = $folder;
                                        $folder_alt = $folder_alt;
                                        $newest_img = '';
                                }
                        }
                        else if ( $line[$i]['post_time'] > $userdata['user_lastvisit'] )
                        {
                                $folder_image = $folder_new;
                                $folder_alt = $lang['New_posts'];
                                $newest_img = '<a href="' . append_sid("http://www.domain.de/".$phpbb_root_path."viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="'. $phpbb_root_path.$images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
                        }
                        else
                        {
                                $folder_image = $folder;
                                $folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
                                $newest_img = '';
                        }
                }
                else
                {
                        $folder_image = $folder;
                        $folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
                        $newest_img = '';
                }
        }
        else
        {
                $folder_image = $folder;
                $folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];
                $newest_img = '';
        }

        $forum_name = $line[$i]['forum_name'];

        $first_time = create_date($board_config['default_dateformat'], $line[$i]['topic_time'], $board_config['board_timezone']);
        $first_author = ( $line[$i]['user_id'] != ANONYMOUS ) ? '<a href="' . append_sid("http://www.domain.de/".$phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '='  . $line[$i]['user_id']) . '">'.$line[$i]['username'].'</a>' : ( ($line[$i]['post_username'] != '' ) ? $line[$i]['post_username'] : $lang['Guest'] );
        $last_time = create_date($board_config['default_dateformat'], $line[$i]['post_time'], $board_config['board_timezone']);
        $last_author = ( $line[$i]['id2'] == ANONYMOUS ) ? ( ($line[$i]['post_username2'] != '' ) ? $line[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : '<!-- <a href="' . append_sid("http://www.domain.de/".$phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '='  . $line[$i]['id2']) . '" > -->' . $line[$i]['user2'] . '<!-- </a> -->';
        $last_url = '<a href="'. append_sid("http://www.domain.de/".$phpbb_root_path."viewtopic.$phpEx?"  . POST_POST_URL . '=' . $line[$i]['topic_last_post_id']) . '#' . $line[$i]['topic_last_post_id'].'"><img src="'. $phpbb_root_path.$images['icon_latest_reply'].'" alt="'.$lang['View_latest_post'].'" border="0" /></a>';

        $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

// #### html output ####
echo "<tr class=\"hell\" valign=\"top\">".
//	"<td width=\"*\"><a href=\"http://www.domain.de/$phpbb_root_path$topic_url\"><span class=\"link2\">$topic_title</a></span> $goto_page<br>".
	"<td width=\"*\"><a href=\"http://www.domain.de/board/ftopic$topic_id.html\"><span class=\"link2\">$topic_title</a></span> $goto_page<br>".

	"&nbsp;<!-- <a href=\"http://www.domain.de/$phpbb_root_path$forum_url\"> -->$forum_name<!-- </a> --></td>".
	"</tr>";

//		"<span class=\"small\"><font color=\"#799FBD\"> by $last_author $replies $lang[Replies] | $views $lang[Views]</font></span><br>".
//		<span class=\"small\"><font color=\"#799FBD\"> by $last_author $replies $lang[Replies] | $views $lang[Views]</font></span>
// 		<font size=\"8px\" color=\"#799FBD\">$replies $lang[Replies]&nbsp; & &nbsp; $views $lang[Views]</span>&nbsp;</td>";
//		<br> $last_time

        // #### html output ####
}

// #### html output ####
echo "</table>";
// #### html output ####


?>
Bubbi
Mitglied
Beiträge: 3
Registriert: 22.03.2005 14:10

Beitrag von Bubbi »

Ich kann in dieser Datei keine Ursache erkennen. Liegt das Problem vielleicht eher in der common.php?
Antworten

Zurück zu „phpBB 2.0: Mod Support“