Насколько это безопасно?Нифига вообще не безопасно, тупо можно перебором всех "попробовать порулить". Большая такая дыра. Ну, пока не заметили - все ок, но кто-то обязательно заметит, 148%.
И по поводу опции с запоминанием сессии, это как сделать безопасно?Уже написали, в принципе смысл - не хранить какие-то явно связывающие данные типа логина или айди в качестве ключа, а генерировать случайный хеш/ключ, который хранить на клиенте и на сервере.
И также мне всегда нравилось, что сессии можно закрывать удаленно(как это сделано в телеграме).Не понял о чем речь, удаленно это из туалета когда комп в комнате? или из тайного центра тайного правительства отключать клиенту сессию и интернет? О чем это вообще?
Но как быть, если сессия на клиенте просто пропадет?Сессия (внезапно) не может пропасть на клиенте, по тому как ее там никогда не бывает, бывает там только сессионная кука - ключ к сессии, которая (сессия) - на сервере, так что вопрос в данной формулировке смысла не имеет.
WHERE `ID`={$_GET['id']}за такое в приличном обществе бьют клавой по кумполу, до полного просветления.
да, а что в этом случае тогда?а в этом случае во первых браузер вполне естественно будет класть болт на ваши заголовки, ибо контент уже загружен, а во вторых все это примет объект аякса, а не документ, и если вам так принципиально сделать это именно аяксом, то надо писать на жс обработчик принятого контента и из него лепить уже блоб, и потом файл сохранять только. Тупо, муторно, жрет процессор и память. Достаточно было бы сделать линк с нужными параметрами и отправлять на сервер запрос гет, точно так же как вы делаете это аяксом, только без аякса, и все будет работать.
$url = "info.php";почитайте во первых рфц про урл, во вторых ошибки смотрите, либо включите вывод ошибок и варнингов, либо смотрите логи.
Но вопрос в том, насколько это правильно, с точки зрения паттерна фабричного метода.Чет вы сильно путаете теплое с мягким... Внутренняя реализация классов созданных фабрикой НИКАК не влияет на "фабричность". Паттерн относится только к методу создания готовых объектов по определенным условиям. Какие это объекты вообще не суть важно. По сути они могут быть абсолютно разные, просто по логике чаще всего это однотипные объекты, отличающиеся в настройках или внутренней реализации (например все они реализуют один интерфейс, но внутри работают по разному).
//$role = $_SESSION['role'];
$role = 'moderator';
class Role{
public function checkPermission($action)
{
if(isset ($this->$action))
{
return $this->$action;
}
return false;
}
}
class admin extends Role{
protected $addItem = true;
protected $editItem = true;
protected $deleteItem = true;
}
class moderator extends Role{
protected $addItem = true;
protected $editItem = true;
protected $deleteItem = false;
}
class publicator extends Role{
protected $addItem = true;
protected $editItem = false;
protected $deleteItem = false;
}
class Factory{
public static function createUsers($role) : Role{
if(class_exists($role))
return new $role;
else
echo ("Роль".$role."отсутствует");
}
}
$login = Factory::createUsers($role);
var_dump($login);
// try to use in code:
if ($login->checkPermission('editItem')){
echo 'lets edit!';
};