Penggunaan Session PHP

Bagi programmer web yang sudah biasa menggunakan PHP, mungkin bahasan mengenai Session ini merupakan hal yang tidak asing lagi, karena setiap membuat aplikasi berbasis web pasti menggunakan yang namanya Session. Namun bagi programmer web pemula yang menggunakan PHP, maka aturan-aturan penggunaan session ini sebaiknya di ketahui dan di perhatikan, agar tidak mengalami kejadian seperti yang saya alami.

Sebagai programmer PHP pemula, saya punya pengalaman yang menarik dalam masalah Session ini. Pada saat itu saya membuat web di komputer yang menggunakan PHP 5.0.2 dan berjalan dengan lancar aplikasi yang saya buat tersebut. Namun ketika saya pindahkan ke komputer yang menggunakan PHP 5.2.0, betapa kagetnya saya karena tidak bisa menyimpan Session. Waktu itu saya benar-benar bingung kenapa ini terjadi. Saya cek di phpinfo() nya semua spesifikasi PHPnya. Saya lihat register_globalsnya OFF. Pada waktu itu saya lupa juga bahwa kalau register_globals nya OFF, maka antara metode post dan get nya harus sesuai ketika mengirim dan menerimanya. Pada saat itu, saya menyangka web server nya yang error, dan coding php saya ga ada masalah. Oleh karena itu saya tidak mengecek ulang coding saya, karena merasa di komputer lain juga berjalan lancar.

Kesalahan coding saya ketahuan ketika saya tanyakan ke salah seorang teman. Karena ternyata pada komputer yang sebelumnya itu bisa berjalan lancar, karena ternyata register_globals nya ON, dimana mengabaikan jenis metode pengirimannya get atau post. Ternyata coding saya tidak standar dibagian metode pengiriman dan penerimaannya baik itu yang metode post ataupun yang get. Selain itu, pada beberapa file saya tidak menempatkan fungsi session_start() di paling atas coding php, padahal saya menggunakan variable session yang register di halaman sebelumnya. Dari kejadian ini saya mengambil pelajaran yang sangat berharga dan semoga ini juga bermanfaat bagi para programmer php pemula.

Kesimpulan dalam penggunaan Session PHP :

1. Tempatkan fungsi session_start() dibagian paling atas coding php, tidak boleh didahului oleh coding apapun.

2. Perhatikan penamaan variable session ketika session_register() huruf besar kecilnya (case sensitive), karena ketika penggunaan variable session tersebut harus sama jenis hurufnya. (Sebenarnya bukan hanya variable session saja yang bersifat case sensitive tapi juga penamaan variable lainnya di PHP sifatnya case sensitive, termasuk penamaan komponen misalnya name textfiled, textarea, list/menu dll).

3. Setiap kali akan menggunakan variable session, maka harus dituliskan session_start() dibagian paling atas coding.

4. Ketika metode pengiriman variable menggunakan metode post, maka ketika menerima/membaca variable nya pun harus post. Begitu pula ketika metode nya get, maka menerimanya juga harus get.

Misalkan : formlogin.php

.. form action=”login.php” method=”post” name=”form1″ ..

……………………

.. input name=”txtuser” type=”text” class=”LongText” ..

.. input name=”txtpass” type=”text” class=”LongText” ..

……………………

login.php

session_start();

if ( (! empty(trim($HTTP_POST_VARS[‘txtuser’])) && (!empty(trim($HTTP_POST_VARS[‘txtpass’]))) )

{

session_register(‘SES_USER’);

session_register(‘SES_PASS’);

$HTTP_SESSION_VARS[‘SES_USER’] = $HTTP_POST_VARS[‘txtuser’];

$HTTP_SESSION_VARS[‘SES_PASS’] = $HTTP_POST_VARS[‘txtpass’];

}

…………………..

Keterangan :

Karena di atas kita menggunakan method Post, maka ketika menerima/membaca variabelnya kita menggunakan $HTTP_POST_VARS[], jika di atas anda menggunakan method Get, maka anda harus menggunakan $HTTP_GET_VARS[].

Kepada teman-teman para master PHP yang membaca tulisan ini, apabila apa yang saya tuliskan di atas ada yang salah mohon dikoreksi dengan mengisi komentar. Atau apabila mau menambahkan tulisan tersebut, saya persilahkan. Saya sangat mengharapkan koreksi dari anda semua. Karena saya menulis berdasarkan pengalaman yang saya alami.

21 thoughts on “Penggunaan Session PHP

  1. Ya mbak betul perbedaan POST dan GET. Makasi mbak atas keterangan saya mendapatkan pencerahan sedikit.Saya juga baru belajar php. Mbak bisa dijelaskan lagi lebih rinci mengenai register_globals() = on atau register_globals = off. ma

  2. teteh Euis tolong kasih contoh yang lebih detail donk tentang penggunaaan session, kalo bisa kasih contoh pada login form berikut script cek login dan logout nya.

    makasih atas attensi nya

  3. siiippp mbak aku juga msih newbie di php saya coba bikin login sederhana tpi gagal trus apa register globalnya msih off g’ tau bru tau dri blognya mbak

  4. mo tanya…
    trs kalo ada bbrp file .php dan masing ada session_start(); trus mreka di-include(); kan dalam 1 file (misal index.php berisi 3 file yg masing ada session_start();nya )… knp ada pesan error y…??

    apa session_start();nya jadi dibuat 1 aja di file index.php..?

  5. Notice: A session had already been started – ignoring session_start()

    cara mengatasi error penggunaan session seperti d atas gmn??

  6. saya mau nanya mbak,,,,,
    misalkan ada halaman sbb :
    1.index.php
    2. gallery.php
    3.admin.php>>>(yg bisa akses cma admin) trus masuk ke
    4. index_admin.php.

    nah ketika admin udh login dihalaman admin kn trus masuk ke index_admin.php,,tp admin ini lupa buat logout. dia lgsng masuk ke hal index.php. gmna cranya buat kita ngerti yg mengakses index.php itu admin ato pengunjung biasa???mohon balasannya..

  7. Saya hanya mau bilang superrrrrrrrrrr…buat si emba, wanita bisa program terutama PHP….pd hal saya belajar php sampe kepala botak masih aja tidak bisa….pokoke super deh buat emba….

  8. @zakariawibowojack : kalo menurut gue mah buat aja bro 2 admin dalem satu registri jadi data admin udah ada di database, trus ntar bisa ketauan mana yang admin n mana yang pengunjung…
    tapi lebih bagus lagih kalo index nya itu di buat 2 jadi supaya pengunjung gabisa masuk index admin,kalo pengunjung bsa masuk index admin yang ada malah data di obrak-abrik….

  9. WAH MAS MASLAHNYA KOK SAMA.. setelah saya coba di localhost lancar akan tetapi session bila di pasang di server masterweb ga bisa login..
    Ternyata setting di register global toh.. makasih mas

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s