<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии: Зачем хранить  сессии ($_SESSION) в базе данных</title>
	<atom:link href="http://saintist.ru/2009/04/29/session-v-baze-dannyx/feed/" rel="self" type="application/rss+xml" />
	<link>http://saintist.ru/2009/04/29/session-v-baze-dannyx/</link>
	<description>php phpquery css jscript jQuery</description>
	<lastBuildDate>Sat, 12 May 2012 10:55:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>Автор: Vladimir</title>
		<link>http://saintist.ru/2009/04/29/session-v-baze-dannyx/comment-page-1/#comment-2271</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Wed, 04 Jan 2012 16:47:15 +0000</pubDate>
		<guid isPermaLink="false">http://saintist.ru/?p=190#comment-2271</guid>
		<description>Сессии хранятся в базе, чтобы сопоставить аккаунт юзера с зашедшим пользователем, без повторного запроса пароля. Куки хранят session_id, а в базе хранится соответствие этого session_id с id пользователя. Хранить в куках Id пользователя нельзя, так как любой может вписать id админа и получить полный доступ. В связи с этим, необходимость хранения сессий в базе очень актуальна.
Да, без таблиц можно обойтись. Например, если хранить помимо id пользователя какой-нибудь хэш.
Допустим, хэш будет от id пользователя и его секретного кода (который будет генерироваться при регистрации). Кука будет вида: user_id&#124;hash. В авторизации будем брать данные юзера, генерировать хэш и сверять с тем, что в куках. Если все ок - то пускаем пользователя под этими данными. Такой способ возможен, но не так гибок: нельзя сосчитать количество онлайн, определить онлайновость пользователя. Можно, конечно, обновлять таймштамп в таблице пользователя. Но если пользователей много, это приведет к многочисленным блокировкам.
Короче без сессионной таблицы можно обойтись в малопосещаемых сайтах.</description>
		<content:encoded><![CDATA[<p>Сессии хранятся в базе, чтобы сопоставить аккаунт юзера с зашедшим пользователем, без повторного запроса пароля. Куки хранят session_id, а в базе хранится соответствие этого session_id с id пользователя. Хранить в куках Id пользователя нельзя, так как любой может вписать id админа и получить полный доступ. В связи с этим, необходимость хранения сессий в базе очень актуальна.<br />
Да, без таблиц можно обойтись. Например, если хранить помимо id пользователя какой-нибудь хэш.<br />
Допустим, хэш будет от id пользователя и его секретного кода (который будет генерироваться при регистрации). Кука будет вида: user_id|hash. В авторизации будем брать данные юзера, генерировать хэш и сверять с тем, что в куках. Если все ок &#8212; то пускаем пользователя под этими данными. Такой способ возможен, но не так гибок: нельзя сосчитать количество онлайн, определить онлайновость пользователя. Можно, конечно, обновлять таймштамп в таблице пользователя. Но если пользователей много, это приведет к многочисленным блокировкам.<br />
Короче без сессионной таблицы можно обойтись в малопосещаемых сайтах.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: saintist</title>
		<link>http://saintist.ru/2009/04/29/session-v-baze-dannyx/comment-page-1/#comment-1643</link>
		<dc:creator>saintist</dc:creator>
		<pubDate>Mon, 04 Apr 2011 17:39:12 +0000</pubDate>
		<guid isPermaLink="false">http://saintist.ru/?p=190#comment-1643</guid>
		<description>все верно

пока не авторизирован  храним в куках

авторизированный  храним в сессии в БД, что дает для авторизированного пользователя хранить кроме  текущей сессии еще и историю заказов и т.п.</description>
		<content:encoded><![CDATA[<p>все верно</p>
<p>пока не авторизирован  храним в куках</p>
<p>авторизированный  храним в сессии в БД, что дает для авторизированного пользователя хранить кроме  текущей сессии еще и историю заказов и т.п.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Дмитрий</title>
		<link>http://saintist.ru/2009/04/29/session-v-baze-dannyx/comment-page-1/#comment-1642</link>
		<dc:creator>Дмитрий</dc:creator>
		<pubDate>Mon, 04 Apr 2011 17:08:20 +0000</pubDate>
		<guid isPermaLink="false">http://saintist.ru/?p=190#comment-1642</guid>
		<description>Ещё &quot;маленькое&quot; уточнение. :)
В сессиях хранятся временные ID коды пользователя, коды товаров и их количество, а cookies хранится информация об идентификаторе сессии и идентификационный номер пользователя который уже зарегистрирован и авторизовался а если он гость то он не имеет куков для авторизации (он сам выбирает регистрироваться или быть просто гостем)   Правильно?


Получается двойственное действие скрипта если гость - то работает все через сессию вплоть до оплаты. Но если он регистрированный пользователь то его сессия уже должна быть постоянной, но так как сессия меняется надо при авторизованном пользователе использовать его идентификационный номер (в куках).
И опять присваивать временный код сессии и грубо объединять для работы сессию и личный код пользователя что бы он мог купить что то.

В тексте сплошная тавтология - но может вы поймёте меня? :)</description>
		<content:encoded><![CDATA[<p>Ещё &#171;маленькое&#187; уточнение. <img src='http://saintist.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
В сессиях хранятся временные ID коды пользователя, коды товаров и их количество, а cookies хранится информация об идентификаторе сессии и идентификационный номер пользователя который уже зарегистрирован и авторизовался а если он гость то он не имеет куков для авторизации (он сам выбирает регистрироваться или быть просто гостем)   Правильно?</p>
<p>Получается двойственное действие скрипта если гость &#8212; то работает все через сессию вплоть до оплаты. Но если он регистрированный пользователь то его сессия уже должна быть постоянной, но так как сессия меняется надо при авторизованном пользователе использовать его идентификационный номер (в куках).<br />
И опять присваивать временный код сессии и грубо объединять для работы сессию и личный код пользователя что бы он мог купить что то.</p>
<p>В тексте сплошная тавтология &#8212; но может вы поймёте меня? <img src='http://saintist.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: saintist</title>
		<link>http://saintist.ru/2009/04/29/session-v-baze-dannyx/comment-page-1/#comment-1641</link>
		<dc:creator>saintist</dc:creator>
		<pubDate>Mon, 04 Apr 2011 16:45:54 +0000</pubDate>
		<guid isPermaLink="false">http://saintist.ru/?p=190#comment-1641</guid>
		<description>да все правильно поняли</description>
		<content:encoded><![CDATA[<p>да все правильно поняли</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Дмитрий</title>
		<link>http://saintist.ru/2009/04/29/session-v-baze-dannyx/comment-page-1/#comment-1640</link>
		<dc:creator>Дмитрий</dc:creator>
		<pubDate>Mon, 04 Apr 2011 16:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://saintist.ru/?p=190#comment-1640</guid>
		<description>Огромное спасибо за статью, очень конкретно написано.

Я бы все так и хотел уточнить на примере скажем оzon .ru

Я зашёл на сайт (стартует сессия и записывается номер ее в базу).
Я хожу по ozоn смотрю книги (старт сессия - проверяется что я уже есть и все)

Выбираю книгу -&gt; перехожу на страницу корзины (старт сессии (я есть) и заносится в базу мой выбор)

Выбираю количество -&gt; обновить (старт сессии- и добавление количества товаров)
Нажимаю кнопку оплатить (Старт сессии - извлечение данных о моем выборе, то есть там номер книги и количество ) и уже иду оплачивать. (старт сессии - сверка - удаление сессии из базы)

Примерно я правильно написал?</description>
		<content:encoded><![CDATA[<p>Огромное спасибо за статью, очень конкретно написано.</p>
<p>Я бы все так и хотел уточнить на примере скажем оzon .ru</p>
<p>Я зашёл на сайт (стартует сессия и записывается номер ее в базу).<br />
Я хожу по ozоn смотрю книги (старт сессия &#8212; проверяется что я уже есть и все)</p>
<p>Выбираю книгу -&gt; перехожу на страницу корзины (старт сессии (я есть) и заносится в базу мой выбор)</p>
<p>Выбираю количество -&gt; обновить (старт сессии- и добавление количества товаров)<br />
Нажимаю кнопку оплатить (Старт сессии &#8212; извлечение данных о моем выборе, то есть там номер книги и количество ) и уже иду оплачивать. (старт сессии &#8212; сверка &#8212; удаление сессии из базы)</p>
<p>Примерно я правильно написал?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic
Database Caching 9/15 queries in 0.005 seconds using disk: basic

Served from: saintist.ru @ 2012-05-20 10:01:32 -->
