PDA

View Full Version : PHP not working completly in a mod I'm making..


toonysnn
02-11-2007, 01:37 AM
Alright I was working on a mod (Just started moments ago and I'm almost finished..) and when I use this, half the page doesn't show up when I'm trying to use $_GET to show part custom content (It's where I edit it in) and just use default headers/footers for two templates.
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'test'); // change this depending on your filename
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(
);
// get special data templates from the datastore
$specialtemplates = array(

);
// pre-cache templates used by all actions
$globaltemplates = array(
'vBideo_main',
);
// pre-cache templates used by specific actions
$actiontemplates = array(
);
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################
$navbits = array();
$navbits[$parent] = 'vBideos';
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('vBideo_main') . '");');
?>
<?php
// Our Page
if($_GET ['video'] == "")
{
echo "<table width=100%><tr><td>";
}
// Start Navagation.
if($_GET ['navagate'] == "")
{
echo "<Table width=100% class=tborder border=0 cellspacing=1 cellpadding=6><tr><td class=tcat>Navagation</td></tr><tr><td class=alt2>&nbsp; &middot; &nbsp; <A HREF=vbideo.php?vid=1>Test Video</A></td></tr></table>";
}
// Start middle column.
// Comin' soon

// Finish the page
// Get the footer!
eval('print_output("' . fetch_template('vBideo_footer') . '");');
?>

Guest190829
02-11-2007, 01:44 AM
print_output halts the execution of the script, so you should only be calling that function once.

So nothing is being called after this line:


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


in your script.

There is also no reason to close the php tag and start a new php statement, as you are not embedding it in any html or anything.

Also get in the habit of sanitizing $_GET, $_POST, and $_REQUEST variables with vBulletin's input cleanser $vbulletin->input->clean_array_gpc();

Here is a great article about that:

https://vborg.vbsupport.ru/showthread.php?t=119372&highlight=clean_array_gpc

toonysnn
02-11-2007, 01:50 AM
Ah, I see. Thanks for the help. I was like what in the world when it didn't show the $_GET codes.
I guess I need to just make a custom header :p

Once again, thanks.

EDIT: Ah. I figured out that removing '_output' would let it show the top of the script :D