Tuesday, 12 July 2011

$_SERVER

A print_r($_SERVER) gives the following info most of which are self explanatory. The one we are
interested in is [PHP_SELF].
Array
(
    [HTTP_HOST] => localhost:81
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
    [HTTP_CONNECTION] => keep-alive
    [HTTP_REFERER] => http://localhost:81/PHP/test.php
    [HTTP_COOKIE] => PHPSESSID=ehgui3cnkcfjgjk2ats8aajk75
    [HTTP_CACHE_CONTROL] => max-age=0
    [CONTENT_TYPE] => application/x-www-form-urlencoded
    [CONTENT_LENGTH] => 32
    [PATH] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\PC-Doctor for Windows\services;C:\Program Files\Common Files\Lenovo;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\
    [SystemRoot] => C:\WINDOWS
    [COMSPEC] => C:\WINDOWS\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    [WINDIR] => C:\WINDOWS
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache/2.2.8 (Win32) PHP/5.2.6
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => 127.0.0.1
    [SERVER_PORT] => 81
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => C:/wamp/www/
    [SERVER_ADMIN] => admin@localhost
    [SCRIPT_FILENAME] => C:/wamp/www/PHP/test.php
    [REMOTE_PORT] => 17635
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => POST
    [QUERY_STRING] => 
    [REQUEST_URI] => /PHP/test.php
    [SCRIPT_NAME] => /PHP/test.php
    [PHP_SELF] => /PHP/test.php
    [REQUEST_TIME] => 1310501950
)
PHP_SELF can be extremely useful if you want to know the address of the page from which the current
page was redirected. eg:

Consider that we have 3 pages. page1.php, page2.php and page3.php. Page1 submits a form to both
page2 and page3 and we want to redirect page1 correctly to page2 or 3 depending on which page
initiated the submission.
page2.php
---------
<?php

  include 'page1.php;
?>

<html>

  <p>This is page 2</p>
</html>


page3.php
---------
<?php
   include 'page1.php';
?>
 <html>
   <p>This is page 3</p>
 </html>

page1.php
---------
<html>
    <body>
        <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
            <input type="text" name="name" />
               <input type="submit" name="submit"/>
            
        </form>
    </body>
 </html>

No comments:

Post a Comment