Jump to content


Photo

O Que Tem De Errado?


  • Faça o login para participar
3 replies to this topic

#1 Shio

Shio

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 11/02/2005, 20:33

Eu tenho um fórum do phpBB e tenho um Mod que faz com que os posts que escolho apareçam na index do meu site, só que os mod tem duas etapas, a primeira funciona, que é os posts do forum q escolho apareçam na minha index, a segunda é o que os posts de um determinado forum apareça na minha index em forma de posts mesmo.
O que tem de erro nesse script???
[quote]<?php
// ############        Edit below        ########################################
$topic_length = '30'; // length of topic title
$topic_limit = '5'; // limit of displayed topics
$special_forums = '0'; // specify forums ('0' = no; '1' = yes)
$forum_ids = '';  // IDs of forums; separate them with a comma
$content = '300'; // length of displayed text
// ############        Edit above        ########################################

$sql_auth = "SELECT * FROM ". FORUMS_TABLE;
if( !$result_auth = $db->sql_query($sql_auth) )
{
message_die(GENERAL_ERROR, 'could not query forums information.', '', __LINE__, __FILE__, $sql_auth);
}
$forums = array();
while( $row_auth = $db->sql_fetchrow($result_auth) )
{
$forums[] = $row_auth;
}
$db->sql_freeresult($result_auth);

$is_auth_ary = array();
$is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);

$except_forums = '\'start\'';
for( $f = 0; $f < count($forums); $f++ )
{
if( (!$is_auth_ary[$forums[$f]['forum_id']]['auth_read']) || (!$is_auth_ary[$forums[$f]['forum_id']]['auth_view']) )
{
  if( $except_forums == '\'start\'' )
  {
  $except_forums = $forums[$f]['forum_id'];
  }
  else
  {
  $except_forums .= ','. $forums[$f]['forum_id'];
  }
}
}

$where_forums = ( $special_forums == '0' ) ? 't.forum_id NOT IN ('. $except_forums .')' : 't.forum_id NOT IN ('. $except_forums .') AND t.forum_id IN ('. $forum_ids .')';
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time, pt.*
FROM ". TOPICS_TABLE ." t, ". FORUMS_TABLE ." f, ". USERS_TABLE ." u, ". POSTS_TABLE ." p, ". POSTS_TABLE ." p2, ". USERS_TABLE ." u2, ". POSTS_TEXT_TABLE ." pt
WHERE $where_forums 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 AND t.topic_last_post_id = pt.post_id
ORDER BY t.topic_last_post_id DESC LIMIT $topic_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);
 
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);

$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_id = $line[$i]['forum_id'];
$forum_url = append_sid("viewforum.$phpEx?". POST_FORUM_URL ."=$forum_id");
$topic_id = $line[$i]['topic_id'];
$topic_url = append_sid("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id");

$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']) < $topic_length ) ? $word_censor : substr(stripslashes($word_censor), 0, $topic_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("viewtopic.$phpEx?". POST_TOPIC_URL ."=". $topic_id ."&amp;start=$j") .'">'. $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'];
  }
}

