Today I wanted to write a simple php script, but I got some annoying errors.
I just simply include the config.php file and try to access the root_path variable without success. There are also 2 other warnings that only show when I include the config.php file.
The files are running on the newest xampp.
smarty_setup.php :
<?php
require('config.php');
require($root_path . '/libs/Smarty.class.php');
class FileHosting extends Smarty {
function __construct()
{
parent::__construct();
$this->setTemplateDir($root_path . '/templates/');
$this->setCompileDir($root_path . '/templates_c/');
$this->setConfigDir($root_path . '/configs/');
$this->setCacheDir($root_path . '/cache/');
$this->caching = Smarty::CACHING_LIFETIME_CURRENT;
$this->assign('app_name', 'File Hosting');
}
}
?>
config.php :
<?php
$root_path = 'D:/xampp/htdocs/example';
$db_user = 'xxx';
$db_password = 'xxx';
$db_name = 'xxx';
$db_host = 'xxx';
$facebook_appID = 'xxx';
$facebook_secret = 'xxx';
?>
Errors :
Deprecated: Assigning the return value of new by reference is deprecated in D:\xampp\php\PEAR\Config.php on line 80
Deprecated: Assigning the return value of new by reference is deprecated in D:\xampp\php\PEAR\Config.php on line 166
Notice: Undefined variable: root_path in D:\xampp\htdocs\example\includes\smarty_setup.php on line 3
Notice: Undefined variable: root_path in D:\xampp\htdocs\example\includes\smarty_setup.php on line 11
Notice: Undefined variable: root_path in D:\xampp\htdocs\example\includes\smarty_setup.php on line 12
Notice: Undefined variable: root_path in D:\xampp\htdocs\example\includes\smarty_setup.php on line 13
Notice: Undefined variable: root_path in D:\xampp\htdocs\example\includes\smarty_setup.php on line 14
Thanks for helping me.
Inside your class, you are accessing
$root_path, which is at the global scope. Pass it into the constructor:The first of these errors is puzzling, as it would indicate that
config.phpwas not properly included.If those are indeed the only contents of
config.php(and you have not set those variables inside a function for example), you ought not get that firstroot_pathnotice.Update
If you are failing to include
config.phpwith a relative path, make sure:config.phpis in the same directory as the file you are attempting to include it frominclude_pathto be sure it includes the current directory.:.