By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
428,558 Members | 1,607 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 428,558 IT Pros & Developers. It's quick & easy.

problem with include.

P: n/a
Hello folks.

I have a beginners question.

I have such script:

<?php
$User = $_POST['User'];
$Password = $_POST['Password'];
$Database = $_POST['Database'];

if (isset($User, $Password, $Database))
{
//do something here
}
else {
echo 'One or more of the connection parameters has not been set
up.';
}
?>

Now, I need to use some external functions. I need to include file
'common.php'. But when I do it like this:
<?php
include 'common.php';
$User = $_POST['User'];
$Password = $_POST['Password'];
$Database = $_POST['Database'];

if (isset($User, $Password, $Database))
{
//do something here
}
else {
echo 'One or more of the connection parameters has not been set
up.';
}
?>
nothing happens. I don't get any warning message but my script is not
running.

What is happening?

Thanks for your advice.
Jan 6 '08 #1
Share this Question
Share on Google+
10 Replies


P: n/a
What is happening?

What makes you think that the generally working code is interesting but
the included code that causes the problem is not?

What is your error level? Is display_errors activated? Do you have
Access to the error log of the webserver?
Jan 6 '08 #2

P: n/a
On Jan 6, 12:24 pm, Jonas Werres <jo...@example.orgwrote:
What is happening?

What makes you think that the generally working code is interesting but
the included code that causes the problem is not?

What is your error level? Is display_errors activated? Do you have
Access to the error log of the webserver?

I don't see anything going on, which leads me to believe its working
fine. Add error_reporting(E_ALL | E_STRICT) inside common and run a
function inside the IF block that was icluded in common.

I.E.

// common.php
error_reporting(E_ALL | E_STRICT);

function scream_yayyyy( ) { echo "WOOOOOOOOOOT"; }
// main file
require_once 'common.php';
if( user && password && database ) scream_yayyyy();

Jan 6 '08 #3

P: n/a
On 6 Sty, 21:24, Jonas Werres <jo...@example.orgwrote:
What is happening?

What makes you think that the generally working code is interesting but
the included code that causes the problem is not?
I don't understand.
What is your error level?
I don't know.
Is display_errors activated?
I guess so? Since I had (and saw) errors after runnig scripts.
Do you have
Access to the error log of the webserver?
Yes I had. I've checked them out, but I have found nothing.

Jan 6 '08 #4

P: n/a
I don't understand.
You post code that works. Then you post the same code with an
include-Statement in it. Thats a lot of code which has obviously nothing
to do with your problem, since it works without include and ... well ...
there's not much you can break in an include-Line.
So, just perhaps, it _might_ have to do with the code you included, so
one _could_ think it's worth a try to post it.
>What is your error level?
I don't know.
Erm. Find out?
Yes I had. I've checked them out, but I have found nothing.
Ok? Run again, post it.

Jan 6 '08 #5

P: n/a
Copy common.php, write
echo 'test';
at the bottom, see if that works.
Jan 6 '08 #6

P: n/a
On 6 Sty, 23:17, Jonas Werres <jo...@example.orgwrote:
I don't understand.

You post code that works. Then you post the same code with an
include-Statement in it. Thats a lot of code which has obviously nothing
to do with your problem, since it works without include and ... well ...
there's not much you can break in an include-Line.
So, just perhaps, it _might_ have to do with the code you included, so
one _could_ think it's worth a try to post it.
Now I get it ;)

Here is the common.php code:

<?php
/**
*
* @package phpBB3
* @version $Id: common.php,v 1.214 2007/11/18 15:37:17 naderman Exp $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public
License
*
* Minimum Requirement: PHP 4.3.3
*/

/**
*/

if (!defined('IN_PHPBB'))
{
exit;
}

$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];

// Report all errors, except notices
//error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL | E_STRICT);

/*
* Remove variables created by register_globals from the global scope
* Thanks to Matt Kavanagh
*/
function deregister_globals()
{
$not_unset = array(
'GLOBALS' =true,
'_GET' =true,
'_POST' =true,
'_COOKIE' =true,
'_REQUEST' =true,
'_SERVER' =true,
'_SESSION' =true,
'_ENV' =true,
'_FILES' =true,
'phpEx' =true,
'phpbb_root_path' =true
);

// Not only will array_merge and array_keys give a warning if
// a parameter is not an array, array_merge will actually fail.
// So we check if _SESSION has been initialised.
if (!isset($_SESSION) || !is_array($_SESSION))
{
$_SESSION = array();
}

// Merge all into one extremely huge array; unset this later
$input = array_merge(
array_keys($_GET),
array_keys($_POST),
array_keys($_COOKIE),
array_keys($_SERVER),
array_keys($_SESSION),
array_keys($_ENV),
array_keys($_FILES)
);

foreach ($input as $varname)
{
if (isset($not_unset[$varname]))
{
// Hacking attempt. No point in continuing unless it's a COOKIE
if ($varname !== 'GLOBALS' || isset($_GET['GLOBALS']) ||
isset($_POST['GLOBALS']) || isset($_SERVER['GLOBALS']) ||
isset($_SESSION['GLOBALS']) || isset($_ENV['GLOBALS']) ||
isset($_FILES['GLOBALS']))
{
exit;
}
else
{
$cookie = &$_COOKIE;
while (isset($cookie['GLOBALS']))
{
foreach ($cookie['GLOBALS'] as $registered_var =$value)
{
if (!isset($not_unset[$registered_var]))
{
unset($GLOBALS[$registered_var]);
}
}
$cookie = &$cookie['GLOBALS'];
}
}
}

unset($GLOBALS[$varname]);
}

unset($input);
}

// If we are on PHP >= 6.0.0 we do not need some code
if (version_compare(PHP_VERSION, '6.0.0-dev', '>='))
{
/**
* @ignore
*/
define('STRIP', false);
}
else
{
set_magic_quotes_runtime(0);

// Be paranoid with passed vars
if (@ini_get('register_globals') == '1' ||
strtolower(@ini_get('register_globals')) == 'on' || !
function_exists('ini_get'))
{
deregister_globals();
}

define('STRIP', (get_magic_quotes_gpc()) ? true : false);
}

if (defined('IN_CRON'))
{
$phpbb_root_path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
}

if (!file_exists($phpbb_root_path . 'config.' . $phpEx))
{
die("<p>The config.$phpEx file could not be found.</p><p><a href=
\"{$phpbb_root_path}install/index.$phpEx\">Click here to install
phpBB</a></p>");
}

require($phpbb_root_path . 'config.' . $phpEx);

if (!defined('PHPBB_INSTALLED'))
{
// Redirect the user to the installer
// We have to generate a full HTTP/1.1 header here since we can't
guarantee to have any of the information
// available as used by the redirect function
$server_name = (!empty($_SERVER['SERVER_NAME'])) ?
$_SERVER['SERVER_NAME'] : getenv('SERVER_NAME');
$server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int)
$_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');
$secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ?
1 : 0;

$script_name = (!empty($_SERVER['PHP_SELF'])) ?
$_SERVER['PHP_SELF'] : getenv('PHP_SELF');
if (!$script_name)
{
$script_name = (!empty($_SERVER['REQUEST_URI'])) ?
$_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
}

// Replace any number of consecutive backslashes and/or slashes with
a single slash
// (could happen on some proxy setups and/or Windows servers)
$script_path = trim(dirname($script_name)) . '/install/index.' .
$phpEx;
$script_path = preg_replace('#[\\\\/]{2,}#', '/', $script_path);

$url = (($secure) ? 'https://' : 'http://') . $server_name;

if ($server_port && (($secure && $server_port <443) || (!$secure &&
$server_port <80)))
{
$url .= ':' . $server_port;
}

$url .= $script_path;
header('Location: ' . $url);
exit;
}

if (defined('DEBUG_EXTRA'))
{
$base_memory_usage = 0;
if (function_exists('memory_get_usage'))
{
$base_memory_usage = memory_get_usage();
}
}

// Load Extensions
if (!empty($load_extensions))
{
$load_extensions = explode(',', $load_extensions);

foreach ($load_extensions as $extension)
{
@dl(trim($extension));
}
}

// Include files
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.' .
$phpEx);
require($phpbb_root_path . 'includes/cache.' . $phpEx);
require($phpbb_root_path . 'includes/template.' . $phpEx);
require($phpbb_root_path . 'includes/session.' . $phpEx);
require($phpbb_root_path . 'includes/auth.' . $phpEx);

require($phpbb_root_path . 'includes/functions.' . $phpEx);
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);

require($phpbb_root_path . 'includes/constants.' . $phpEx);
require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);

// Set PHP error handler to ours
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER :
'msg_handler');

// Instantiate some basic classes
$user = new user();
$auth = new auth();
$template = new template();
$cache = new cache();
$db = new $sql_db();

// Connect to DB
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false,
defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);

// We do not need this any longer, unset for safety purposes
unset($dbpasswd);

// Grab global variables, re-cache if necessary
$config = $cache->obtain_config();

// Add own hook handler
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
$phpbb_hook = new phpbb_hook(array('exit_handler',
'phpbb_user_session_handler', 'append_sid', array('template',
'display')));

foreach ($cache->obtain_hooks() as $hook)
{
@include($phpbb_root_path . 'includes/hooks/' . $hook . '.' .
$phpEx);
}

?>


I think that I might not understand correctly the function which
performs
"include". When I include something it is not only compiled but it is
also runned?
In such case, there might be some statement in the included file that
exits from runned script?
What is your error level?
I don't know.

Erm. Find out?
Ok, but how? I am quite net to PHP and server related tasks..
>
Yes I had. I've checked them out, but I have found nothing.

Ok? Run again, post it.
This error log is empty. But maybe it is not the same error log which
you refer to?

Jan 6 '08 #7

P: n/a
On 6 Sty, 23:18, Jonas Werres <jo...@example.orgwrote:
Copy common.php, write
echo 'test';
at the bottom, see if that works.
it works, so i I guess, this statement sopts the script:

echo 'test';
if (!defined('IN_PHPBB'))
{
exit;
}
Jan 6 '08 #8

P: n/a
SoulIntruder wrote:
On 6 Sty, 23:18, Jonas Werres <jo...@example.orgwrote:
>Copy common.php, write
echo 'test';
at the bottom, see if that works.

it works, so i I guess, this statement sopts the script:

echo 'test';
if (!defined('IN_PHPBB'))
{
exit;
}
Amongst other things. The whole script depends on the proper values
being set before it is included.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================

Jan 6 '08 #9

P: n/a
SoulIntruder wrote:
On 6 Sty, 23:17, Jonas Werres <jo...@example.orgwrote:
>>I don't understand.
You post code that works. Then you post the same code with an
include-Statement in it. Thats a lot of code which has obviously nothing
to do with your problem, since it works without include and ... well ...
there's not much you can break in an include-Line.
So, just perhaps, it _might_ have to do with the code you included, so
one _could_ think it's worth a try to post it.

Now I get it ;)
<code snipped>
>

I think that I might not understand correctly the function which
performs
"include". When I include something it is not only compiled but it is
also runned?
In such case, there might be some statement in the included file that
exits from runned script?
When you use include(), PHP includes the file, just as if you had
manually copied and pasted the contents of the file. This means any
code not in a function will be executed.
>>>What is your error level?
I don't know.
Erm. Find out?

Ok, but how? I am quite net to PHP and server related tasks..
>>Yes I had. I've checked them out, but I have found nothing.
Ok? Run again, post it.

This error log is empty. But maybe it is not the same error log which
you refer to?

In this case you probably won't see an error - it's probably the die()
call which is causing your problems. This is not an error.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================

Jan 6 '08 #10

P: n/a
Thanks.

It finally worked after adding:

define('IN_PHPBB', true);

$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require_once($phpbb_root_path . 'common.' . $phpEx);

Thanks for your time.

Jan 6 '08 #11

This discussion thread is closed

Replies have been disabled for this discussion.