Solved

Config file or global parm?

Posted on 2004-08-12
3
241 Views
Last Modified: 2013-11-18
Here is what I want to do:

I have a few variables that I want to use in almost everypage/script  how can I set these variables one time the use them as I wish?  I am trying to do somthing simmilar to the $_SERVER['DOCUMENT_ROOT"] call so I can access my root path of home/mysite/htdoocs/.

I would like to define this one time so if i move host I only have to redefine it in the one file.
0
Comment
Question by:bliesveld
3 Comments
 
LVL 55

Expert Comment

by:Jaime Olivares
ID: 11790177
I think a global variable will be enough, but use $_SESSION instead.
I always have a common.php where I put all that I want to share to the entire site. So you can create your common file and write:

session_start();
$_SESSION['MY_ROUTE'] = "/home/mysite/htdocs/";
0
 
LVL 1

Accepted Solution

by:
danutz earned 300 total points
ID: 11790521
I don't think sessions are such a good idea in this case.

Define all these variabiles in a configuration file (something like your_configuration.inc.php) and include that file in every script with a call to require('your_configuration.inc.php');

your_configuration.inc.php
<?php
    $basePath = "/home/site/public_html";
    $anotherVar = "...";
?>

all your script should include this file

<?php
    require('your_configuration.inc.php');
   [...]
?>
0
 
LVL 27

Expert Comment

by:Diablo84
ID: 11791514
I think a combination of both of the above suggestions may be useful

in the root of your site have a file callled settings.php

which will contain something along the lines of the following:

<?php
if ($_SERVER['PHP_SELF'] == "/settings.php") {
 die("you can not access this script directly");
}
$_SESSION['set'] = true;
//load session settings
$_SESSION['setting_name'] = "value";
$_SESSION['another_setting_name'] = "another value";
//etc
?>

Then at the top of each of your pages:

<?php
session_start();
if (!isset($_SESSION['set'])) {
 include($_SERVER['DOCUMENT_ROOT']."/settings.php");
}
?>

The code flow is basically if the session configuration settings are not set then include the file that contains them and assign them to session vars. (NOTE: there is also a check in the settings.php so that if it is accessed directly - as opposed to being included - the script will die).

You can then access the settings anywhere in your site using $_SESSION['setting_name'].

The above example posted danutz will work just as well but it means you will be working with local variables instead, ie. $setting_name rather then $_SESSION['setting_name']. When working with settings i prefer to keep them seperate and use super globals to handle them as then when you modify the script you know exactly which variables are related to settings and which are not. If you use danutz method then i recommend that you add a prefix to the variable names to avoid confusing eg:

$config_name
$config_another_name

etc

Good Luck

|)iablo
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

SASS allows you to treat your CSS code in a more OOP way. Let's have a look on how you can structure your code in order for it to be easily maintained and reused.
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
The viewer will learn the benefit of using external CSS files and the relationship between class and ID selectors. Create your external css file by saving it as style.css then set up your style tags: (CODE) Reference the nav tag and set your prop…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now