
Menemukan error ketika melakukan
develop, bukanlah sesuatu yang harus anda takuti. Karena setiap error yang terjadi merupakan kesempatan khusus agar aplikasi menjadi lebih baik lagi.
Artikel ini akan membahas dua jenis error yang terjadi dalam prosedur
session di PHP dan merupakan lanjutan dari artikel
Tentang PHP Session.
Baiklah, supaya menghemat waktu baca anda, berikut ini detail kasusnya :
ERROR 1Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Pesan tersebut disampaikan oleh PHP berkaitan dengan variabel session yang anda buat. Bedakan kedua contoh script berikut :
contoh 1 :
session_start();session_register("usermember");
session_register("passmember");
$usermember=$datauser[userid];
$passmember=$datauser[password];
contoh 2:
session_start();session_register("usermember");
session_register("passmember");
$_SESSION['usermember']=$datauser[userid];
$_SESSION['passmember']=$datauser[password];
Peringatan error diatas akan terjadi ketika anda menggunakan script dengan perintah seperti
contoh 1. Solusinya, tentu saja anda harus menggunakan script seperti
contoh 2. Jadi sebagai kesimpulan kecil,
session membutuhkan ketegasan anda untuk menyatakan apakah suatu variabel itu session atau bukan. Jika direncanakan sebagai
session, maka dari awal sudah harus ditegaskan dengan perintah
$_SESSION['namavariabel'].
ERROR 2Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xampplite\htdocs\donatur\koneksi.php:4) in D:\xampplite\htdocs\donatur\login.php on line 16Pesan pada error 2 tersebut akan anda hadapi jika anda menempatkan perintah
session_start(); tidak pada tempat yang benar. Memang perintah yang satu ini cukup egois. Ia harus ditempatkan sebelum hal lainnya. Perhatikan dua contoh script berikut :
contoh 1 :
if($usermember == $datauser[userid])
{
session_start();session_register("usermember");
session_register("passmember");
$_SESSION['usermember']=$datauser[userid];
$_SESSION['passmember']=$datauser[password];
}
contoh 2 :
session_start();if($usermember == $datauser[userid])
{
session_register("usermember");
session_register("passmember");
$_SESSION['usermember']=$datauser[userid];
$_SESSION['passmember']=$datauser[password];
}
Pada contoh 1,
session_start(); ditempatkan setelah perintah percabangan
if {}.Itu artinya perintah tersebut berada setelah prosedur lain berjalan. Nah, untuk menghindari pesan seperti
ERROR 2, sebaiknya anda menggunakan perintah seperti
contoh 2.
Semoga bermanfaat.