$newest_img = '';
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("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id&amp;view=newest") .'"><img src="'. $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_new;
    $folder_alt = ( $line[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['New_posts'];
    $newest_img = '<a href="'. append_sid("viewtopic.$phpEx?". POST_TOPIC_URL ."=$topic_id&amp;view=newest") .'"><img src="'. $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 = '';
}
   
$first_time = create_date($board_config['default_dateformat'], $line[$i]['topic_time'], $board_config['board_timezone']);
$first_author = ( $line[$i]['first_poster_id'] != ANONYMOUS ) ? '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&amp;". POST_USERS_URL .'='. $line[$i]['first_poster_id']) .'">'. $line[$i]['first_poster'] .'</a>' : ( ($line[$i]['first_poster_name'] != '' ) ? $line[$i]['first_poster_name'] : $lang['Guest'] );
$last_time = create_date($board_config['default_dateformat'], $line[$i]['post_time'], $board_config['board_timezone']);
$last_author = ( $line[$i]['last_poster_id'] != ANONYMOUS ) ? '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&amp;". POST_USERS_URL .'='. $line[$i]['last_poster_id']) .'">'. $line[$i]['last_poster'] .'</a>' : ( ($line[$i]['last_poster_name'] != '' ) ? $line[$i]['last_poster_name'] : $lang['Guest'] );
$last_url = '<a href="'. append_sid("viewtopic.$phpEx?". POST_POST_URL .'='. $line[$i]['topic_last_post_id']) .'#'. $line[$i]['topic_last_post_id'] .'"><img src="'. $images['icon_latest_reply'] .'" alt="'. $lang['View_latest_post'] .'" title="'. $lang['View_latest_post'] .'" border="0" /></a>';

include_once($phpbb_root_path . 'includes/bbcode.'.$phpEx);
$post_text = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $post_text);
$post_text = $line[$i]['post_text'];
$word_censor = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $post_text) : $post_text;
$post_text = ( strlen($post_text) < $content ) ? $word_censor : substr(stripslashes($word_censor), 0, $content) .'...';
$post_text = preg_replace('#(<)([\/]?.*?)(>)#is', '', $post_text);
$pattern = array ('/\[quote:=\'/', '/\'\]/', '/\[quote:\]/', '/\[\/quote:\]/', '/\[code:(.*?)\]/', '/\[\/code:\]/', '/\[(.*?)\]/si');
$replace = array ('', '<b>', '</b>:: ', '<b>Zitat: </b>', '</br>', '<b>Code: </b>', '</br>', '');
$post_text = preg_replace($pattern, $replace, $post_text);
$post_text = ( $include == '1' ) ? $post_text : smilies_pass($post_text);
$post_text = str_replace("\n", "\n<br />\n", $post_text);
$post_text = make_clickable($post_text);

$template->assign_block_vars('recent', array(
  'ROW_CLASS' => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],
  'POST_TEXT' => $post_text,
  'TOPIC_TITLE' => $topic_title,
  'TOPIC_TYPE' => $topic_type,
  'GOTO_PAGE' => $goto_page,
  'L_VIEWS' => $lang['Views'],
  'VIEWS' => $views,
  'L_REPLIES' => $lang['Replies'],
  'REPLIES' => $replies,
  'NEWEST_IMG' => $newest_img,
  'TOPIC_FOLDER_IMG' => $folder_image,
  'TOPIC_FOLDER_ALT' => $folder_alt,
  'FIRST_TIME' => sprintf($lang['Recent_first'], $first_time),
  'FIRST_AUTHOR' => sprintf($lang['Recent_first_poster'], $first_author),
  'LAST_TIME' => $last_time,
  'LAST_AUTHOR' => $last_author,
  'LAST_URL' => $last_url,
  'FORUM_NAME' => $line[$i]['forum_name'],
  'U_VIEW_FORUM' => $forum_url,
  'U_VIEW_TOPIC' => $topic_url,
));
}

$template->assign_vars(array(
'L_RECENT_TITLE' => $topic_limit .' '. $lang['Recent_topics'],
'L_RECENT_BY' => $lang['Recent_first_poster'],
'L_RECENT_STARTED' => $lang['Recent_first'],
));

?>[/quote]
Quando entro no site aparece a seguinte mensagem:
[quote]Fatal error:Call to a member function on a non-object in /home/www/goujiteam.freefronthost.com/recent2.php on line 11[/quote]
Por favor me ajudem, preciso mto da ajuda de vcs, desde já agradeço!!

Meu Fórum Aqui
Meu Site Aqui

Edição feita por: Shio, 11/02/2005, 20:40.


#2 brunoalves

brunoalves

    Linux user #392843

  • Ex-Admins
  • 1018 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 11/02/2005, 21:23

o objeto $db não foi declarado em nenhum lugar do código, não está faltando nenhum include não?

Abraço

#3 Shio

Shio

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 11/02/2005, 22:53

o objeto $db não foi declarado em nenhum lugar do código, não está faltando nenhum include não?

Abraço

Como assim declarado?? desculpa minha ignorancia mas nao manjo mto de php, agora sobre o include, seria talvez esse aki???

<?php
// ############        Edit below        ########################################
$topic_length = '30'; // length of topic title
$topic_limit = '5'; // limit of displayed topics
$special_forums = '0'; // specify forums ('0' = no; '1' = yes)
$forum_ids = '';  // IDs of forums; separate them with a comma

$config_path = '/forum/'; // path to config.php
$root_path = '/forum/';  // link path
// ############        Edit above        ########################################

$path = dirname(__FILE__);
include_once($path.$config_path .'config.php');
mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Unable to select server.');
mysql_select_db($dbname) OR die('Unable to select database.');

// ############## output ##############
echo '<table width="100%" cellpadding="1" cellspacing="1" border="0" align="center">
          <tr>
                <th colspan="2">'. $topic_limit .' last topics</th>
          </tr>';
// ############## output ##############

$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id IN ('. $forum_ids .') AND ';
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
WHERE $where_forums 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 $topic_limit";
$result = mysql_query($sql);
if( !$result )
{
die('SQL Statement Error: '. mysql_error());
exit();
}

$line = array();
while( $row = mysql_fetch_array($result) )
{
$line[] = $row;
}

for( $i = 0; $i < count($line); $i++ )
{
$forum_id = $line[$i]['forum_id'];
$forum_url = $root_path .'viewforum.php?f='. $forum_id;
$topic_id = $line[$i]['topic_id'];
$topic_url = $root_path .'viewtopic.php?t='. $topic_id;

$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';

$topic_type =  ( $line[$i]['topic_type'] == '2' ) ? 'Announcement ': '';
$topic_type .= ( $line[$i]['topic_type'] == '3' ) ? 'Global Announcement ': '';
$topic_type .= ( $line[$i]['topic_type'] == '1' ) ? 'Sticky ': '';
$topic_type .= ( $line[$i]['topic_vote'] ) ? 'Poll ': '';

$views = $line[$i]['topic_views'];
$replies = $line[$i]['topic_replies'];

$first_time = date('d.m.Y', $line[$i]['topic_time']);
$first_author = ( $line[$i]['first_poster_id'] != '-1' ) ? '<a href="'. $root_path .'profile.php?mode=viewprofile&amp;u='. $line[$i]['first_poster_id'] .'">'. $line[$i]['first_poster'] .'</a>' : ( ($line[$i]['first_poster_name'] != '' ) ? $line[$i]['first_poster_name'] : 'guest' );
$last_time = date('d.m.Y', $line[$i]['post_time']);
$last_author = ( $line[$i]['last_poster_id'] != '-1' ) ? $line[$i]['last_poster'] : ( ($line[$i]['last_poster_name'] != '' ) ? $line[$i]['last_poster_name'] : 'guest' );
$last_url = '<a href="'. $root_path .'viewtopic.php?p='. $line[$i]['topic_last_post_id'] .'#'. $line[$i]['topic_last_post_id'] .'">'. $last_author .'</a>';

// ############## output ##############
echo '<tr>
                        <td valign="top" nowrap="nowrap">'. $topic_type .'<a href="'. $topic_url .'">'. $topic_title .'</a></td>
                    </tr>
                    <tr>
                        <td><a href="'. $forum_url .'">'. $line[$i]['forum_name'] .'</a>: '. $last_url .' '. $last_time .'</td>
                    </tr>';
// ############## output ##############
}

echo '</table>';
mysql_close();
?>

Aguardo resposta

#4 juninhoguitarr

juninhoguitarr

    12 Horas

  • Usuários
  • 250 posts
  • Sexo:Masculino
  • Localidade:campo grande - ms
  • Interesses:php/mysql/apache

