gak bisa buat session selain $_SESSION['username'] (PHP OOP MySqli)

saya dapat masalah lagi, dan masih di form login.. ternyata cukup banyak bedanya waktu coba PHP OOP sama Prosedural, sering sekali ketemu error... jadi hari ini saya mau tanya kenapa gak bisa buat session lain selain $_SESSION['username']

===script user_login.php (function)===


function cek_data($username, $password){
  $username = escape($username);
  $password = escape($password);

  $query = "SELECT * FROM login WHERE username='$username' AND password='$password'";
  global $link;

  if ($result = mysqli_query($link, $query)) {
    if (mysqli_num_rows($result) !=0) return true;
      else return false;
  }
}

function cek_status($username){
  $username = escape($username);

  $query = "SELECT * FROM login WHERE username='$username'";
  global $link;

  if ($result = mysqli_query($link, $query)) {
    return $result;
  }
}

=== script login.php (potongan nya aja) ===


if (cek_data($username, $password)) {
      $_SESSION['username'] = $username;
      $cek = cek_status($_SESSION['username']);
      $data = mysqli_fetch_assoc($cek);
      $_SESSION['level'] = $data['level'];
      header('Location: index.php');
      }

=== script index.php (juga potongan) ===


<?= $_SESSION['level']; ?>
<?= $_SESSION['username']; ?>

yang tampil di browser hanya session username, kenapa $_SESSION['level'] gak bisa tampil?? mohon pencerahan, terimakasih sebelumnya...

avatar hexacore
@hexacore

73 Kontribusi 14 Poin

Diperbarui 7 tahun yang lalu

3 Jawaban:

coba errornya dilihat pelan-pelan, sebelum bagian tampilan cek dulu bagian yang ini

      $_SESSION['level'] = $data['level'];

coba di die sebelumnya apakah $data['level'] memang ada isinya atau ngga

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 7 tahun yang lalu

di fungsi function cek_status

  if ($result = mysqli_query($link, $query)) {
    return $result;
  }

bagaimana jika hasilnya false?

dan disini tidak ada pengecekan apakah $result tersebut benar ada

$cek = cek_status($_SESSION['username']);
$data = mysqli_fetch_assoc($cek);
$_SESSION['level'] = $data['level'];

mestinya dicek dulu

$cek = cek_status($_SESSION['username']);
if($cek)
{
  $data = mysqli_fetch_assoc($cek);
  $_SESSION['level'] = $data['level'];
}
else
{
  // script kalo ternyata return empty
}

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 7 tahun yang lalu

@hilmanrdn setelah saya logout, saya tinggal kuliah dan saya buka lagi tiba2 isi dari session level bisa di 'echo'.. trus saya tambah lagi 1 session gagal, saya logout trus login lagi bisa.. kenapa ya mas?

@rachmatsasongko oke mas terimakasih masukannya...

avatar hexacore
@hexacore

73 Kontribusi 14 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban