PDA

View Full Version : require_once breaking custom page...


kontrabass
02-22-2006, 02:34 PM
With VB 3.0, I used this php script to display the contents of a custom template:


<?php

require_once("/home/talkbass/public_html/tab/tabscript.php");


// ## Changes Directory so it can accesss vBulletin IF we are outside the forums folder, if not this is not nessary ##
chdir("/home/talkbass/public_html/forum/");

// ## Error Reporting ( we use error reporting in php so we can control the display of error messages
// ## we will use this because all vBulletin files follow the same error reporting rules) ##
error_reporting(E_ALL & ~E_NOTICE);

// ## this action here cache's the templates so that everytime their needed a querry wont be needed to run
// ## the names in there are just the template names :), there must be a comma after everyone but the last ##
$globaltemplates = array('content_tab');

// ## Grabs global.php this grabs vbulletins global.php so we can use the most basic of vBulletins functions ##
require_once("./global.php");
// ## this calls to print out one main template ##

eval('print_output("' . fetch_template('content_tab') . '");');



However, now with 3.5.3, the script above only outputs the template content if a user is logged into the forums. AND, if I take out the "require_once("/home/talkbass/public_html/tab/tabscript.php");" line, it works fine for logged-in, and non-logged-in users alike. Wierd! Any ideas why? I need that require line!

TIA!

Paul

paulomt1
02-23-2006, 02:03 AM
I've the same problem.

Marco van Herwaarden
02-23-2006, 08:12 AM
Difficult to anser without knowing the contents of that file.

kontrabass
03-01-2006, 02:20 PM
The file is just basic php code, some snippits:


if ($action==bandlist)
{
$output = "<b>Bands:</b>";
$output .= "<br><br>";
$tabdir = "/home/talkbass/tab/$letterdir";
if(!($dp = opendir($tabdir))) die ("Cannot open $tabdir");
while($file = readdir($dp)) $filenames[] = $file;
closedir($dp);

sort($filenames);
for($i=0; $i < count($filenames); $i++)
{

if($filenames[$i] != '.' && $filenames[$i] != '..')
$output .= "<a href=\"http://www.talkbass.com/tab/tabview.php?action=songlist&letterdir=$letterdir&band=$filenames[$i]\">$filenames[$i]</a><br>";
}


Basically it assignes text strings to $output variables, these vars are then displayed via the template.

Marco van Herwaarden
03-02-2006, 07:30 AM
Try placing the require of your script after the global.php.

kontrabass
03-02-2006, 02:06 PM
Try placing the require of your script after the global.php.

No luck. This breaks the page for everyone.

kontrabass
04-18-2006, 04:03 PM
bump? Any ideas before I give up? :( :)