PDA

View Full Version : parse error


eclipse11
01-20-2008, 12:35 AM
hello,

i have been working on a basic hide hack that is very simple but does the job... well things seem to be going fine until i get this error:

Parse error: syntax error, unexpected T_STRING in /home/user/public_html/includes/class_bbcode.php(2405) : eval()'d code on line 9

i was checking over the code to see whats the problem and i think it is the showthread_postbit_create (hook location) which is this code:

if (!isset($FIRSTPOSTID) && preg_match("/\[hide\]((?:.*[\n\r]*)*)\[\/hide\]/i",$post['pagetext'],$hide_regs))
{
$hide_access = $db->query_first("SELECT COUNT(*) AS `num` FROM " . TABLE_PREFIX . "post WHERE `userid` = " . $vbulletin->userinfo['userid'] . " AND `threadid` = " . $threadid);

if($hide_access['num'] > 0) {
$message = $hide_regs[1];
$hide_template = 'bbcode_hide';
}
else {
$hide_template = 'bbcode_hide_noaccess';
}
eval('$hide_fetch = "' . fetch_template($hide_template) . '";');
$post['pagetext'] = $postbit_factory->bbcode_parser->do_parse($post['pagetext'],false,true,true,true,true,false);
$post['pagetext_html'] = preg_replace("/\[hide\]((.*[\n\r]*)*)\[\/hide\]/i",$hide_fetch,$post['pagetext']);
}

or in bbcode_fetch_tags (hook location) which is:

function handle_hide(&$parser, $param, $option)
{
global $vbulletin;

$posted = $vbulletin->db->query_first("SELECT userid FROM " . TABLE_PREFIX . "post where threadid = " . $vbulletin->GPC['threadid'] . " AND userid = " . $vbulletin->userinfo['userid'] . "");

if($vbulletin->GPC['threadid'] AND $vbulletin->userinfo['userid'] != $posted['userid'] AND can_moderate($forumid, 'canremoveposts') == false OR $vbulletin->userinfo['userid'] == 0)
{
return "<img src="images/hide.gif" alt="reply to see hidden content" width="192" height="85" />";
}
else
{
return "$param";
}
}
$tag_list['no_option']['hide'] = array
(
'callback' => 'handle_external',
'external_callback' => 'handle_hide',
'strip_empty' => true,
);

well i can't spot the problem, is there any chance someone can help me out and fix this?

thanks

Opserty
01-20-2008, 07:24 AM
return "<img src="images/hide.gif" alt="reply to see hidden content" width="192" height="85" />";


You need to either escape the double quotes or change one of them to single quotes.

return('<img src="images/hide.gif" alt="reply to see hidden content" width="192" height="85" />');