สร้างไฟล์ condb.php เพื่อเชื่อม DB
ไฟล์ที่ 1 /var/www/html/index.php
- เพิ่ม code บรรทัด ที่ 48 ในไฟล์ index.php
include('condb.php');
- เพิ่มฟังก์ชั่น getRandomStringShuffle (ใช้สร้าง token) กับ disableuser (ใช้ disable user)
function getRandomStringShuffle($length = 50)
{
$stringSpace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$stringLength = strlen($stringSpace);
$string = str_repeat($stringSpace, ceil($length / $stringLength));
$shuffledString = str_shuffle($string);
$randomString = substr($shuffledString, 1, $length);
return $randomString;
}
function disableuser($user){
$email = [];
array_push($email,$user);
$data = json_encode($email);
$curl = curl_init("https://panel.technologyland.co.th/api/alertdisable.php");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers[] = 'Content-Type: application/*+json';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
}
- เพิ่ม code ทั้งหมด ไว้หลัง code ในภาพ
$key_session = $obj->getRandomStringShuffle(); // เรียกใช้ฟังก์ชั่น สร้าง Token
$exp_key_session = date("Y-m-d H:i:s",strtotime("+5 minutes")); // กำหนดเวลาหมดอายุ 5 นาที
// เช็คสถานะ force change ใน db
$sql_q = "SELECT token,key_session,expire_key_session,status,policy_pass FROM `tb218_force_change_password` WHERE user_name like '".$_SESSION['username']."' AND policy_pass = '1001' LIMIT 1";
$a = mysqli_query( $connect, $sql_q );
$result =mysqli_fetch_array($a,MYSQLI_ASSOC);
// สร้าง url เพื่อใช้สำหรับ redirect ในหน้า force change password
$url = 'http' . (($_SERVER['HTTPS'] == 'on') ? 's' : '') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// เช็คว่ามี สถานะ force change หรือไม่ ถ้ามีก้อเข้าเงื่อนไข
if($a->num_rows > 0 && $result['status'] == 'no'){
$u = array("token"=>$result['token'],"key_session"=>$key_session,"policy"=>$result['policy_pass'],"url" => $url);
$urlArray = urlencode(base64_encode(json_encode($u)));
$sql_u = "UPDATE `tb218_force_change_password` SET `key_session` = '$key_session',expire_key_session = '$exp_key_session',session_expired = 'no' WHERE user_name like '".$_SESSION['username']."' AND policy_pass = '1001'";
$b = mysqli_query( $connect, $sql_u );
$disables = $obj->disableuser($_SESSION['username']);
$RCMAIL->logout_actions();
$RCMAIL->kill_session();
header('Location: https://panel.technologyland.co.th/forcechangepass/fchp.php?u='.$urlArray);
exit();
} else {
$sql_q = "SELECT token,key_session,expire_key_session,status,policy_pass,date_reset_password FROM `tb218_force_change_password` WHERE user_name like '".$_SESSION['username']."' AND policy_pass != '1001' LIMIT 1";
$a = mysqli_query( $connect, $sql_q );
$result =mysqli_fetch_array($a,MYSQLI_ASSOC);
if($a->num_rows > 0){
$reset_date = strtotime(date($result['date_reset_password']));
$date_now = strtotime(date('Y-m-d'));
if($date_now >= $reset_date ){
$u = array("token"=>$result['token'],"key_session"=>$key_session,"policy"=>$result['policy_pass'],"time" => date("Y-m-d H:i:s"),"username" => $_SESSION['username'],"url" => $url);
$urlArray = urlencode(base64_encode(json_encode($u)));
$sql_u = "UPDATE `tb218_force_change_password` SET `key_session` = '$key_session',expire_key_session = '$exp_key_session',session_expired = 'no' WHERE user_name like '".$_SESSION['username']."' AND policy_pass = '".$result['policy_pass']."'";
$b = mysqli_query( $connect, $sql_u );
$disables = $obj->disableuser($_SESSION['username']);
$RCMAIL->logout_actions();
$RCMAIL->kill_session();
header('Location: https://panel.technologyland.co.th/forcechangepass/fchp.php?u='.$urlArray);
exit();
}
}
}
======================================================================
ไฟล์ที่ 2 /var/www/html/skins/larry/templates/login.html
เพิ่มcode ด่านลงในปุ่ม log in
oncliick="clicklogin()"
เพิ่ม code ด้านล่างใน <form>
id="form-login"
เพิ่ม script ด้านล่างสุดของ ไฟล์
<script>
function clicklogin(){
var user = document.getElementById("rcmloginuser").value;
var pass = document.getElementById("rcmloginpwd").value;
// form_login.submit();
// console.log(val);
const payload_jwt_data_checkpay = {
user:user,
pass: pass
};
// console.log(val);
const options = {
method: 'POST',
headers: {accept: 'application/json', 'content-type': 'application/*+json'},
body: JSON.stringify(payload_jwt_data_checkpay)
};
fetch('https://panel.technologyland.co.th/api/alertactive.php', options)
.then(response => response.json())
.then(data => {
// console.log(data); // แสดงข้อมูล JSON จาก then ข้างบน
var form_login = document.getElementById("form-login");
form_login.submit();
// document.getElementById("test_checkpay").value = data.payload;
// console.log(parseJwt(data.payload));
})
}
</script>
ไม่มีความคิดเห็น:
แสดงความคิดเห็น