Variabel SERVER superglobal pada PHP

Topik ini tidak begitu penting, jika Anda buru-buru belajar PHP, materi ini boleh diskip. Variabel $_SERVER pada PHP menampung berbagai macam informasi yang dapat dimanfaatkan dalam pemrograman. Anda dapat menampilkan seluruh variabel $_SERVER dengan program seperti berikut:

<?php
echo "<pre>".print_r($_SERVER,true)."</pre>";
?>

Output:

Array
(
    [HTTP_HOST] => localhost
    [HTTP_CONNECTION] => keep-alive
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    [HTTP_REFERER] => http://localhost/
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,id;q=0.6
    [HTTP_COOKIE] => PHPSESSID=nmhd802g0kr85ila6grbtituv2
    [PATH] => C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WAMP\php-7.0.4;C:\ProgramData\ComposerSetup\bin;C:\WAMP\Apache24\bin;C:\Program Files\Java\jdk1.8.0_73;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\MinGW\bin;C:\msys\1.0\bin;C:\Program Files (x86)\CMake\bin;C:\Python34;C:\Program Files\pgsql\bin;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;
    [SystemRoot] => C:\WINDOWS
    [COMSPEC] => C:\WINDOWS\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY
    [WINDIR] => C:\WINDOWS
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache/2.4.6 (Win64) OpenSSL/1.0.2g PHP/7.0.4
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => ::1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => ::1
    [DOCUMENT_ROOT] => C:/WAMP/htdocs
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => C:/WAMP/htdocs
    [SERVER_ADMIN] => setting@admin-di.apache
    [SCRIPT_FILENAME] => C:/WAMP/htdocs/servervars.php
    [REMOTE_PORT] => 64391
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /servervars.php
    [SCRIPT_NAME] => /servervars.php
    [PHP_SELF] => /servervars.php
    [REQUEST_TIME_FLOAT] => 1473598127.092
    [REQUEST_TIME] => 1473598127
)

Bila belum memahami kode di atas, dapat mempelajari penjelasan sebelumnya tentang array.

Beberapa variabel yang sering digunakan antara lain:

  • $_SERVER['HTTP_REFERER'], untuk mengetahui alamat halaman sebelumnya.
  • $_SERVER['HTTP_USER_AGENT'], kadang-kadang dipakai untuk mengetahui jenis browser. Akan tetapi untuk tujuan ini, dapat mencoba menggunakan fungsi get_browser().
  • $_SERVER['REMOTE_ADDR'], untuk mengetahui IP Address pengunjung web.
  • $_SERVER['DOCUMENT_ROOT'], untuk mengetahui folder root website pada server. Sebaiknya tidak menampilkan informasi ini di web demi keamanan. Selain itu, mungkin dapat mempertimbangkan untuk menggunakan magic constant __DIR__.
  • $_SERVER['REQUEST_URI'], alamat yang dituju user, yang tampil pada address bar browser.
  • $_SERVER['SCRIPT_NAME'], script yang dituju oleh server. Selain ini, dapat juga menggunakan __FILE__ meski agak berbeda.
  • $_SERVER['PHP_SELF'], alamat http yang dituju. Kurang lebih sama dengan REQUEST_URI.

Cukup segini dulu tentang $_SERVER. Untuk lebih lengkapnya, dapat melihat dokumentasi php.net. Atau mencoba-coba sendiri.