ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingช่วยดู code session หน่อยค่ะ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ช่วยดู code session หน่อยค่ะ  (อ่าน 1752 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
icenobu
ก๊วนเสียว
*

พลังน้ำใจ: 36
ออฟไลน์ ออฟไลน์

กระทู้: 416



ดูรายละเอียด
« เมื่อ: 14 มีนาคม 2019, 16:04:52 »

ไม่แน่ใจว่าทำตรงไหนผิดคะ ถ้าค่าส่งมาเท่ากับ 0 แล้วมันไม่วิ่งไปที่หน้า admin_page.php คะ


โค๊ด:
<?php
// Initialize the session
session_start();
 
// Check if the user is already logged in, if yes then redirect him to dashboard page
// if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
//   header("location: welcome.php");
//   exit;
// }
 
// Include config file
require_once "inc/config.php";
 
// Define variables and initialize with empty values
$email $password "";
$email_err $password_err "";
 
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
 
    
// Check if email is empty
    
if(empty(trim($_POST["email"]))){
        
$email_err "Please enter email.";
    } else{
        
$email trim($_POST["email"]);
    }
    
    
// Check if password is empty
    
if(empty(trim($_POST["password"]))){
        
$password_err "Please enter your password.";
    } else{
        
$password trim($_POST["password"]);
    }
    
    
// Validate credentials
    
if(empty($email_err) && empty($password_err)){
        
// Prepare a select statement
        
$sql "SELECT id, email, level, password FROM users WHERE email = ?";
     
        if(
$stmt mysqli_prepare($link$sql)){
            
// Bind variables to the prepared statement as parameters
            
mysqli_stmt_bind_param($stmt"s"$param_email);
            
            
// Set parameters
            
$param_email $email;
            
            
// Attempt to execute the prepared statement
            
if(mysqli_stmt_execute($stmt)){
                
// Store result
                
mysqli_stmt_store_result($stmt);
                
                
// Check if email exists, if yes then verify password
                
if(mysqli_stmt_num_rows($stmt) == 1){                    
                    
// Bind result variables
                    
mysqli_stmt_bind_result($stmt$id$email$level$hashed_password);
                    if(
mysqli_stmt_fetch($stmt)){
                        if(
password_verify($password$hashed_password)){
                            
// Password is correct, so start a new session
                            
session_start();
                            
                            
// Store data in session variables
                            
$_SESSION["loggedin"] = true;
                            
$_SESSION["id"] = $id;
                            
$_SESSION["email"] = $email;        
                            
$_SESSION["level"] = $level;

                            
//echo ("$level"); die();  
                            
if($_SESSION["$level"]=="0"){
 
                                
Header("location: admin_page.php");
         
                              }        
                            
                            
// Redirect user to dashboard page
                            
header("location: dashboard.php");
                        } else{
                            
// Display an error message if password is not valid
                            
$password_err "The password you entered was not valid.";
                        }
                    }
                } else{
                    
// Display an error message if email doesn't exist
                    
$email_err "No account found with that email.";
                }
            } else{
                echo 
"Oops! Something went wrong. Please try again later.";
            }
        }
        
        
// Close statement
        
mysqli_stmt_close($stmt);
    }
    
    
// Close connection
    
mysqli_close($link);
}
?>
« แก้ไขครั้งสุดท้าย: 14 มีนาคม 2019, 16:05:27 โดย icenobu » บันทึกการเข้า

raimai
สมุนแก๊งเสียว
*

พลังน้ำใจ: 37
ออฟไลน์ ออฟไลน์

กระทู้: 664



ดูรายละเอียด
« ตอบ #1 เมื่อ: 14 มีนาคม 2019, 16:07:58 »

if($_SESSION["$level"]=="0")

เป็น

if($_SESSION["level"]=="0")

รึเปล่า
บันทึกการเข้า

icenobu
ก๊วนเสียว
*

พลังน้ำใจ: 36
ออฟไลน์ ออฟไลน์

กระทู้: 416



ดูรายละเอียด
« ตอบ #2 เมื่อ: 14 มีนาคม 2019, 16:17:02 »

if($_SESSION["$level"]=="0")

