亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果用戶帳戶已從數據庫中刪除但用戶已登錄,則銷毀會話

如果用戶帳戶已從數據庫中刪除但用戶已登錄,則銷毀會話

PHP
呼如林 2021-12-03 16:09:47
我在 PHP 中創建了用戶系統?,F在我想要這個,如果我從數據庫中刪除用戶帳戶,那么會話應該被銷毀并且用戶應該被注銷并向他顯示一條消息。我已經搜索了很多,我從中得到了一個(堆棧溢出),但這不是我問題的答案。這是鏈接:刪除用戶但仍登錄后銷毀會話。我已經檢查了這些答案,但這些不是我的問題的答案。我知道函數,session_destroy()但我怎樣才能讓它按我想要的方式工作。如何實施才能完成這項工作。下面是用戶登錄功能代碼:public function userLogin($data){        $phone_number = mysqli_real_escape_string($this->db->link, $data['phone_number']);        $password = mysqli_real_escape_string($this->db->link, $data['password']);        if($phone_number == "" || $password == ""){            $loginmsg = "<div class='alert alert-danger'>Phone number or Password must not be empty!<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>&times;</span></button></div>";            return $loginmsg;        } else {            $this->setSessionDuringLogin($phone_number, $password);        }    }public function setSessionDuringLogin($phone_number, $password){        $query = "SELECT * FROM users WHERE phone_number = '$phone_number' AND password = '$password'";        $result = $this->db->select($query);        if($result != false){            $value = $result->fetch_assoc();            Session::set("userlogin", true);            Session::set("user_id", $value['user_id']);            Session::set("first_name", $value['first_name']);            Session::set("last_name", $value['last_name']);            Session::set("email", $value['email']);            Session::set("password", $value['password']);            header("Location: profile.php");        } else {            $loginmsg = "<div class='alert alert-danger'>Email or Password is wrong.<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>&times;</span></button></div>";            return $loginmsg;        }    }
查看完整描述

2 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

你需要:


destroy_session();

或者您需要刪除會話變量:


unset($_SESSION);

您可以重定向到索引頁面:


header('Location: index.php);

exit();

如果會話在數據庫上工作,則銷毀會話對象。


$pdo = new PDO('mysql:host=localhost;dbname=produkty', 'root', 'root');

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$stmt = $pdo->prepare('SELECT COUNT(*) as cnt FROM users WHERE user_id = :s1');

$stmt->execute( array( ':s1' => $userid ) );

$cnt = $stmt->fetchAll()[0]['cnt'];


if($cnt == 0){

    session_destroy();

    // destroy session here

}


查看完整回答
反對 回復 2021-12-03
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

//call this function at top of every page after login


function checkexistuser(){


$user_id = $_SESSION['user_id'];


$query = "SELECT * FROM users WHERE user_id = '".$user_id."' ";

        $result = $this->db->select($query);

        if($result->num_rows() == 0){


            //destroy_session , redirect, show message whatever you want.

        }


}


查看完整回答
反對 回復 2021-12-03
  • 2 回答
  • 0 關注
  • 246 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號