[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация и сессии
dimitrian777
Прошу помощи в такой задачке и просьба не пинать и так знаю , что нуб.

Суть такова, пользователь авторизуется на сайте. Если авторизация успешна мне нужно сессию этого пользователя занести в базу в таблицу где есть уже колонки id,логин, пароль, сессии. Не могу понять как это сделать. Вот код:

if(isset($_POST['login']) && isset($_POST['password']))
{
include("bd.php");// здесь обычное подключение.

$login=htmlspecialchars(trim($_POST['login']));
$password=htmlspecialchars(trim($_POST['password']));

$res=mysql_query("SELECT * FROM `users` WHERE `login`='$login' ");
$data=mysql_fetch_array($res);

if(empty($data['login']))
{
die("Такого пользователя не существует!");
}

if($password!=$data['password'])
{
die("Введенный пароль неверен!");
}

session_start();
$id_session=session_id();


А далее мне нужно занести сессию в колонку сессии, в строку таблицы соответствующую логину пользователя. Делая это для того, чтобы по активным сессиям определять и давать информацию кто сейчас на сайте. заранее спасибо.
Arh
Не совсем понял про сессию, но для определения тех кто сейчас на сайте лучше завести поле last_visit куда писать дату когда пользователь на сайт заходил, и обновлять её допустим раз в 3 минуты

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
dimitrian777
Цитата (Arh @ 19.04.2014 - 17:31)
Не совсем понял про сессию, но для определения тех кто сейчас на сайте лучше завести поле last_visit куда писать дату когда пользователь на сайт заходил, и обновлять её допустим раз в 3 минуты

Нет, мне это нужно для чата, чтобы тех кто в онлайне в данный момент в чате,были выведены на страницу чата все профили. То есть вывести из базы данные тех у кого сессии активны.
inpost
Онлайн - те, кто были активны последние X минут. К примеру, если у тебя ajax, и он отправляет запросы на сервер каждые 10 секунд для нового сообщения, или ты переходишь между страницами, у пользователя в таблице меняешь поле `last_active`. И Выбираешь как раз из тех, кто были активны за последние 10 минут, то есть те, кто сейчас на сайте. Если чат, то там хватит активности и за последние секунд 30-60 (из-за особенностей таймеров при альт-табе).

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dimitrian777
Цитата (inpost @ 19.04.2014 - 19:38)
Онлайн - те, кто были активны последние X минут. К примеру, если у тебя ajax, и он отправляет запросы на сервер каждые 10 секунд для нового сообщения, или ты переходишь между страницами, у пользователя в таблице меняешь поле `last_active`. И Выбираешь как раз из тех, кто были активны за последние 10 минут, то есть те, кто сейчас на сайте. Если чат, то там хватит активности и за последние секунд 30-60 (из-за особенностей таймеров при альт-табе).

Ребят я дико извиняюсь. Но мой вопрос именно по кодированию... Как мне вписать индентификатор сессии в таблицу в нужное поле соответственно логину только что залогинившегося юзера. Я просто не соображу с механикой самой... От юзера мы имеем логин, мне нужно грубо говоря в таблицу напротив этого логина вписать в колонку сессий в таблице именно его сессию. Как в коде это реализовать?
inpost
dimitrian777
функционал подстраивается под задачу. Ты выбрал неверную реализацию, а мы объяснили тебе как делать надо. Ты упёрто будешь делать неправильно? Я в этом участвовать не буду. ph34r.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Arh
Цитата (dimitrian777 @ 19.04.2014 - 16:52)
Как мне вписать индентификатор сессии в таблицу в нужное поле соответственно логину только что залогинившегося юзера. Я просто не соображу с механикой самой... От юзера мы имеем логин, мне нужно  грубо говоря в таблицу напротив этого логина вписать в колонку сессий в таблице именно его сессию. Как в коде это реализовать?


В смысле как запрос что ли сделать?

$sql[':name'] = $username;
$sql[':sid'] = $session_id;
$update = $db->prepare('UPDATE `users` SET `sid` = :sid WHERE `name` = :name');
$update->execute($sql);


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
dimitrian777
Цитата (Arh @ 19.04.2014 - 21:45)
Цитата (dimitrian777 @ 19.04.2014 - 16:52)
Как мне вписать индентификатор сессии в таблицу в нужное поле соответственно логину только что залогинившегося юзера. Я просто не соображу с механикой самой... От юзера мы имеем логин, мне нужно  грубо говоря в таблицу напротив этого логина вписать в колонку сессий в таблице именно его сессию. Как в коде это реализовать?


В смысле как запрос что ли сделать?

$sql[':name'] = $username;
$sql[':sid'] = $session_id;
$update = $db->prepare('UPDATE `users` SET `sid` = :sid WHERE `name` = :name');
$update->execute($sql);

Большое спасибо за ответ. Но не знаком с ООП, стрелочка напрягает, можно ли совсем по простому? Спасибо
Arh
dimitrian777
mysql_query("UPDATE `users` SET `sid` = ".(int)$session_id." WHERE `name` = '".$username."'");

:D

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
dimitrian777
Цитата (Arh @ 19.04.2014 - 23:45)
dimitrian777
mysql_query("UPDATE `users` SET `sid` = ".(int)$session_id." WHERE `name` = '".$username."'");

:D

Спасибо,завтра буду пробовать. А может есть более простой способ и правильный. Ситуация: в чат залогинились 6 человек мне нужно вывести в каждый браузер этих залогиненых всю инфук о тех кто общается сними. То есть расставить профили( имя , откуда, профессия) на странице чата кто в нем
Быстрый ответ:

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