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'; ?>