PDA

View Full Version : Sidebar PHP returns error


habboubih83
05-11-2014, 08:04 PM
Hello,

I was trying to put a PHP code to the sidebar and an error occurs that says

Parse error: syntax error, unexpected '<' in /home3/xxxxxx/public_html/forum/includes/block/html.php(95) : eval()'d code on line 1

The code is basically using the get content method from another website, here is the code I am using:

<?php

$url = "http://www.uta.edu/uta/acadcal.php";



function get_url_contents($url){
$crl = curl_init();
$timeout = 5;
curl_setopt ($crl, CURLOPT_URL,$url);
curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
$ret = curl_exec($crl);
curl_close($crl);
return $ret;
}

$str = get_url_contents($url);

// popular people
$explode = explode('<div class="column_body">', $str);
$explode = explode('<div id="column_right">', $explode[1]);
$explode = $explode[0];

// prase semester
preg_match_all('/<h3>([^`]*?)<\/h3>/', $explode, $semester);
$semester = $semester[1][0];

// prase events
preg_match_all('/<td width=\"15%\"> <strong>([^`]*?)<\/strong>/', $explode, $date);
preg_match_all('/<td width=\"81%\">([^`]*?)<\/td>/', $explode, $event);

?>

<table style="width: 100%">
<tr>
<td colspan="2"><strong><?php echo $semester; ?></strong></td>
</tr>

<?php

foreach (array_combine($date[1],$event[1]) as $date =>$event) {
?>

<tr>
<td><?php echo $date; ?></td>
<td><?php echo $event; ?></td>
</tr>

<?php
}



?>

What should I do?

Zachery
05-11-2014, 08:24 PM
You can't use PHP like that in the template system. your widget is super invalid.

habboubih83
05-12-2014, 05:37 AM
You can't use PHP like that in the template system. your widget is super invalid.

Any alternatives?

tbworld
05-12-2014, 05:48 AM
The following reference will help you. You should Google vbulletin.org for further references -- you will find many. :)

https://www.vbulletin.com/docs/html/templates_externalfiles

Other:
https://vborg.vbsupport.ru/showthread.php?t=230455
https://vborg.vbsupport.ru/showthread.php?t=228078

kh99
05-12-2014, 07:58 AM
If you're creating a forum block, you would want to choose "php" as the type, then you should be able to use php. But your php would have to "return" the html as a string instead of outputting it like your code is doing. You could solve that by using ob_start()/ob_end() like in the links tbworld provided, or you could just rewrite the code to build a string instead of using ?> and <?php to include html.