PDA

View Full Version : Non-object?


sheppardzwc
12-05-2009, 05:01 AM
What am I doing wrong here? I required ./global.php... I thought that initialized all the classes I needed automatically?

<?php

require_once('./global.php');
error_reporting(E_ALL & ~E_NOTICE);
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'referral');

// functions

############
# Security #
############

function produceError($error) {
$error = strval($error);
die('REFERRAL_ERROR: ' . $error . ' <strong>[KILLSCRIPT=true]</strong>');
}

function validate($type, $validate) {
$validate_type = $type;
$validate_tovalidate = $validate;
return $vbulletin->input->clean($validate_tovalidate, $validate_type);
}

function validateSuper($type, $type2, $validate) {
$validate_super_type = $type;
$validate_super_type2 = $type2;
$tovalidatesuper = $validate;
$vbulletin->input->clean_gpc($validate_super_type, $tovalidatesuper, $validate_super_type2);
return $vbulletin->GPC[$tovalidatesuper];
}

########
# Main #
########

function buildEnv() {
define('ID', $_REQUEST['id']);
if($_REQUEST['do'] == 'register') {
define('REGISTER', true);
} else {
define('REGISTER', false);
}
define('DEV', $dev_enabled);
define('EMER', $emer_shutdown);
}

function getUser($id) {
$getuser_id = intval($id);
$getuser_sql = $db->query_read("SELECT username FROM user WHERE userid='$getuser_id'");
$getuser_result = $db->fetch_array($getuser_sql);
if($getuser_result['username']) {
return $getuser_result['username'];
} else {
return 0;
produceError('Could not find username from userid ' . $getuser_id);
}
}

?>


(not the whole script, just showing where I get the problem)

Fatal error: Call to a member function query_read() on a non-object in /home/blackhat/public_html/forum/referral.php on line 59

kh99
12-05-2009, 05:05 AM
Just had this same one happen a little while ago - you need a "global $vbulletin;" in any function where you use it.

sheppardzwc
12-05-2009, 05:07 AM
Just had this same one happen a little while ago - you need a "global $vbulletin;" in any function where you use it.
Well that's annoying. Okay, thanks.