|
|
|
หน้ารายงาน index กับหน้า form edit ชื่อ username, userlevel ไม่ตรงกันครับ |
|
|
|
|
|
|
|
1. ตรวจสอบฐานข้อมูล
2. โพส สคริปส่วนที่มีปัญหา
|
|
|
|
|
Date :
2021-11-05 08:37:54 |
By :
sleeplesscat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : sleeplesscat เมื่อวันที่ 2021-11-05 08:37:54
รายละเอียดของการตอบ ::
ฐานข้อมูลชื่อครงฟิลด์ครับ
เช็คแล้วครับ มาจาก SESSION username, userlevel
ปัญหาคือ
1.พอใช้ echo SESSION username, userlevel จะเห็นชื่อ username, userlevel ตามภาพที่ 1 ด้านบนครับ (แต่ไม่ได้เข้าเงื่อนไข while ทำไม SESSION username,userlevel ต้อง loop เห็นชื่อไม่ตรงกับชื่อจริงที่อยู่ในฐานข้อมูล )
2.พอใช้ echo username, userlevel ธรรมดา กลับเห็นชื่อ username, ตรงชื่อจริงตามฐานข้อมูลครับ และ userlevel ยังไม่ตรงตามฐานข้อมูลครับ
3.เก็บ SESSION หน้า login แล้วเอา SESSION นำไปใช้งานต่อๆครับ
Code (login.php)
<?php
require_once('database/connection.php');
if (isset($_POST['submit'])) {
// require_once('database/connection.php');
$username = $conn->real_escape_string($_POST['username']);
$password = $conn->real_escape_string($_POST['password']);
date_default_timezone_set('Asia/Bangkok');
$Newtime = date('Y-m-d H:i:s');
$Newtime1 = date('Y-m-d H:i:s');
$sql = "SELECT * FROM `user` WHERE `username` = '".$username."'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
if(!empty($row)){
if(password_verify($password, $row['password'])){
$update = "UPDATE `user` SET updated_at = '$Newtime', updated_dt = '$Newtime1'
WHERE `username` = '$username'";
$runupdate = $conn->query($update);
/** เก็บข้อมูล user เข้าสู่ session เพื่อนำไปใช้งานในหน้าอื่นๆ */
$_SESSION['id'] = $row['id'];
$_SESSION['firstname'] = $row['firstname'];
$_SESSION['lastname'] = $row['lastname'];
$_SESSION['username'] = $row['username'];
$_SESSION['password'] = $row['password'];
$_SESSION['created_at'] = $row['created_at'];
$_SESSION['updated_at'] = $Newtime;
$_SESSION['updated_dt'] = $Newtime1;
$_SESSION['userlevel'] = $row['userlevel'];
if ($_SESSION['userlevel'] == 'admin') {
echo "<script>alert('เข้าสู่ระบบสำเร็จ...'); window.location ='../cmssystem/pages/admin/dashboard/';</script>";
}
if ($_SESSION['userlevel'] == 'member') {
echo "<script>alert('เข้าสู่ระบบสำเร็จ...'); window.location ='../cmssystem/pages/users/dashboard/';</script>";
}
} else {
echo '<script> alert("username หรือ password ไม่ถูกต้อง") </script>';
header('Refresh:0; url=index.php');
}
}else{
echo '<script> alert("ไม่สามารถเข้าสู่ระบบได้โปรดกรอกข้อมูลใหม่อีกครั้ง")</script>';
header("Refresh:0");
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>เข้าสู่ระบบ | CMS</title>
<link rel="shortcut icon" type="image/x-icon" href="assets/images/logo.png" >
<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="stylesheet/style.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Prompt" >
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-free/css/all.min.css">
</head>
<body>
<section class="d-flex align-items-center min-vh-100">
<div class="container">
<div class="row justify-content-center">
<!-- form login -->
<div class="col-md-6 col-lg-6">
<div class="card shadow p-3 p-md-4 cardedit">
<form action="" method="POST">
<h1 class="text-center text-primary font-weight-bold">Computer Management</h1>
<h4 class="text-center">เข้าสู่ระบบ</h4>
<div class="card-body px-2">
<div class="row g-2">
<div class="form-group col-sm-12 ">
<div class="input-group mb-2">
<span class="input-group-text px-3"><i class="fas fa-user"></i></span>
<input type="text" id="username" class="form-control " autocomplete="off" name="username" placeholder="ชื่อผู้ใช้งาน" required>
</div>
</div>
<div class="form-group col-sm-12 ">
<div class="input-group mb-2">
<span class="input-group-text px-3"><i class="fas fa-lock"></i></span>
<input type="password" id="password" class="form-control" name="password" placeholder="รหัสผ่าน" required>
</div>
</div>
<div class="col-12 text-center py-2">
<input type="submit" name="submit" class="btn btn-primary d-block w-50 mx-auto w-100" value="เข้าสู่ระบบ"><hr>
<a href="forget-password.php" class="btn btn-outline-warning">ลืมรหัสผ่าน</a>
<a href="register.php" class="btn btn-outline-danger">สมัครสมาชิก</a>
</div>
</div>
</form>
</div>
</div>
<!-- end form login -->
<!-- //end row -->
</div>
</div>
</section>
<script src="node_modules/jquery/dist/jquery.min.js"></script>
<script src="node_modules/popper.js/dist/umd/popper.min.js"></script>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
</body>
</html>
Code (form-edit.php)
<?php
require_once('../../../database/connection.php');
require_once('edit.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>จัดการผู้ดูแลระบบ | CMS</title>
<link rel="shortcut icon" type="image/x-icon" href="../../../assets/images/logo.png">
<!-- stylesheet -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Kanit" >
<link rel="stylesheet" href="../../../node_modules/@fortawesome/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="../../../plugins/sweetalert2-theme-bootstrap-4/bootstrap-4.min.css">
<link rel="stylesheet" href="../../../assets/css/adminlte.min.css">
<link rel="stylesheet" href="../../../assets/css/style.css">
</head>
<body class="hold-transition sidebar-mini">
<div class="wrapper">
<?php include_once('../includes/sidebar.php') ?>
<div class="content-wrapper pt-3">
<!-- Main content -->
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card shadow">
<div class="card-header border-0 pt-4">
<h4>
<i class="fas fa-user-cog"></i>
แก้ไขข้อมูลผู้ดูแลระบบ
</h4>
<a href="./" class="btn btn-info mt-3">
<i class="fas fa-list"></i>
กลับหน้าหลัก
</a>
</div>
<form action="edit.php" method="POST">
<div class="card-body">
<div class="row justify-content-center">
<div class="col-xl-6 px-1 px-md-5">
<div class="form-group">
<label for="firstname">ชื่อจริง</label>
<input type="text" class="form-control" name="txt_firstname" id="firstname" value="<?php echo $firstname; ?>" placeholder="ชื่อจริง" required>
</div>
<div class="form-group">
<label for="lastname">นามสกุล</label>
<input type="text" class="form-control" name="txt_lastname" id="lastname" value="<?php echo $lastname; ?>" placeholder="นามสกุล" required>
</div>
<div class="form-group">
<label for="email">อีเมลล์</label>
<input type="email" class="form-control" name="txt_email" id="email" value="<?php echo $email; ?>" placeholder="email" required>
</div>
<div class="form-group">
<label for="username">ชื่อผู้ใช้งาน</label>
<input type="text" class="form-control" name="txt_username" id="username" value="<?php echo $username; ?>" placeholder="ชื่อผู้ใช้งาน" disabled required>
</div>
</div>
<div class="col-md-6 px-1 px-md-5">
<div class="form-group">
<label for="password">รหัสผ่าน</label>
<input type="password" class="form-control" name="txt_password" id="password" value="<?php echo $_SESSION['password'];?>" placeholder="รหัสผ่าน" disabled required>
</div>
<div class="form-group">
<label for="userlevel">สิทธิ์การใช้งาน</label>
<select class="form-control" name="txt_userlevel" id="userlevel" value="<?php echo $userlevel; ?>" required>
<option value disabled >กำหนดสิทธิ์</option>
<option value="admin" >Admin</option>
<option value="member">member</option>
</select>
</div>
<div class="form-group">
<label for="updated_dt">วันที่แก้ไข</label>
<input type="datetime" class="form-control" name="date" id="updated_dt" value="<?php echo $_SESSION['updated_dt']; ?>" >
</div>
</div>
</div>
</div>
<div class="card-footer">
<input type="hidden" name="update_id" value="<?php echo $_REQUEST['update_id']; ?>">
<button type="submit" name="btn_update" class="btn btn-primary btn-block mx-auto w-50" value="update">บันทึกข้อมูล</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include_once('../includes/footer.php') ?>
</div>
<!-- SCRIPTS -->
<script src="../../../node_modules/jquery/dist/jquery.min.js"></script>
<script src="../../../node_modules/popper.js/dist/umd/popper.min.js"></script>
<script src="../../../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="../../../plugins/sweetalert2/sweetalert2.min.js"></script>
<script src="../../../assets/js/adminlte.min.js"></script>
</body>
</html>
Code (edit.php)
<?php
require_once('../../../database/connection.php');
if (isset($_REQUEST['update_id'])) {
$sql1 = "SELECT * FROM `user` WHERE `id` = '".$_REQUEST['update_id']."' ";
$result1= $conn->query($sql1);
while ($row = $result1->fetch_array(MYSQLI_ASSOC)) {
$firstname = $row["firstname"];
$lastname= $row["lastname"];
$email = $row["email"];
$username = $row["username"];
$password = $row["password"];
$userlevel = $row["userlevel"];
$updated_dt = $row["updated_dt"];
}
}
// echo 'REQUEST:<pre>' . print_r($_REQUEST, true) . '</pre>';
// echo 'GET:<pre>' . print_r($_GET, true) . '</pre>';
// echo 'POST:<pre>' . print_r($_POST, true) . '</pre>';
if (isset($_REQUEST['btn_update'])) {
$firstname_up = $_REQUEST['txt_firstname'];
$lastname_up = $_REQUEST['txt_lastname'];
$email_up = $_REQUEST['txt_email'];
$userlevel_up = $_REQUEST['txt_userlevel'];
$Newtime1 = date('Y-m-d H:i:s');
// echo $sqli = "UPDATE `user` SET
$sqli = "UPDATE `user` SET
`firstname`='{$firstname_up}',
`lastname`='{$lastname_up}',
`email`='{$email_up}',
`userlevel`='{$userlevel_up}',
`updated_dt` = '$Newtime1'
WHERE `username` = '$username' and `id` = '".$_REQUEST['update_id']."' ";
if (mysqli_query($conn, $sqli)) {
echo "<script>alert('แก้ไขข้อมูลสำเร็จ...'); window.location ='index.php';</script>";
} else {
echo "Error: " . $sqli . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
}
?>
|
ประวัติการแก้ไข 2021-11-05 09:03:09 2021-11-05 09:03:53 2021-11-05 09:08:59 2021-11-05 09:13:25 2021-11-05 09:18:57
|
|
|
|
Date :
2021-11-05 08:58:13 |
By :
TeeTs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รูปที่ 1 เป็นหน้าแสดงข้อมูลจากฐานข้อมูล ที่บอกให้ไปตรวจสอบฐานข้อมูล คือ ไปเชคว่ามันมี 2 records มั้ย หรือตอน insert เข้า table `user` insert ตามที่ submit มั้ย
รูปที่ 2 เป็นหน้า form แสดง session ตามที่มี่
print_r($_SESSION)
|
|
|
|
|
Date :
2021-11-05 09:20:45 |
By :
sleeplesscat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
response edit.php
ใช้ SESSION ตัวเดิมครับ เพราะว่า array , update ข้อมูลต้องตรงกันครับ
รูปที่ 1
|
|
|
|
|
Date :
2021-11-05 11:26:23 |
By :
TeeTs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
update close case
|
|
|
|
|
Date :
2021-11-05 16:18:36 |
By :
TeeTs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|