[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Куки в обработчике
Страницы: 1, 2, 3
AlmazDelDiablo
Объясню простейший алгоритм:

При входе в аккаунт, из $_POST (то есть формы входа) берем логин и пароль, хешируем пароль, делаем запрос в базу, есть ли юзер с таким логином и сверяем хеши паролей. Если всё ок, бзер в базе и пароль подходит — передаем его ID в сессию, в куках же при старте сессии автоматически создастся код доступа к сессии.

Далее, на каждой странице должна идти проверка, есть ли ID в сессии и, если оно есть, делаем запрос к базе, вынимая все данные о юзере по ID. И вот с этим массивом данных уже в дальнейшем работать, а куки и сессии не трогать.

PS: Сессии хранятся на сервере, а не у пользователя

_____________
Блог | VK | GitHub | Twitch
Ramzes_Ra
Цитата
а кто сказал что сессии на стороне пользователя хранятся?

куки у пользователя, сессии на сервере..
я неправильно выразился.. преимущества и недостатки того и другого способа в авторизации пользователей на сайте..
AlmazDelDiablo
Использовать надо и то, и то. Никто не заставляет вас выбирать что-то одно. Просто сессии более защищены от взлома. У меня на сайте, например, в сессиях хранится АйДишка юзера, а в куках выбранный язык, шаблон сайта, метод сортировки новостей и т.д. То есть в куках можно хранить то, что даже в измененном варианте не может причинить вреда сайту и его пользователям.

_____________
Блог | VK | GitHub | Twitch
killer8080
Цитата (Ramzes_Ra @ 5.08.2012 - 18:29)
killer8080, ты на саммо деле экстрасенс..))) да, флешем..
но я уже решил другим способом сделать, вон, в теме загрузка картинок на сервер


Чё та никакого решения я там не увидел rolleyes.gif
killer8080
Цитата (Ramzes_Ra @ 5.08.2012 - 18:41)
куки у пользователя, сессии на сервере..
я неправильно выразился.. преимущества и недостатки того и другого способа в авторизации пользователей на сайте..


Не надо мешать все в кучу. Сессии - это механизм, куки - это средство которое этот механизм использует.
Ramzes_Ra
Цитата
Объясню простейший алгоритм:

При входе в аккаунт, из $_POST (то есть формы входа) берем логин и пароль, хешируем пароль, делаем запрос в базу, есть ли юзер с таким логином и сверяем хеши паролей. Если всё ок, бзер в базе и пароль подходит — передаем его ID в сессию, в куках же при старте сессии автоматически создастся код доступа к сессии.

Далее, на каждой странице должна идти проверка, есть ли ID в сессии и, если оно есть, делаем запрос к базе, вынимая все данные о юзере по ID. И вот с этим массивом данных уже в дальнейшем работать, а куки и сессии не трогать.

PS: Сессии хранятся на сервере, а не у пользователя

это я знаю.. но при реализации всегда были какие-то непонятные ошибки..
Например, меня всё время донимала проблема с session start().. её надо писать один раз в самом верху.. я так и делал.. и когда я это писал, вылетала ошибка, типа сессия уже запущена.. хотя эта запись единственная..

когда я брал готовые формы авторизации на Сессии, то всё работало.. однако, по каким-то параметрам они мне не подходили, а чтобы переделать у меня не хватало знаний, там был слишком мудрёёёёный код..

я конечно понимаю, что нужно ещё учиться и прочее.. Если делаешь сайты, то лучше вообще идти на прораммиста в универ.. Однако, моего уровня знаний мне хватает, чтобы сделать очень и очень многое.. есть разве что пробелы.. скажем вот, в Сессиях пробел.. в загрузке файлов через форму - пробел.. буду гуглить, куда ж без этого..))

Цитата
Чё та никакого решения я там не увидел

killer8080, это пока что)) вот тут разберусь с сессиями, и если будут работать, то на основе переменной id в сессиях буду уже делать загрузку изображений.. думаю, напишу сам и выложу в ту тему, как и советовали.. думаю, подскажите, какие уязвимости я попустил))
AlmazDelDiablo
Цитата (Ramzes_Ra @ 5.08.2012 - 20:49)
Цитата
Объясню простейший алгоритм:

При входе в аккаунт, из $_POST (то есть формы входа) берем логин и пароль, хешируем пароль, делаем запрос в базу, есть ли юзер с таким логином и сверяем хеши паролей. Если всё ок, бзер в базе и пароль подходит — передаем его ID в сессию, в куках же при старте сессии автоматически создастся код доступа к сессии.