เป็น

if($_SESSION["level"]=="0")

รึเปล่า

ไม่ได้คะ ><
บันทึกการเข้า

BOS
ก๊วนเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 459



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 14 มีนาคม 2019, 22:15:29 »

session_start(); หลายที ไม่ขึ้น error เหรอครับ
ลองลบออกให้เหลืออันเดียว
แล้วก็ใช้ if($_SESSION["level"]=="0") เหมือนที่คุณ raimai บอกลองดูครับ ได้ไหม
ถ้าไม่ได้ก็ลองแสดงค่า $_SESSION["level"] ออกมาดูครับ ค่าตรงกับเงื่อนไขหรือเปล่า

if($_SESSION["$level"]=="0")

เป็น

if($_SESSION["level"]=="0")

รึเปล่า
บันทึกการเข้า

icenobu
ก๊วนเสียว
*

พลังน้ำใจ: 36
ออฟไลน์ ออฟไลน์

กระทู้: 416



ดูรายละเอียด
« ตอบ #4 เมื่อ: 15 มีนาคม 2019, 07:51:41 »

session_start(); หลายที ไม่ขึ้น error เหรอครับ
ลองลบออกให้เหลืออันเดียว
แล้วก็ใช้ if($_SESSION["level"]=="0") เหมือนที่คุณ raimai บอกลองดูครับ ได้ไหม
ถ้าไม่ได้ก็ลองแสดงค่า $_SESSION["level"] ออกมาดูครับ ค่าตรงกับเงื่อนไขหรือเปล่า

if($_SESSION["$level"]=="0")

เป็น

if($_SESSION["level"]=="0")

รึเปล่า

ค่าออกมาเท่ากับ 0 ค่ะ แต่มันไม่วิ่งเข้าไปที่เงื่อนไข if($_SESSION["level"]=="0")

โค๊ด:
                    if(mysqli_stmt_fetch($stmt)){
                        if(password_verify($password, $hashed_password)){
                           
                            // Store data in session variables
                            $_SESSION["loggedin"] = true;
                            $_SESSION["id"] = $id;
                            $_SESSION["email"] = $email;       
                            $_SESSION["level"] = $level;

                            //echo ("$level"); die(); 
                            if($_SESSION["level"]=="0"){
 
                                Header("location: admin_page.php");
         
                              }       
                           
                            // Redirect user to dashboard page
                            header("location: dashboard.php");
                        } else{
                            // Display an error message if password is not valid
                            $password_err = "The password you entered was not valid.";
                        }
                    }
บันทึกการเข้า

raimai
สมุนแก๊งเสียว
*

พลังน้ำใจ: 37
ออฟไลน์ ออฟไลน์

กระทู้: 664



ดูรายละเอียด
« ตอบ #5 เมื่อ: 15 มีนาคม 2019, 08:24:06 »

ลอง

echo ($_SESSION["level"]);
ออกมาดูคับ
บันทึกการเข้า

BOS
ก๊วนเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 459



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 15 มีนาคม 2019, 14:37:51 »

session_start(); หลายที ไม่ขึ้น error เหรอครับ
ลองลบออกให้เหลืออันเดียว
แล้วก็ใช้ if($_SESSION["level"]=="0") เหมือนที่คุณ raimai บอกลองดูครับ ได้ไหม
ถ้าไม่ได้ก็ลองแสดงค่า $_SESSION["level"] ออกมาดูครับ ค่าตรงกับเงื่อนไขหรือเปล่า

if($_SESSION["$level"]=="0")

เป็น

if($_SESSION["level"]=="0")

รึเปล่า

ค่าออกมาเท่ากับ 0 ค่ะ แต่มันไม่วิ่งเข้าไปที่เงื่อนไข if($_SESSION["level"]=="0")

โค๊ด:
if($_SESSION["level"]=="0"){
 
     Header("location: admin_page.php");
         
}       
                           
// Redirect user to dashboard page
header("location: dashboard.php");

ลองใส่ else ลงไปด้วยสิครับ

if($_SESSION["level"]=="0"){
   header("location: admin_page.php");
}
else {
   header("location: dashboard.php");
}
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์