View Full Version : PHP Include errors
testbot
03-01-2009, 02:10 PM
hi i wrote the following and it works fine in an iframe or whatever but if i try to use include i get the following errors.
include '/home/***/public_html/community/cforumstats.php';
[26-Feb-2009 08:33:54] PHP Parse error: syntax error, unexpected T_STRING in /home/***/public_html/community/cforumstats.php(43) : eval()'d code on line 1
[26-Feb-2009 08:34:00] PHP Parse error: syntax error, unexpected T_STRING in /home/***/public_html/community/cforumstats.php(43) : eval()'d code on line 1
[01-Mar-2009 09:58:53] PHP Fatal error: Call to a member function query_first_slave() on a non-object in /home/***/public_html/community/includes/functions.php on line 1368
[01-Mar-2009 09:59:27] PHP Fatal error: Call to a member function query_first_slave() on a non-object in /home/***/public_html/community/includes/functions.php on line 1368
[01-Mar-2009 10:02:17] PHP Fatal error: Call to a member function query_first_slave() on a non-object in /home/***//public_html/community/includes/functions.php on line 1368
here's the code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'cforumstats'); // 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(
'cforumstats',
);
// pre-cache templates used by specific actions
$actiontemplates = array(
);
// ######################### REQUIRE BACK-END ############################
chdir('/home/***/public_html/community');
require_once('./global.php');
// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################
$navbits = array();
//$navbits[$parent] = 'cforumstats';
//$navbits = construct_navbits($navbits);
//eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('cforumstats') . '");');
?>
ANY HELP WOULD BE FANTASTIC!!
--------------- Added 1235927532 at 1235927532 ---------------
darn it! why would this work when i load the page in the browser but not using include? :x
works: www.example.com/cforumstats.php
does not work: include '/path/to/cforumstats.php';
TigerC10
03-01-2009, 03:54 PM
You're changing the working directory and not changing it back to what it was... That messes up your includes big time because it doesn't automatically change back.
Do like this:
// ######################### REQUIRE BACK-END ############################
$curdir = getcwd();
chdir('/home/***/public_html/community');
require_once('./global.php');
chdir($curdir);
testbot
03-01-2009, 05:21 PM
thank you for your reply!
i think i'm one step closer now because i only get one error now...
[01-Mar-2009 13:20:13] PHP Fatal error: Call to a member function query_first_slave() on a non-object in /home/***/public_html/community/includes/functions.php on line 1368
Mr-Moo
03-01-2009, 05:47 PM
It appears that you are referencing items before having any reference sheet. Try including the global.php file first.
testbot
03-01-2009, 06:45 PM
new code below still gives this:
PHP Fatal error: Call to a member function query_first_slave() on a non-object in /home/***/public_html/community/includes/functions.php on line 1368
<?php
// ######################### REQUIRE BACK-END ############################
$curdir = getcwd();
chdir('/home/***/public_html/community');
require_once('./global.php');
chdir($curdir);
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'cforumstats'); // 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(
'cforumstats',
);
// pre-cache templates used by specific actions
$actiontemplates = array(
);
// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################
$navbits = array();
//$navbits[$parent] = 'cforumstats';
//$navbits = construct_navbits($navbits);
//eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('cforumstats') . '");');
?>
Mr-Moo
03-01-2009, 07:10 PM
I would recommend you go through your code and look for any imperfections. What the code is saying that it is looking to reference something but there is a no object to look at.
I am out of ideas, I have reviewed the code and see nothing wrong. Since I do not have the other files to review and test I cannot tell you why.
Make sure all files are calling the correct directory. You may have some files calling the incorrect directories of their files.
testbot
03-01-2009, 07:35 PM
the code works otherwise it wouldn't work when it's loaded directly in the browser (http://www.example.com/cforumstats.php).
it's weird. i've been banging my head against the wall for a min.
i'm trying to think if maybe it's conflicting with some modules on the main site or something.
ps- i'm in chicago too ;)
Mr-Moo
03-01-2009, 07:36 PM
Yes, like I said, since you are including it something is not being called correctly. I will see what I can find out for you.
// Edit //
Try removing the "./" in the beginning of Global.php. Your global.php should be in the same directory as your main forum installation. You are moving a directory back to your root folder.
testbot
03-01-2009, 10:00 PM
i thought ../ was moving back a directory and ./ was the same directory.
but i'll give that a try and get back to ya. :)
Lynne
03-01-2009, 10:32 PM
I don't understand how that little php script can produce that error when nothing is even done in there. What is in your template?
testbot
03-01-2009, 10:35 PM
yea, same error.
i removed everything except the necessities and still same error.
<?php
error_reporting(E_ALL & ~E_NOTICE);
// # DEFINE IMPORTANT CONSTANTS
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'cforumstats');
// # REQUIRE BACK-END
$curdir = getcwd();
chdir('/home/***/public_html/community');
require_once('global.php');
// # START MAIN SCRIPT
$navbits = array();
eval('print_output("' . fetch_template('cforumstats') . '");');
chdir($curdir);
?>
Lynne
03-01-2009, 10:38 PM
You have removed necessary stuff. You should start off with one of these (get it working with a basic template) and add from there - How to create your own vBulletin-powered page! (uses vB templates) (https://vborg.vbsupport.ru/showthread.php?t=62164) or [How-To] vBulletin API Basics: Creating Custom Pages & Misc. (https://vborg.vbsupport.ru/showthread.php?t=98009)
testbot
03-01-2009, 11:16 PM
You have removed necessary stuff. You should start off with one of these (get it working with a basic template) and add from there - How to create your own vBulletin-powered page! (uses vB templates) (https://vborg.vbsupport.ru/showthread.php?t=62164) or [How-To] vBulletin API Basics: Creating Custom Pages & Misc. (https://vborg.vbsupport.ru/showthread.php?t=98009)
both ways work. i used that link to create it originally. you can see it in the first post.
either way, this link works http://www.ampprod.com/community/cforumstats.php
but if i do 'include /home/***/public_html/community/cforumstats.php' or add the code directly into a module on my main site it gets the following error.
PHP Fatal error: Call to a member function query_first_slave() on a non-object in /home/***/public_html/community/includes/functions.php on line 1368
Lynne
03-01-2009, 11:21 PM
That query is right after a plugin. Have you tried disabling your plugins to see if that fixes the issue?
testbot
03-01-2009, 11:56 PM
That query is right after a plugin. Have you tried disabling your plugins to see if that fixes the issue?
sorry if this is a dumb question i'm not sure what you mean. what query is right after what plugin?
Lynne
03-02-2009, 03:21 AM
The one you are getting an error on...
PHP Fatal error: Call to a member function query_first_slave() on a non-object in /home/***/public_html/community/includes/functions.php on line 1368
Line 1368 of functions.php is where the problem is and this is the line:
$user = $vbulletin->db->query_first_slave("
This is just above there:
$hook_query_fields = $hook_query_joins = '';
($hook = vBulletinHook::fetch_hook('fetch_userinfo_query')) ? eval($hook) : false;
Dismounted
03-02-2009, 05:00 AM
Please post the actual PHP file you are using (and any associated templates).
testbot
03-02-2009, 05:19 AM
Template (cforumstats)
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]" style="background-image:none;padding:0px;margin:0px;background-color:none;">
<head>
<title></title>
$headinclude
</head>
<body style="background-image:none;padding:0px;margin:0px;background-color:#000000;">
<div style="width:100%;background-color:none;">
$cybtopstats
</div>
</body>
</html>
attached 'cforumstats.php'
working url: http://www.ampprod.com/community/cforumstats.php
testbot
03-03-2009, 02:12 PM
Template (cforumstats)
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]" style="background-image:none;padding:0px;margin:0px;background-color:none;">
<head>
<title></title>
$headinclude
</head>
<body style="background-image:none;padding:0px;margin:0px;background-color:#000000;">
<div style="width:100%;background-color:none;">
$cybtopstats
</div>
</body>
</html>
attached 'cforumstats.php'
working url: http://www.ampprod.com/community/cforumstats.php
nothing?
Lynne
03-03-2009, 03:02 PM
So you have a page that works fine as a standalone page. Exactly what code are you using to put it somewhere else? What hook location, what code, etc.
testbot
03-03-2009, 03:56 PM
So you have a page that works fine as a standalone page. Exactly what code are you using to put it somewhere else? What hook location, what code, etc.
if i take that page and include it in our cms like the following i get that error.
<div>
<?php include '../community/cforumstats.php'; ?>
</div>
or if i add the code directly into the page like:
<div>
<?php
error_reporting(E_ALL & ~E_NOTICE);
// # DEFINE IMPORTANT CONSTANTS
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'cforumstats');
// # REQUIRE BACK-END
$curdir = getcwd();
chdir('/home/***/public_html/community');
require_once('global.php');
// # START MAIN SCRIPT
$navbits = array();
eval('print_output("' . fetch_template('cforumstats') . '");');
chdir($curdir);
?>
</div>
for an update, i saw in the german vbulletin forum someone had the same problem but i can't read german so i don't know if it was solved or not. it looked like they were talking about cookeis.
Marco van Herwaarden
03-04-2009, 07:18 AM
You should ask at the support thread/site of your CMS.
Mr-Moo
03-04-2009, 03:51 PM
<?php include '../community/cforumstats.php'; ?>
That is your answer, you have to remove the "../". PHP does not call directories like HTML or other languages do. Remove that small snippet and put your full root path and it should work :). Or at least that is my understanding, I remember when I transferred from HTML to PHP I was baffled at why my images and whatnot were not being displayed properly. I was told it was due to the ../ not moving directories as it does with HTML.
Should look like:
<? include "/home/***/public_html/community/cforumstats.php';" ?>
testbot
03-06-2009, 01:30 AM
You should ask at the support thread/site of your CMS.
they'll tell me it's not their code causing the problem. i'll give it a try though.
<?php include '../community/cforumstats.php'; ?>
That is your answer, you have to remove the "../". PHP does not call directories like HTML or other languages do. Remove that small snippet and put your full root path and it should work :). Or at least that is my understanding, I remember when I transferred from HTML to PHP I was baffled at why my images and whatnot were not being displayed properly. I was told it was due to the ../ not moving directories as it does with HTML.
Should look like:
<? include "/home/***/public_html/community/cforumstats.php';" ?>
no luck. same error. ;)
Dismounted
03-06-2009, 03:50 AM
Which error(s) are you getting specifically? The same few on the first page?
testbot
03-06-2009, 11:36 AM
first, thanks for everyone's replies so far. some boards will just ignore you or just tell you to move on. i appreciate everyone's input so far.
i get this error:
Fatal error: Call to a member function query_first_slave() on a non-object in /home/***/public_html/community/includes/functions.php on line 1368
Dismounted
03-07-2009, 10:30 AM
That error usually occurs when vBulletin's global.php is included inside of a function.
testbot
03-07-2009, 12:25 PM
so since it's not inside a function withing my cforumstats.php file you think the cms is executing a function to include that code maybe? did that make sense?
--------------- Added 1236457601 at 1236457601 ---------------
actually, it doesn't seem to work anywhere outside the forum directory. i don't get any errors when i try outside the cms but the page just won't load. i think it might have to do with the 'Product' i'm trying to call.
$cybtopstats == Cyb - Advanced Forum Statistics (https://vborg.vbsupport.ru/showthread.php?t=201274&page=34).
not sure why the developer keeps ignoring my questions when it says in the description that what i'm trying to do can be done and that it's a supported Mod.
Dismounted
03-08-2009, 04:59 AM
Try adding this to the top of your headinclude template:
<base href="http://www.yoursite.com/forum" />
testbot
03-22-2009, 11:37 AM
i seem to have this working anywhere outside the forum directory now.
it still won't work in the only place i need it though and that's the cms.
i'm guessing the cms is forcing it to be a nested function. is there anyway to get around the nested function thing?
thanks for stickin with me on this. :)
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.