Belajar PHP: Global Variables (Superglobals)

posted in: Tutorial Pemrograman | 0

Beberapa variabel yang telah ditetapkan dalam PHP adalah “superglobals”. Ini artinya bahwa mereka selalu dapat diakses dimana saja, terlepas dari lingkup (scope).  Anda dapat mengaksesnya dari dalam fungsi, kelas atau bagian skrip mana saja, tanpa harus melakukan sesuatu yang khusus.

Variable php superglobals :

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

 

$GLOBALS PHP

$GLOBALS adalah  variabel super global yang digunakan untuk mengakses variabel global dari mana saja di script PHP (juga dari dalam fungsi atau metode).

Semua variable yang pernah dibuat dalam sebuah program, akan menjadi associative array dari variable GLOBALS ini.
Contoh menggunakan variabel $GLOBALS:

<?php
$x = 75;
$y = 25; 

function jumlah() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
} 

jumlah();
echo $z;
?>

 

Penjelasan

  • Variable $GLOBALS untuk x,y,z membuat semua variable ini dapat diakses di dalam fungsi jumlah().
  • Pada baris-6, variable $x, $y, dan $z, menjadi associative array dari variable $GLOBALS, sehingga bisa dijumlahkan.

 

Variabel $_SERVER di  PHP

$ _SERVER Adalah variabel super global yang menyimpan informasi tentang header, paths, dan lokasi skrip.

Contoh menggunakan beberapa elemen di variable global $ _SERVER :

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

Tabel berikut berisi daftar elemen yang paling penting yang dapat masuk ke dalam $ _SERVER:

Element/Code Description
$_SERVER[‘PHP_SELF’] Menghasilkan nama file dari script yang sedang dijalankan
$_SERVER[‘GATEWAY_INTERFACE’] Menghasilkan versi Common Gateway Interface (CGI) server yang di gunakan
$_SERVER[‘SERVER_ADDR’] Menghasilkan alamat IP dari host server
$_SERVER[‘SERVER_NAME’] Menghasilkan nama host server (seperti www.inosispro.com)
$_SERVER[‘SERVER_SOFTWARE’] Menghasilkan identifikasi string server (seperti Apache / 2.2.24)
$_SERVER[‘SERVER_PROTOCOL’] Menghasilkan nama dan revisi informasi protokol (seperti HTTP / 1.1)
$_SERVER[‘REQUEST_METHOD’] Menghasilkan metode permintaan yang digunakan untuk mengakses halaman (seperti POST)
$_SERVER[‘REQUEST_TIME’] Menghasilkan timestamp dari awal permintaan (seperti 1377687496)
$_SERVER[‘QUERY_STRING’] Menghasilkan string jika halaman diakses melalui query string
$_SERVER[‘HTTP_ACCEPT’] Menghasilkan header yang diterima dari permintaan saat ini
$_SERVER[‘HTTP_ACCEPT_CHARSET’] Menghasilkan Charset header yang diterima dari permintaan saat ini (seperti utf-8, ISO-8859-1)
$_SERVER[‘HTTP_HOST’] Menghasilkan Host header dari permintaan saat ini
$_SERVER[‘HTTP_REFERER’] Menghasilkan URL yang lengkap dari halaman saat ini (tidak dapat digunakan karena tidak semua user-agen mendukungnya)
$_SERVER[‘HTTPS’] Script menanyakan apakah aman melalui protokol HTTPS
$_SERVER[‘REMOTE_ADDR’] Menghasilkan alamat IP dari mana pengguna melihat halaman ini
$_SERVER[‘REMOTE_HOST’] Menghasilkan Nama host dari mana pengguna melihat halaman ini
$_SERVER[‘REMOTE_PORT’] Pengembalian port yang digunakan pada mesin pengguna untuk berkomunikasi dengan server web
$_SERVER[‘SCRIPT_FILENAME’] Menghasilkan nama path absolut dari script yang sedang dijalankan
$_SERVER[‘SERVER_ADMIN’] Menghasilkan nilai yang diberikan kepada direktif SERVER_ADMIN di file konfigurasi server web
$_SERVER[‘SERVER_PORT’] Menghasilkan port pada mesin server yang digunakan oleh server web dalam komunikasi (misalnya 80)
$_SERVER[‘SERVER_SIGNATURE’] Menghasilkan versi server dan nama virtual host yang ditambahkan pada halaman-server yang dihasilkan
$_SERVER[‘PATH_TRANSLATED’] Menghasilkan sistem file path berbasis script saat ini
$_SERVER[‘SCRIPT_NAME’] Menghasilkan nama skrip saat ini
$_SERVER[‘SCRIPT_URI’] Menghasilkan URI dari halaman saat ini

Menangani Form dalam PHP

PHP memiliki 3 variable global yang digunakan untuk menangani Form. Variable ini digunakan untuk mengumpulkan data yang dikirim melalui Form HTML.

  • $_POST, digunakan untuk mengumpulkan data form setelah mengirimkan form HTML dengan metode = “post”. $ _POST Juga banyak digunakan untuk mengirimkan variabel.
  • $ _GET  digunakan untuk mengumpulkan data form setelah mengirimkan formulir HTML dengan metode = “get”. Ia dapat mengumpulkan data yang dikirim dalam URL.
  • $_REQUEST, dapat mengambil data baik dari form dengan metode post maupun dari URL, atau yang dikirim melalui $_POST dan $_GET.

 

Variable $_POST di PHP

PHP $ _POST secara luas digunakan untuk mengumpulkan data form setelah mengirimkan form HTML dengan metode = “post”. $ _POST Juga banyak digunakan untuk mengirimkan variabel.

Contoh berikut adalah membuat input field dan tombol submit pada Form HTML. Form ini akan diapakai untuk mengirimkan data dari file halaman_input.php ke halaman_output.php ketika tombol submit ditekan

Contoh halaman_input.php

<html>
<body>
<form method="post" action="halaman_output.php">
Nama: <input type="text" name="nama">
<input type="submit">
</form>
</body>
</html>

Contoh halaman_output.php

<html>
<body>
<?php
$name = $_POST['nama'];
echo $name;
?>
</body>
</html>

 

Penjelasan

  • baris-3 menunjukan bahwa form menggunakan metode post, dengan tujuan pengiriman adalah file halaman_output.php
  • data yang dikirim berasal dari elemen input nama dan
  • halaman tujuan yaitu halaman_output.php akan menerima data melalui variable global $_POST[‘nama’]

 

Variable $_GET di PHP

Variabel global $ _GET dapat digunakan untuk mengumpulkan data yang dikirim bersama di URL.

Misal format URL adalah tes.php?id1=data1&id2=data2, maka variable yang bisa diambil adalah id1 dan id2, dengan masing-masing isinya  adalah data1 dan data2.

Berikut adalah contoh untuk mengirimkan data melalui URL. File asal.php mempunyai dua variable subject dan web dengan isi masing-masing adalah php dan inosispro. File tujuannya adalah tes_get.php

Contoh asal.php

<html>
<body>
<a href="test_get.php?subject=php&web=inosispro ">Test GET</a>
</body>
</html>

Penjelasan

  • baris-3 menunjukan bahwa file asal.php mempunyai link dengan tujuan test_get.php yang membawa 2 variable subject dan web dengan isi masing-masing php dan inosispro.
  • ketika link di klik, maka browser akan membuka halaman test_get.php

Contoh test_get.php

<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>

Penjelasan

  • aat browser membuka file test_get.php, maka baris-9 akan mengambil data dari url melalui variable global $_GET, dengan kunci array ‘subject’ dan ‘web’

 

Variable $_REQUEST di PHP

Variable global $ _REQUEST digunakan untuk mengumpulkan data baik dari form maupun URL. Variable $_REQUEST dapat dipakai untuk menggantikan $_POST dan $_GET pada contoh kode sebelumnya.

Kapan harus menggunakan POST atau GET

Informasi yang dikirimkan dengan POST sifatnya tertutup (semua data nama dan nilai tertanam dalam HTTP-nya), sehingga cocok digunakan untuk mengirim data form yang sifatnya konfidensial seperti username dan password. Akan tetapi jenis POST tidak bisa dipakai untuk pagination karena data tidak muncul di URL.

Informasi yang dikirim dengan GET sifatnya terbuka, ada di dalam URL. Karena itu hanya cocok untuk data-data yang kurang sensitif. Kelebihan GET adalah bisa digunakan untuk pagination (karena nama dan data muncul di URL).

 

Leave a Reply