FanatPHP, поясните,почему нельзя хранить экземпляры классов в сессии.Сессии хранятся на сервере, а значит.они защищены.А так это очень удобно,ведь в любом скрипте я могу получить нужные данные из экземпляра, хранящегося в сессии
class User{
function __construct($email,$password){
$this->email=$email;
$this->password=$password;
}
function get_user_id($email){
$sql="SELECT FROM users WHERE email='$email' ";
//выполняю запрос и сохраняю результат в переменную $id
return $id;
}
}
class Basket{
function get_user_id($email){
$sql="SELECT FROM users WHERE email='$email' ";
//выполняю запрос и сохраняю результат в переменную $id
return $id;
}
}
Я уже понял, что это бессмысленный код.Решил проблему так:При авторизации сохраняю в сессию два экземпляр класса-User и Basket($_SESSION['user']=new User(),$_SESSION['basket']=new Basket()).Далее при необходимости через экземпляр класса User получаю id,email пользователя.Потом при использовании методов класса Basket просто передаю эти данные в аргумент функции и получаю нужный результат
kocherman, я понимаю.Предположим, что сторонний пользователь знает id другого пользователя.Насколько я знаю,сессии хранятся на сервере, а id определенной сессии хранится в файле cookie.Даже если сторонний пользователь сможет как-то создать сессию с id пользователя, он же не сможет получить доступ к товарам в его корзине?(Из-за различий в идентификаторе сессии).Это вопрос безопасности