หัวข้อ: ช่วยดู code session หน่อยค่ะ
เริ่มหัวข้อโดย: icenobu ที่ 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); } ?>
หัวข้อ: Re: ช่วยดู code session หน่อยค่ะ
เริ่มหัวข้อโดย: raimai ที่ 14 มีนาคม 2019, 16:07:58
if($_SESSION["$level"]=="0")
เป็น
if($_SESSION["level"]=="0")
รึเปล่า
หัวข้อ: Re: ช่วยดู code session หน่อยค่ะ
เริ่มหัวข้อโดย: icenobu ที่ 14 มีนาคม 2019, 16:17:02
if($_SESSION["$level"]=="0")
เป็น
if($_SESSION["level"]=="0")
รึเปล่า
ไม่ได้คะ ><
หัวข้อ: Re: ช่วยดู code session หน่อยค่ะ
เริ่มหัวข้อโดย: BOS ที่ 14 มีนาคม 2019, 22:15:29
session_start(); หลายที ไม่ขึ้น error เหรอครับ ลองลบออกให้เหลืออันเดียว แล้วก็ใช้ if($_SESSION["level"]=="0") เหมือนที่คุณ raimai บอกลองดูครับ ได้ไหม ถ้าไม่ได้ก็ลองแสดงค่า $_SESSION["level"] ออกมาดูครับ ค่าตรงกับเงื่อนไขหรือเปล่า if($_SESSION["$level"]=="0")
เป็น
if($_SESSION["level"]=="0")
รึเปล่า
หัวข้อ: Re: ช่วยดู code session หน่อยค่ะ
เริ่มหัวข้อโดย: icenobu ที่ 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."; } }
หัวข้อ: Re: ช่วยดู code session หน่อยค่ะ
เริ่มหัวข้อโดย: raimai ที่ 15 มีนาคม 2019, 08:24:06
ลอง
echo ($_SESSION["level"]); ออกมาดูคับ
หัวข้อ: Re: ช่วยดู code session หน่อยค่ะ
เริ่มหัวข้อโดย: BOS ที่ 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"); }
|