я пытаюсь получить мою голову вокруг сессий и как использовать их, чтобы показать пользовательские данные и предоставлять доступ к части сайта и т.д. ...Как я могу использовать сеансы для получения информации о пользователе?
я есть 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';
, тогда он отобразит «mee», но то, что я хочу сделать, это получить имя пользователя для любого пользователя, вошедшего в систему.
* извиняется заранее, если это не имеет смысла или смущает, iv пытался понять это в течение некоторого времени и буквально ничего не делает, делает смысл - перегрузка мозга:/
Добавьте переменные в массив сеансов после входа пользователя в систему, а затем вы можете использовать их на любой странице, на которой вы начинаете сеанс, прошедший через эту точку. Обязательно очистите массив сеанса, когда пользователь выйдет из системы. Каждый пользователь получит свой собственный набор переменных сеанса. –
В целях безопасности разумно запрашивать базу данных для каждого последующего запроса в запрещенных зонах в вашей базе данных. Это может быть достигнуто путем простого хранения идентификатора пользователя в переменной сеанса и вытаскивания пользовательских данных с каждым запросом сохраненным идентификатором пользователя. Таким образом, если доступ отменяется, когда пользователь все еще регистрируется в системе, он будет отвечать правильно –