PHP SuperGlobals

PHP SuperGlobals

PHP SuperGlobals

PHP SuperGlobal, Hope this article find you well.

Today we will learn about the PHP SuperGlobal variables.

So read the article till the end and i will make sure you know everything about PHP superGlobal variables.

Before i proceed, i would request you to do SUBSCRIBE to ShoutMe360.com so that you can get regular updates.

So lets start…..

SuperGlobals variables were introduced in PHP 4.1.0, and are built-in variables that are always available in all scopes.

PHP Global Variables – SuperGlobals

There are several predefined variables in PHP known as “superglobals”, which means that they are always accessible on every page and in all scopes and you can also access them from any function, class or file without having to do anything special.

The PHP superglobal variables are:

$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

In this article i will explain some of the superglobals, and the rest i will explain in later articles.

PHP $GLOBALS

$GLOBALS is a PHP super global variable and it is used to access global variables from anywhere in the PHP script regardless of scope i.e. it can be used from within functions or methods.

PHP stores all global variables in an array called $GLOBALS[index] where ‘index’ holds the name of the variable.

Below is the example to show, how to use the super global variable $GLOBALS:

<?php
$a = 80;
$b = 20;

function add() {
$GLOBALS[‘c’] = $GLOBALS[‘x’] + $GLOBALS[‘y’];
}

add();
echo $c;
?>

 PHP $_SERVER

$_SERVER is a PHP super global variable which holds information about headers, paths, and script locations.

The following table lists the most important elements that can go inside $_SERVER:

Element/CodeDescription
$_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.ShoutMe360.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 text@ShoutMe360.com)
$_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

PHP $_GET

PHP $_GET is used to collect form data after submitting an HTML form with method=”get”.
$_GET usually used to collect data sent in the URL.
Let us suppose we have a HTML page that contains a hyperlink with parameters:

<html>
<body>

<a href=”get.php?subject=PHP&web=shoutme360.com”>Test GET</a>

</body>
</html>

Now when a user clicks on the link “Test GET”, the parameters “subject” and “web” are sent to “get.php” via URL, and you can access their values in “get.php” with $_GET varible.

The example below shows the code in “get.php”:

Example

<html>
<body>

<?php
echo “Learn ” . $_GET[‘subject’] . ” at ” . $_GET[‘web’];
?>

</body>
</html>

PHP $_POST

PHP $_POST is the most used method to collect data after submitting an HTML form with method=”post”.

See below example:

<html>
<body>

<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”) {
$name = $_POST[‘fname’];
if (empty($name)) {
echo “Name is empty”;
} else {
echo $name;
}
}
?>

</body>
</html>

Key difference between $_GET and $_POST:

GETPOST
GET requests can be cached
GET requests remain in the browser history
GET requests can be bookmarked
GET requests should never be used when dealing with sensitive data
GET requests have length restrictions
GET requests should be used only to retrieve data
POST requests are never cached
POST requests do not remain in the browser history
POST requests cannot be bookmarked
POST requests have no restrictions on data length

PHP $_REQUEST

PHP $_REQUEST is used to collect data after submitting an HTML form whether it is submitted via $_GET or $_POST.

See below example. When a user submits the data by clicking on “Submit”, the form data is sent to the file specified in the action attribute of the tag. Then, we can use the super global variable $_REQUEST to collect the value of the input field:

Example

<html>
<body>

<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”) {
$name = $_REQUEST[‘fname’];
if (empty($name)) {
echo “Name is empty”;
} else {
echo $name;
}
}
?>

</body>
</html>

Hope this explains you enough about the PHP superglobals .

This is Lalit signing off for today.

If you like this post please give a thumbs up and keep it sharing.

Hey don’t forget to SUBSCRIBE please so that you can get notification on new posts.

Tada

Leave a Reply