Далее, на каждой странице должна идти проверка, есть ли ID в сессии и, если оно есть, делаем запрос к базе, вынимая все данные о юзере по ID. И вот с этим массивом данных уже в дальнейшем работать, а куки и сессии не трогать.

PS: Сессии хранятся на сервере, а не у пользователя

это я знаю.. но при реализации всегда были какие-то непонятные ошибки..
Например, меня всё время донимала проблема с session start().. её надо писать один раз в самом верху.. я так и делал.. и когда я это писал, вылетала ошибка, типа сессия уже запущена.. хотя эта запись единственная..

когда я брал готовые формы авторизации на Сессии, то всё работало.. однако, по каким-то параметрам они мне не подходили, а чтобы переделать у меня не хватало знаний, там был слишком мудрёёёёный код..

я конечно понимаю, что нужно ещё учиться и прочее.. Если делаешь сайты, то лучше вообще идти на прораммиста в универ.. Однако, моего уровня знаний мне хватает, чтобы сделать очень и очень многое.. есть разве что пробелы.. скажем вот, в Сессиях пробел.. в загрузке файлов через форму - пробел.. буду гуглить, куда ж без этого..))

Вот когда писали те самые формы авторизации с использованием сессий — надо было нам сюда написать. мы бы помогли )

А на счет универа не соглашусь, так как PHP мало где препорадют. И, как правило, где преподают — делают это плохо, так как направление для высшего образования новое и учитывая тамошние зарплаты, преподов адекватных очень мало. Лично моё мнение — учиться языкам стоит самому + платные курсы серьезных компаний. Хотя эта тема — большая площадка для холиваров, так что лучше её опустить :)

_____________
Блог | VK | GitHub | Twitch
Ramzes_Ra
первый раз я взглянул на php ещё 4 года назад, 2 года учил, потом бросил, сейчас снова взялся.. но столь приятных людей как вы, чтобы так здОрово помогали, не грубили - я не встречал.. это даже заряжает на работу)

вот, я сделал авторизацию... вспомнил что изучал..
значит есть форма в блоке: (опустил второстепенный текст, вместо него точки ........)
session_start(); //инициализирум механизм сесссий

if(!isset($_SESSION['id'])) {
// если форма не заполнена, то выводим ее
echo '.......
<form action="ath.php" method="post" class="contact-form">
<div>
<input class="text-input" type="text" value="E-mail" name="email" onfocus="clearInput(this);" onblur="restoreInput(this);" />
<br/>
<input class="text-input" type="text" value="Пароль" name="pass" onfocus="clearInput(this);" onblur="restoreInput(this);" />
<br/>
<div class="align-left"> <span class="blue-button"><span>
<input type="submit" id="enter" value="Войти" />
</span></span>
</div>
............................

}
else
{
echo '
.... профиль ........
}


далее идёт обработчик файл ath.php
<?
if (isset($_POST['email']) & isset($_POST['pass']))
{

include("blocks/bd.php");

//проверяем есть ли пользователь с таким login'ом и password'ом
$res=mysql_query("SELECT * FROM `names` WHERE `email`='".$_POST['email']."'
AND pass='"
.md5($_POST['pass'])."'", $db);
if(mysql_num_rows($res)!=1){ //такого пользователя нет
echo "Введены не верные логин или пароль";
}
else{ //пользователь найден
$myrow = mysql_fetch_array($res);
$_SESSION['id']= $myrow['id'];
Header("Location: index.php"); //
}

mysql_close();
}
?>

и вот код на каждой странице вверху на проверку
session_start(); //инициализирум механизм сесссий
if (isset($_SESSION['id']))
{
//начинаем проверку логина и пароля

include("blocks/bd.php");
$res=mysql_query("SELECT * FROM `names` WHERE `id`='".$_SESSION['id']."'", $db);
if(mysql_num_rows($res)!=1){ //такого пользователя нет
}
else{ //пользователь найден, можем выводить все что нам надо
echo "Текст закрытой страницы<br><a href='logout.php'>Выход</a>";
}
mysql_close();
}


не работает... то бишь если бы работало, то выводило бы echo "Текст закрытой страницы<br><a href='logout.php'>Выход</a>";


вот примерно так всё и было тогда, когда я пытался сделать всё Сессиями..
в чем ошибка?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.