{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Favorit * 0.19
[автор] (19 май 2016, 11:00) [0/0] [0] [отв] [спам] [под] +1 | -1

Ребятосы такой момент совет ваш нужен, как лучше сделать проверку на существующего пользователя через сессии ниже 3 варианта:

1. Проверка на наличие ID в сессии логина и пароля
$req = mysql_query("SELECT * FROM `elewar_users` WHERE `id`='".$_SESSION['id']."' and `login`='".$_SESSION['login']."' and `password`='".$_SESSION['password']."' "*;
$avto=mysql_num_rows($req);
if($avto==1){
Доступ разрешен!
}else{
unset($_SESSION['id']);
unset($_SESSION['login']);
unset($_SESSION['password']);
unset($_SESSION['auth']);
header ("Location: ../index.php"*;
exit;
}


2. Или просто проверку на ID

$req = mysql_query("SELECT * FROM `elewar_users` WHERE `id`='".$_SESSION['id']."' "*;
$avto=mysql_num_rows($req);
if($avto==1){
Доступ разрешен!
}else{
unset($_SESSION['id']);
unset($_SESSION['login']);
unset($_SESSION['password']);
unset($_SESSION['auth']);
header ("Location: ../index.php"*;
exit;
}

3. Или же вообще такой варик:
$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '".$_SESSION['id']."' LIMIT 1"*);

а дальше проверять
if(!empty($us)){

Но я думаю 3 вариант это полное говно


ЧТо скажите, или может что подскажите? Как в лучшем варианте?
И будет ли эта проверка нагружать БД?


Изм. 3 раз. / Посл. изм.
Favorit * 0.19
(19 май 2016, 11:02)
2.
NTL * 18.08
(19 май 2016, 11:08) [0/0] [0] [отв] [спам] [под] +1 | -1

первый и второй варик вполне сойдет

3.
Favorit * 0.19
[автор] (19 май 2016, 11:11) [0/0] [0] [отв] [спам] [под] +1 | -1

Т.е проверку лучше поставить только на `id`='".$_SESSION['id']."' или для безопасности лучше уже на логин пароль и ид?))
`id`='".$_SESSION['id']."' and `login`='".$_SESSION['login']."' and `password`='".$_SESSION['password']."' "

4.
NTL * 18.08
(19 май 2016, 11:19) [0/0] [0] [отв] [спам] [под] +1 | -1

Логин и пароль,if (isset($_SESSION['login']) && isset($_SESSION['pass'])){ и погнали под свои нужды запиливать


Изм. 1 раз. / Посл. изм.
NTL * 18.08
(19 май 2016, 11:21)
5.
NTL * 18.08
(19 май 2016, 11:22) [0/0] [0] [отв] [спам] [под] +1 | -1

Favorit,unset($_SESSION['id']);
unset($_SESSION['login']);
unset($_SESSION['password']);
unset($_SESSION['auth']); это лучше заменить на session_destroy(); *

6.
Favorit * 0.19
[автор] (19 май 2016, 11:24) [0/0] [0] [отв] [спам] [под] +1 | -1
NTL,

да читал об этом, пока особо внимание не обращал на нюансы, заменю)

Благодарю)
Добавлено 19.05.16 в 11:26:48:
$_SESSION['id']=$user['id'];
$_SESSION['login']=$user['login'];
$_SESSION['password']=$user['password'];
$_SESSION['auth']=1;

ВОт так вот записываю сессию, при авторизации

7.
Mobiaaa * Верифицирован 2.73
(19 май 2016, 12:17) [0/0] [0] [отв] [спам] [под] +1 | -1

логин и пароль, иначе при "краже" аккаунта пользователя даже при смене пароля доступ останется у злоумышленника (так как session жива будет)

8.
ANGRY * 2.73
(19 май 2016, 12:33) [0/0] [0] [отв] [спам] [под] +1 | -1

Тему перенёс из подраздела Программирование в подраздел Вопросы новичков!*

9.
Favorit * 0.19
[автор] (19 май 2016, 12:51) [0/0] [0] [отв] [спам] [под] +1 | -1
Mobiaaa,

$req = mysql_query("SELECT * FROM `elewar_users` WHERE `id`='".$_SESSION['id']."' and `login`='".$_SESSION['login']."' and `password`='".$_SESSION['password']."' "*;

Так вот проверку делаю, думаю вариант оптимальный будет?))+ ко всему пароль кодирую


Изм. 1 раз. / Посл. изм.
Favorit * 0.19
(19 май 2016, 12:51)
10.
NTL * 18.08
(19 май 2016, 13:04) [0/0] [0] [отв] [спам] [под] +1 | -1

Favorit,Думаю $_SESSION['id'] лишнее

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений