2017-09-11 1 views
-2

사용자가 성공적으로 로그인하면 세션이 적용되는 로그인 시스템이 있습니다. 오랫동안 알고 계신 것입니다. 로그인은 매력처럼 작동하지만 나중에 세션을 적용 할 수 없습니다. var_dump, print_r it, 그리고 아무런 성공없이 에러없이 출력하려고했습니다. 누군가가 형제를 도울 수 있었습니까?세션이 오류없이 작동하지 않습니다.

코드

<?php 

require_once $_SERVER["DOCUMENT_ROOT"] . '/project-school/config/init.php'; 
session_start(); 

error_reporting(E_ALL); 
ini_set('display_errors', 'On'); 


if (isset($_POST['submit-admin-login'])) 
{ 
$username=db_escape($koneksi, $_POST['username']); 
$password=db_escape($koneksi, md5($_POST['password'])); 

if(empty($username) || empty($password)) 
    { 
     $_SESSION['pesan'] = 'Username dan Password Wajib Diisi Dengan Benar'; 
     $_SESSION['alert'] = 'danger'; 
     header('location:../login.php'); 
    } 
    else 
    { 
     $sqladmin= "SELECT * FROM admin WHERE username='$username' AND password='$password'"; 
     $queryadmin= mysqli_query($koneksi, $sqladmin) or die(mysqli_error($koneksi));   
     $resultadmin= mysqli_num_rows($queryadmin); 

     $sqlpengajar= "SELECT * FROM pengajar WHERE username_login='$username' AND password_login='$password'"; 
     $querypengajar= mysqli_query($koneksi, $sqlpengajar) or die(mysqli_error($koneksi)); 
     $resultpengajar= mysqli_num_rows($querypengajar); 

     if($resultadmin > 0) 
     { 
      while ($row = mysqli_fetch_array($queryadmin)) { 
       $_SESSION['username_admin'] = $row['username']; 
       $_SESSION['level']   = $row['level'];  
      } 
      echo $_SESSION['username_admin']; 
      header('Location: ../view/admin-dashboard.php'); 
     } 
     elseif($resultpengajar > 0) 
     { 
      while ($row = mysqli_fetch_array($querypengajar)) { 
      $_SESSION['nip']    = $row['nip']; 
      $_SESSION['nama_lengkap']  = $row['nama_lengkap']; 
      $_SESSION['level']    = $row['level']; 
      $_SESSION['username_pengajar'] = $row['username_login']; 
      $_SESSION['alamat']    = $row['alamat']; 
      $_SESSION['tempat_lahir']  = $row['tempat_lahir']; 
      $_SESSION['tgl_lahir']   = $row['tgl_lahir']; 
      $_SESSION['jenis_kelamin']  = $row['jenis_kelamin']; 
      $_SESSION['agama']    = $row['agama']; 
      $_SESSION['foto']    = $row['foto']; 
      } 
      echo $_SESSION['username_pengajar']; 
      header('Location: ../view/pengajar-dashboard.php'); 
     } 
     else 
     { 
      $_SESSION['pesan'] = 'Username atau Password Anda Salah'; 
      $_SESSION['alert'] = 'danger'; 
      header('Location: ../login.php'); 
     } 
    }  
} 

세션은

+0

모든 스크립트에 'session_start();'를 포함 시켰습니까? – rndus2r

+0

Move session_start(); 스크립트의 첫 번째 줄에 넣기 – Shan

+0

'error_reporting (E_ALL); ini_set ('display_errors', 'On'); ''session_start'가 오류를 던지고 있는지 확인하십시오. – Script47

답변

0

가 필요한 문 앞에 세션을 시작보십시오 NUM_ROWS 후 시작합니다. Like

<?php 
session_start(); 
require_once $_SERVER["DOCUMENT_ROOT"] . '/project-school/config/init.php'; 

항상 세션을 시작할 때 항상 세션을 시작해야합니다. 그렇지 않으면 php이 세션을 읽지 않습니다.

당신은 SQL 주입 위험이 높습니다. Prepared Statement에 대해 자세히 알아보고 SQL 인젝션으로부터 안전하게하기

+0

형제님께 고마워했습니다. – mending3

+0

걱정 마세요 !!! –

관련 문제