|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.07.2010, 18:06 | #11 |
Пользователь
Регистрация: 06.07.2010
Сообщений: 53
|
Ибо после закрытия браузера сессия очищается, как быть? чтобы она хранилась в течении 20 минут допустим, или куки (не знаю как правильно сказать)
|
14.07.2010, 23:37 | #12 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Я лично вообще не использую сессии. Но это именно я. Обычно, когда нужно долго держать сессию - изменяют системную переменную session.cookie_lifetime
ini_set ('session.cookie_lifetime', 3600); //где 3600 это время в секундах (то есть 60*60=3600=1 час) Но тут есть такая загвоздка. В PHP существует автоматический "сборщик мусора", который удаляет файлы сессии ПО УМОЛЧАНИЮ примерно через 24 минуты после создания. Так вот чтобы сессия жила до 24-ёх минут можно поменять только вышеназванную переменную. Но чтобы сессия жила более 24-ёх минут - нужно уже заморачиваться. Потому как если у тебя разные скрипты используют разное время жизни сессий, то "мусорщик" будет удалять все файлы без разбора по минимальному таймауту (24 минуты обычно). Таким образом прийдётся менять ещё и директорию, куда файлы сессии будут записываться, а это то ещё муторство (создание директории в нужном месте, установка пути, выдача прав и т.д. и т.п.). Итого - совет: используйте куки. Храните данные пользователей (id покупок, количества и т.д.) в БД. А в куки храните хеш пользователя только.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
15.07.2010, 13:40 | #13 | |
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Цитата:
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] .'sessions'); ini_set('session.gc_maxlifetime', 120960); ini_set('session.cookie_lifetime', 120960); Естественно папку sessions необходимо создать и права дать. |
|
15.07.2010, 14:25 | #14 |
Пользователь
Регистрация: 06.07.2010
Сообщений: 53
|
Ясно, спасибо, только оюъясните нубу как с печенькми сделать???
|
15.07.2010, 14:29 | #15 |
Пользователь
Регистрация: 06.07.2010
Сообщений: 53
|
И ещё: правильно ли я понял то, что допустим создаём поле для идентификатора сессии в таблице, и просматривая корзину сверяем, если session_id==полю в базе то выводим товары так?
|
16.07.2010, 03:36 | #16 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
http://phpfaq.ru/sessions
вот, почитай.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
18.07.2010, 11:41 | #17 | |
Пользователь
Регистрация: 06.07.2010
Сообщений: 53
|
Цитата:
|
|
18.07.2010, 19:55 | #18 |
Пользователь
Регистрация: 06.07.2010
Сообщений: 53
|
Мда мне без вас ГУРУ не разобратся
<?php include ("blocks/bd.php"); /*соеденяемся с БД*/ $result = mysql_query ("SELECT * FROM settings WHERE page='card'",$db); $myrow = @mysql_fetch_array ($result); session_start(); ini_set("session.gc_maxlifetime", "3600"); ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] .'sessions'); ini_set('session.gc_maxlifetime', 120960); ini_set('session.cookie_lifetime', 120960); $Brand=$myrow["Brand"]; $Cena=$myrow["Cena"]; $Emkost=$myrow["Emkost"]; $PHPSESSID = session_id(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <?php include ("blocks/verification_bot.php"); ?> <meta name="description" content="<?php echo $myrow['meta_d']; ?> "> <meta name="keywords" content=" <?php echo $myrow['meta_k']; ?> "> <title><?php echo $myrow['title']; ?></title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body onLoad="MM_preloadImages('images/imgbr_07.jpg')"> <?php include("blocks/header.php"); ?> <?php include("blocks/navi.php"); ?> <div class="text_bg"> <div class="text_in"><!--Тут текст--> <?php $result = mysql_query ("select * FROM zakaz WHERE PHPSESSID='$PHPSESSID' ORDER BY CENA", $db); $myrow = @mysql_fetch_array ($result); do { $znach = $myrow["Sklad"]; printf ("<table width='880px' align='left' border='1px'> <tr> <td width='100px' align='center'>%s</td> <td width='140px' align='center'>%s Ah</td> <td width='100px' align='center'>%s A</td> <td width='100px' align='center'>%s</td> </tr> </table>",$myrow["Brand"],$myrow["Emkost"],$myrow["Puskt"], $myrow["Cena"]); } while ($myrow = @mysql_fetch_array ($result)); while ($myrow = @mysql_fetch_array ($result)){ $summ+=$myrow["Cena"]; } printf("AGA: %d",$summ); ?> </div></div> <?php include("blocks/bottom.php"); ?> </body> </html> Что нужно сделать для того чтобы сессия(или куки) для определённого браузера сохранялись как можно больше после закрытия браузера? |
18.07.2010, 21:04 | #19 |
Пользователь
Регистрация: 04.05.2010
Сообщений: 46
|
на сессию после закрытия браузера лучше не расчитывать
а при создании кук можно указать время жизни (третий параметр в setcookie - дата в unix timestamp когда кука должна быть удалена, если это не указать то кука будет удалена при закрытии браузера) |
19.07.2010, 13:21 | #20 |
Пользователь
Регистрация: 06.07.2010
Сообщений: 53
|
так а как прописать и в чём различия сессий и кук?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать интернет-магазин | STill_ace | Общие вопросы .NET | 3 | 04.11.2009 12:41 |
БД Магазин... Непонятная ошибка... | Arkuz | БД в Delphi | 7 | 01.12.2008 22:19 |
интернет магазин | dimaxz | HTML и CSS | 18 | 04.09.2008 03:32 |
Интернет-магазин, отзывы. | AlDelta | Софт | 2 | 06.03.2008 16:28 |