isset di session login -kelas/membuat-blog-dengan-php/video/menggunakan-session


if ($_SESSION['username']){
  header('Location: index.php');
}else {

kenapa waktu scriptnya seperti diatas terjadi error ?? (ini script di form 'login.php) tapi waktu saya tambah 'isset' di depan session seperti script dibawah, erornya hilang??


if (isset ($_SESSION['username'])) {
  header('Location: index.php');
}else {

UPDATE PERTANYAAN .. pertanyaan selanjutnya mengenai 'isset', setelah form login di atas harus menggunakan 'isset'. Sebaliknya pada form 'index.php' tidak terjadi masalah dengan menggunakan 'isset' ataupun tidak menggunakan

mohon pencerahan, kira2 apa penyebab bisa terjadi seperti itu? apakah versi webserver mempengaruhi

avatar hexacore
@hexacore

73 Kontribusi 14 Poin

Diperbarui 7 tahun yang lalu

6 Jawaban:

Cukup pahami saja apa fungsi isset, agan akan ngerti sendiri kenapa errornya kadang muncul kadang tidak.

Fungsi isset ini biasa juga disingkat dengan symbol '@'.


<?php
isset($_SESSION['id'])
// sama saja dengan
@$_SESSION['id']
?>

Gunanya apa? Seperti namanya isset (is set / apakah diset / apakah terdefenisikan / dsb). Jadi kalau dibaca:

<?php
// cara bacanya: jika $_SESSION['username'] sudah di set nilainya atau sudah dibuat maka lakukan kode2 di dalam kurung kurawal {}
if(isset($_SESSION['user'])) {
// kode2 lainnya
}
?>

Jadi isset ini, kita pakai ketika dihalaman tersebut "ADA KEMUNGKINAN MENGGUNAKAN VARIABLE BERSANGKUTAN ATAU TIDAK", sehingga penting untuk cek dulu, apakah sudah diset atau tidak dengan fungsi isset. Masih bingung? Buat file dan kode berikut untuk memahaminya:

<?php
// Pertama2 buat file index.php kemudian masukkan kode berikut
if(isset($_GET['user'])) {
   echo 'user ada di url, valuenya ='.$_GET['user'];
}else{
   echo 'tidak ada user di url anda';
}

// setelah mengetik kode2 di atas, coba buka file ini di browser. semestinya saat pertama anda membuka file ini anda akan mendapat tulisan 'tidak ada user di url anda'
// sekarang coba edit sedikit url anda tambahkan di akhir index.php jadi seperti ini, index.php?user=budiman
// anda akan melihat tulisan 'user ada di url, valuenya = budiman'
?>

avatar onirusama
@onirusama

265 Kontribusi 184 Poin

Dipost 7 tahun yang lalu

terimakasih banyak penjelasannya mas @onirusama .. sangat jelas penjelasannya tentang isset.. yang saya masih bingung, kenapa di tutorial ini https://www.sekolahkoding.com/kelas/membuat-blog-dengan-php/video/menggunakan-session bisajalan walaupun gak pake isset??

avatar hexacore
@hexacore

73 Kontribusi 14 Poin

Dipost 7 tahun yang lalu

========== EDIT

@hexacore Perhatikan di bawah video (bukan di dalam videonya tetapi di bawah playernya) https://www.sekolahkoding.com/kelas/membuat-blog-dengan-php/video/menggunakan-session, ada tulisan seperti ini:


Belajar menggunakan session untuk mengatur sistem login pada blog. Pada halaman login tambahkan fungsi isset untuk menguji apakah session sudah ada atau belum dengan if( isset($_SESSION['user']) )

Referensi selanjutnya, mungkin video di atas belum diedit oleh @hilmanrdn, bandingkan video diatas dengan video ini:

https://www.sekolahkoding.com/kelas/membuat-sistem-login-dan-register/video/menyimpan-session

Agan akan temukan @hilmanrdn gunakan isset.

avatar onirusama
@onirusama

265 Kontribusi 184 Poin

Dipost 7 tahun yang lalu

oke mas @onirusama terimakasih banyak, saya gak liat ada keterangan dibawah..

avatar hexacore
@hexacore

73 Kontribusi 14 Poin

Dipost 7 tahun yang lalu

Kemudian untuk masalah kenapa agan mendapati error saat menulis:


if($_SESSION['username']) {
...
}

sedangkan di video sekolah koding yang kita bahas di atas tidak, saya yakin ini masalah error_reporting di MAMP yang @hilmanrdn gunakan pada saat video tersebut dibuat. Ada 2 kemungkinan: 1. error_reporting(E_NOTICE) di server @hilmanrdn disable secara default (mungkin bawaan MAMPnya) 2. Atau bisa jadi @hilmanrdn yang mendisable E_NOTICE pada php.ininya.

Penting untuk dicatat, bahwa error pada php dapat didisable menggunakan error_reporting pada file .php maupun pada configurasi di file php.ini. Untuk perjelas kasus ini, silahkan cek video sekolah koding yang ini https://www.sekolahkoding.com/kelas/fungsi-fungsi-php-pada-website/video/mengingat-data-dengan-session terutama dari menit 3:30. Disitu E_NOTICE @hilmanrdn sudah enable makanya akan dapat error yang sama seperti agan temukan.

avatar onirusama
@onirusama

265 Kontribusi 184 Poin

Dipost 7 tahun yang lalu

siap, terimakasih ilmu pentingnya mas.. terimakasih juga sudah meluangkan waktunya buat jawab pertanyaan saya

avatar hexacore
@hexacore

73 Kontribusi 14 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban