我試圖讓我的周圍會話頭以及如何使用它們顯示的用戶數據,並授予訪問網站等領域......我如何使用會話獲取用戶信息?
我有session_start();
在我的配置文件的開頭,然後進行做連接到數據庫等等
然後我有一個user.php的類如下:
<?php
include('Password.php');
class User extends Password{
private $db;
function __construct($db){
parent::__construct();
$this->_db = $db;
}
public function is_logged_in(){
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true){
return true;
}
}
private function get_user_hash($username){
try {
$stmt = $this->_db->prepare('SELECT password FROM members WHERE username = :username');
$stmt->execute(array('username' => $username));
$row = $stmt->fetch();
return $row['password'];
} catch(PDOException $e) {
echo '<p class="error">'.$e->getMessage().'</p>';
}
}
public function login($username,$password){
$hashed = $this->get_user_hash($username);
if($this->password_verify($password,$hashed) == 1){
$_SESSION['loggedin'] = true;
return true;
}
}
public function logout(){
session_destroy();
}
}
?>
,當我使用var_dump($_SESSION);
回報:
array(1) { ["loggedin"]=> bool(true) }
我想要做的事情就是像「你好,'(人員用戶名)''這個網站的'(基本,高級,管理等等)'區域。
,所以我想我想這樣搞$_SESSION['memberID'], $_SESSION['username'], $_SESSION['level']
所以......首先是我在尋找正確的部位做這種事情(user.php的),並且將已經修改任何我允許我這樣做,還是我需要創建另一個函數和查詢數據庫等...如果我做的事情如$_SESSION['username'] = 'mee';
那麼它會顯示'我',但我想要做的是得到用戶名登錄。
*提前道歉,如果這沒什麼意義或令人困惑,iv一直試圖弄清楚一段時間現在和字面上什麼都沒有做有意義 - 大腦過載:/
用戶登錄後將變量添加到會話數組,然後您可以在任何啓動會話的頁面中使用它們。確保在用戶註銷時清除會話陣列。每個用戶將獲得他們自己的一組會話變量。 – 2015-01-09 22:30:52
出於安全考慮,謹慎地向數據庫查詢數據庫中每個對限制區域的後續請求。這可以通過將用戶標識存儲在會話變量中並通過存儲的用戶標識的每個請求來拉取用戶數據來實現。這樣,如果在用戶仍然登錄時訪問被撤銷,系統將會正確響應 – 2015-01-09 22:32:48