revision:
This means that they are always accessible, regardless of scope. You can access them from any function, class or file without having to do anything special.
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
This variable is used to access global variables from anywhere in the PHP script (also from within functions or methods).
PHP stores all global variables in an array called $GLOBALS[index]. The index holds the name of the variable.
example:
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
echo "<br>"
?>
<?php
$pi = 3.141;
function get_pi() {
return $GLOBALS['pi'];
}
echo get_pi();
?>
example:
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
The following table lists the most important elements that can go inside $_SERVER:
$_SERVER['PHP_SELF'] - returns the filename of the currently executing script;
$_SERVER['GATEWAY_INTERFACE'] - returns the version of the Common Gateway Interface (CGI) the server is using;
$_SERVER['SERVER_ADDR'] -returns the IP address of the host server;
$_SERVER['SERVER_NAME'] - returns the name of the host server (such as www.w3schools.com);
$_SERVER['SERVER_SOFTWARE'] - returns the server identification string (such as Apache/2.2.24);
$_SERVER['SERVER_PROTOCOL'] - returns the name and revision of the information protocol (such as HTTP/1.1);
$_SERVER['REQUEST_METHOD'] - returns the request method used to access the page (such as POST);
$_SERVER['REQUEST_TIME'] - returns the timestamp of the start of the request (such as 1377687496);
$_SERVER['QUERY_STRING'] - returns the query string if the page is accessed via a query string;
$_SERVER['HTTP_ACCEPT'] - returns the Accept header from the current request;
$_SERVER['HTTP_ACCEPT_CHARSET'] - Returns the Accept_Charset header from the current request (such as utf-8,ISO-8859-1);
$_SERVER['HTTP_HOST'] - returns the Host header from the current request;
$_SERVER['HTTP_REFERER'] - returns the complete URL of the current page (not reliable because not all user-agents support it);
$_SERVER['HTTPS'] - is the script queried through a secure HTTP protocol;
$_SERVER['REMOTE_ADDR'] - returns the IP address from where the user is viewing the current page;
$_SERVER['REMOTE_HOST'] - returns the Host name from where the user is viewing the current page;
$_SERVER['REMOTE_PORT'] - returns the port being used on the user's machine to communicate with the web server;
$_SERVER['SCRIPT_FILENAME'] - returns the absolute pathname of the currently executing script;
$_SERVER['SERVER_ADMIN'] - Returns the value given to the SERVER_ADMIN directive in the web server configuration file (if your script runs on a virtual host, it will be the value defined for that virtual host) (such as [email protected]);
$_SERVER['SERVER_PORT'] - Returns the port on the server machine being used by the web server for communication (such as 80);
$_SERVER['SERVER_SIGNATURE'] -Returns the server version and virtual host name which are added to server-generated pages;
$_SERVER['PATH_TRANSLATED'] - Returns the file system based path to the current script;
$_SERVER['SCRIPT_NAME'] -Returns the path of the current script;
$_SERVER['SCRIPT_URI'] - Returns the URI of the current page
example:
<div>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
</div>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
$_POST is also widely used to pass variables.
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
$_GET can also collect data sent in the URL.
example:
example:
<div>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>"
method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="Submit"/>
</form>
<?php
if(sizeof($_FILES) > 0)
print_r($_FILES);
?>
</div>
example:
<?php
print_r($_ENV);
?>
example:
<?php
$browser = "Safari";
setcookie("browser", $browser, time()+60*60*24);
?>
<?php
if (isset($_COOKIE['browser']))
echo htmlspecialchars($_COOKIE['browser']);
?>
A session is usually set after the session_start() function.
example:
<?php
session_start();
$_SESSION['city'] = 'Shillong';
?>