Posted 19/02/2005, 12:53

o objeto $db não foi declarado em nenhum lugar do código, não está faltando nenhum include não?

Abraço

Como assim declarado?? desculpa minha ignorancia mas nao manjo mto de php, agora sobre o include, seria talvez esse aki???

<?php
// ############         Edit below         ########################################
$topic_length = '30'; // length of topic title
$topic_limit = '5'; // limit of displayed topics
$special_forums = '0'; // specify forums ('0' = no; '1' = yes)
$forum_ids = '';  // IDs of forums; separate them with a comma

$config_path = '/forum/'; // path to config.php
$root_path = '/forum/';  // link path
// ############         Edit above         ########################################

$path = dirname(__FILE__);
include_once($path.$config_path .'config.php');
mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Unable to select server.');
mysql_select_db($dbname) OR die('Unable to select database.');

// ############## output ##############
echo '<table width="100%" cellpadding="1" cellspacing="1" border="0" align="center">
          <tr>
                <th colspan="2">'. $topic_limit .' last topics</th>
          </tr>';
// ############## output ##############

$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id IN ('. $forum_ids .') AND ';
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
WHERE $where_forums 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 $topic_limit";
$result = mysql_query($sql);
if( !$result )
{
die('SQL Statement Error: '. mysql_error());
exit();
}

$line = array();
while( $row = mysql_fetch_array($result) )
{
$line[] = $row;
}

for( $i = 0; $i < count($line); $i++ )
{
$forum_id = $line[$i]['forum_id'];
$forum_url = $root_path .'viewforum.php?f='. $forum_id;
$topic_id = $line[$i]['topic_id'];
$topic_url = $root_path .'viewtopic.php?t='. $topic_id;

$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';

$topic_type =  ( $line[$i]['topic_type'] == '2' ) ? 'Announcement ': '';
$topic_type .= ( $line[$i]['topic_type'] == '3' ) ? 'Global Announcement ': '';
$topic_type .= ( $line[$i]['topic_type'] == '1' ) ? 'Sticky ': '';
$topic_type .= ( $line[$i]['topic_vote'] ) ? 'Poll ': '';

$views = $line[$i]['topic_views'];
$replies = $line[$i]['topic_replies'];

$first_time = date('d.m.Y', $line[$i]['topic_time']);
$first_author = ( $line[$i]['first_poster_id'] != '-1' ) ? '<a href="'. $root_path .'profile.php?mode=viewprofile&amp;u='. $line[$i]['first_poster_id'] .'">'. $line[$i]['first_poster'] .'</a>' : ( ($line[$i]['first_poster_name'] != '' ) ? $line[$i]['first_poster_name'] : 'guest' );
$last_time = date('d.m.Y', $line[$i]['post_time']);
$last_author = ( $line[$i]['last_poster_id'] != '-1' ) ? $line[$i]['last_poster'] : ( ($line[$i]['last_poster_name'] != '' ) ? $line[$i]['last_poster_name'] : 'guest' );
$last_url = '<a href="'. $root_path .'viewtopic.php?p='. $line[$i]['topic_last_post_id'] .'#'. $line[$i]['topic_last_post_id'] .'">'. $last_author .'</a>';

// ############## output ##############
echo '<tr>
                        <td valign="top" nowrap="nowrap">'. $topic_type .'<a href="'. $topic_url .'">'. $topic_title .'</a></td>
                    </tr>
                    <tr>
                        <td><a href="'. $forum_url .'">'. $line[$i]['forum_name'] .'</a>: '. $last_url .' '. $last_time .'</td>
                    </tr>';
// ############## output ##############
}

echo '</table>';
mysql_close();
?>

Aguardo resposta

declarado quer dizer que vc não direcionou pra nenhum db, quero dizer que vc naum direcionou para nenhum banco de dados.
Hospedamos seu site Gratuítamente: Programa de Parceirias.
PHP 5.x / MYSQL 5.x / Python, Perl
Superhospedagens.com




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq