• Tidak ada hasil yang ditemukan

session_register(), untuk mendaftarkan variabel ke sebuah session.

Dalam dokumen MATERI 1 PAK ARI PAMBUDI (Halaman 112-122)

MATERI X DAB XI PENGENALAN PHP

SESSION DAN FUNGSINYA DALAM PHP

4. session_register(), untuk mendaftarkan variabel ke sebuah session.

session_is_registered — Mengetahui apakah sebuah variabel telah terdaftar atau belum dalam sebuah session.

Description

bool session_is_registered ( string $name )

Mengetahui apakah sebuah variabel telah terdaftar atau belum dalam sebuah session.

Warning

Fungsi ini tidak diperkenankan oleh PHP 5.3.0 dan dihapus pada PHP 6.0.0.

name

Nama Variabel.

Return Values

session_is_registered() mengembalikan nilai TRUE jika terdapat variabel global yang memiliki nama name terdaftar pada session saat ini, Jika sebaliknya akan mengembalikan nilai FALSE.

Notes

Catatan: Jika $_SESSION (atau $HTTP_SESSION_VARS untuk PHP 4.0.6 atau kurang) digunakan, gunakan isset() untuk mengecek variabel yang terdaftar dalam $_SESSION.

Caution

Jika menggunakan $_SESSION (or $HTTP_SESSION_VARS), maka jangan gunakan session_register(), session_is_registered() dan session_unregister().

Pertukaran Variabel antar script

Bila suatu variabel didefinisikan secara global pada skrip PHP, maka variabel itu memiliki lingkup hanya sebatas dalam skrip PHP itu saja. Variabel itu tidak dapat diakses dari file PHP lain dengan cara biasa. Bila kita menginginkan variabel yang bisa diakses dari banyak file PHP, kita perlu variabel yang bersifat superglobal.

Untuk itu, variabel harus dipropagasi atau dikirim ke server terlebih dahulu. Ada beberapa cara untuk melakukannya. Pertama, variabel tersebut dikirim secara langsung melalui string yang ditambahkan ke URL, seperti halnya metode GET dalam pengiriman data. Contoh sederhananya pada URL berikut:

utama.php?halaman=1&userid=100

URL ini akan menuju ke file utama.php dan pada utama.php akan terdapat variabel $halaman yang bernilai 1 dan variabel $userid bernilai 100.

Cara lain yaitu menggunakan cookies. Cookies adalah mekanisme penyimpanan data atau variabel di sisi klien (browser). Dengan menyimpan variabel sebagai cookie, data tersebut akan tetap ada sampai waktu kadaluarsa yang bisa ditentukan. Cookie biasa dipakai di situs-situs untuk mengidentifikasi pengunjung yang mengakses situs mereka. Misalnya pada aplikasi polling, dimana satu pengunjung hanya bisa melakukan vote satu kali dalam sehari.

Session Handling di PHP

Contoh, misalkan kita akan meregister variabel bernama userid

session_register(“userid”);

Maka untuk mengisi userid dengan nilai 100.

$HTTP_SESSION_VARS["userid"] = 100;

$_SESSION[“userid”] = 100;

Bisa juga dengan cara yang lebih sederhana:

$userid = 100;

Cara yang terakhir bisa dilakukan bila option register_globals bernilai on (pada file konfigurasi php.ini). Dengan begitu userid tersedia sebagai variabel global $userid dan dapat diakses langsung. Pada PHP versi 4.2 ke atas, biasanya option ini dinonaktifkan dengan alasan keamanan. Setiap skrip yang ingin memakai variabel session, harus memulai session dahulu dengan fungsi session_start() yang dipanggil di awal skrip sebagai header.

session_unregister()

Digunakan untuk mengunregister variabel dari suatu session.

session_destroy()

Menghancurkan semua variabel yang berhubungan dengan session.

Cara kerja Session:

Berikut ini adalah gambaran mengenai cara kerja session:

Saat pengunjung mengakses suatu halaman, pengunjung tersebut memulai session (digunakan fungsi session_start()). Bila dalam konfigurasi php, session.auto_start diset ke 1 maka php akan melakukan start session secara otomatis.

Pengunjung tadi kemudian diberi pengenal berupa session id, Session id ini adalah rangkaian karakter yang unik, misalnya 12345678xx.. Bersamaan dengan itu, pada sisi server juga dibuat file ses_12345678xx yang berisi variabel-variabel session milik si pengunjung. Variabel yang diregister dengan fungsi session_register() akan disimpan dalam file ini.

Metode di atas adalah default. Sebenarnya anda juga bisa menentukan lokasi penampungan variabel session anda sendiri, misalnya di database. Selanjutnya, saat pengunjung memulai atau melanjutkan session (melalui session_start()) maka dia tinggal mengirim session id-nya untuk memperoleh kembali variabel-variabel session miliknya yang telah disimpan di server.

Pengiriman session id ke server bisa melalui 2 cara. Yang pertama, yaitu cara default, dikirim melalui cookies. Session id berupa cookie PHPSESSID (default). Ada kalanya dengan alasan tertentu, si pengunjung menonaktifkan cookies (bisa dilakukan melalui setting browsernya). Bila hal ini terjadi, maka pengiriman session id dilakukan dengan cara kedua, yaitu melalui query string (string yang ditambahkan ke URL, seperti contoh di awal artikel).

Session akan berakhir saat fungsi session_destroy() dipanggil atau sewaktu user menutup web browsernya.

Dari cara kerja session tadi, terlihat bahwa yang menjadi kunci pegangan si pengunjung (di sisi client) hanyalah variabel session id, sedangkan variabel-variabel lain miliknya di server. Adanya fasilitas session handling di PHP menjadikan proses diatas menjadi sederhana dan mudah karena PHP melakukannya otomatis untuk anda.

Contoh aplikasi login sederhana.

Dengan menggunakan fungsi2 session, kita bisa membangun suatu mekanisme login. Skenarionya begini: Pengunjung mengakses halaman utama index.php, disana dia disodori form user dan password untuk login. Ia harus memasukkan username dan password yang valid agar dapat mengakses informasi utama di situs ini. Kemudian setelah selesai, disediakan link untuk logout.

Untuk itu kita membutuhkan satu tabel database untuk menampung data user yang terdaftar. Dalam contoh ini dipilih MySQL karena telah umum dipakai serta gratis. Pertama-tama kita siapkan dahulu sebuah database bernama session dan tabel bernama user dengan struktur berikut:

CREATE DATABASE session; CREATE TABLE user

(us_id int(10) AUTO_INCREMENT PRIMARY KEY, us_nama varchar(32), us_email varchar(50), us_angkatan varchar(4), us_url varchar(100), us_password varchar(32) )

INSERT INTO user (us_id,us_nama,us_email,us_angkatan,us_url,us_password) VALUES (1,’Sarifah’,’Sarifahriz@operamail.com’,’2002’,’http://Sarifahriz.cjb.net’,’passwordku’); index.php 1 <?php 2 3 session_start(); 4

5 echo "selamat datang"; 6 7 if (!session_is_registered("status")) 8 { session_register("userid"); 9 $userid = ""; 10 session_register("status"); 11 $status =0; 12 } 13 14 if ($status != "1")

15 {?> <form method=post action=login.php> 16 Nama id: <input type=text name=namaid><br>

17 Password : <input type=password name=passwd><br> 18 <input type=submit>

20 <?} 21 else

22 { // get data user dari database

23 mysql_connect("localhost","root","") or die("koneksi ke mysql gagal"); 24 mysql_select_db("session") or die("selek database gagal");

25

26 $get_datauser = mysql_query("SELECT * FROM user WHERE us_id=$userid") or die("");

27 if ($row = mysql_fetch_array($get_datauser) or die("")) 28 { $u_nama = $row[us_nama];

29 $u_email = $row[us_email]; 30 $u_angkatan = $row[us_angkatan]; 31 $u_url = $row[us_url];

32 }

33 // tampilkan konten disini

34 print "<p>Anda login sebagai $u_nama, angkatan $u_angkatan dengan email $u_email

35 <br><a href=logout.php>logout</a>"; 36 }

37 ?>

Pada skrip ini variabel session yang dipakai adalah userid dan status. Bila belum login, maka nilai status=0, sedangkan bila sudah login, maka status=1. Saat pengunjung berhasil login, userid akan diberi nilai sama dengan user id yang disimpan di database. Jika tidak, maka userid kita biarkan kosong.Pertama-tama skrip memulai suatu session dengan

dipanggilnya fungsi session_start(), selanjutnya pada baris 7 akan dicek apakah variabel userid dan status telah diregister. Jika belum, maka lakukan register. Kemudian pada baris 14 dilakukan pengecekan status. Bila status=0, berarti user belum login, maka form login dicetak, sebaliknya jika status=1, informasi utama akan ditampilkan.

login.php 1 <?php

2 mysql_connect("localhost","root","") or die("koneksi ke mysql gagal"); 3 mysql_select_db("session") or die("selek database gagal");

4

5 $namaid = addslashes($namaid); 6

7

8 $cheklogin = mysql_query("SELECT us_id FROM user WHERE (us_nama = '$namaid') AND (us_password = '$passwd')") or die(mysql_error());

9

10 if (!mysql_num_rows($cheklogin))

11 { print "Anda tidak terdaftar, silakan register dulu"; 12 }

13 else

14 { session_start(); 15

16 // set user id

18 { $userid = $row[us_id]; 19 }

20

21 $status = "1"; // set status login = 1

22 header("location:index.php"); // ke halaman index 23 }

24 ?>

Pada baris 8 dilakukan pengecekan username dan password dalam database. Jika cocok, maka nilai status=1, sedangkan userid=user id yang sesuai dalam database. Perhatikan bahwa session_start(); juga dipanggil di awal, hal ini supaya skrip ini bisa mengenali

$userid dan $status sebagai variabel session.

Selanjutnya, pengunjung dikembalikan ke halaman index.php untuk disuguhi informasi.

logout.php 1 <?php 2 session_start(); 3 { 4 $userid = ""; 5 $status = "0";

6 print "berhasil logout

7 <br><a href=index.php>kembali ke halaman utama</a>"; 8 }

Dalam proses logout, pada baris 3, variabel userid dan status akan dikosongkan, sehingga pengunjung kembali dalam keadaan belum login.

LATIHAN SOAL

1. Dengan menggunakan session buatlah sebuah program untuk membedakan login antara admin dan user biasa.

2. Buat sebuah buku tamu yang terdiri dari nama, email dan komentar, kemudian submit ke form berikutnya dengan menyimpan datanya pada sebuah file.

3. Dari soal no. 2, kembangkan dengan membuat sebuah file C untuk membaca data yang disimpan dan tampilkan hasilnya di layar.

MATERI 14 dan 15

KONEKTIVITAS PHP DENGAN MySQL

Pada MATERI ini akan dipelajari tentang konektivitas PHP dengan Mysql. Konektivitas di mulai dengan membuka koneksi, memilih database, serta mengambil record dan database.

T I U :

Dalam dokumen MATERI 1 PAK ARI PAMBUDI (Halaman 112-122)

Dokumen terkait