Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Записная книжка и куки

Сообщения:  [1-8] 

 
 автор: Trianon   (20.04.2009 в 12:51)   письмо автору
 
   для: Ruthless   (20.04.2009 в 08:50)
 

$id_arr = array(3, 5, 15);
$id_list = implode(',', $id_arr);
setcookie("id", $id_list, time()+60*60*24*30);

$id_list = $_COOKIE['id'];
$id_arr = explode(',', $id_list);

Фигня с хешем, которую вы тут придумали - совершенно ненужная ересь.

Полагаться, что записи из БД будут исчезать лишь потому, что Вы кому-то насуете кукис - наивно.
В записях так или иначе нужно будет хранить время устаревания, и их по достижении этого времени удалять.

  Ответить  
 
 автор: Ruthless   (20.04.2009 в 11:55)   письмо автору
 
   для: Valick   (20.04.2009 в 10:37)
 

Сейчас записная книжка работает следующим образом:

В заголовке страницы создается кукис

$hash=md5($_SERVER['HTTP_USER_AGENT'].substr(ip2long($_SERVER['REMOTE_ADDR']),0,6));
setcookie("ident_user", "$hash", time()+60*60*24*30);


Далее когда посетитель жмет ссылку "Добавить в блокнот" следующий код записывает уникальный идентификатор посетителя и №ID объявления в базу MySQL

if ($act=="noute") {
$id = intval($_GET['id']);
$querynoute = mysql_query("SELECT COUNT(*) from users_noute WHERE ident_user='{$_COOKIE['ident_user']}' AND id_ob='$id'") or die(mysql_error());
$colnoute = mysql_result($querynoute, 0, 0);
if ($colnoute==0) {
$rimenoute = "INSERT into users_noute (ident_user, id_ob) VALUES ('{$_COOKIE['ident_user']}', '$id')";
$result = mysql_query($rimenoute);
echo "<script>history.go(-1)</script>";
}
else {
echo "<script>history.go(-1)</script>";
}
}


вот сама таблица:


 id                       ident_user        id_ob  
 41     1370e46cd98d68defd07eeb6af3ef88c    1 
 42     1370e46cd98d68defd07eeb6af3ef88c   71 
 43     fef63e4cda35e8f63e37c7e5d46e919c    1 
 44     fef63e4cda35e8f63e37c7e5d46e919c   71 
 45     fef63e4cda35e8f63e37c7e5d46e919c   72 
 46     fef63e4cda35e8f63e37c7e5d46e919c   73 
 47    1370e46cd98d68defd07eeb6af3ef88c    72 


Но существует одно "НО" которое меня не устраивает, в базу то это складируется, но со временем база распухнет ведь эти данные не вычищаются пока сам пользователь не очистит свою записную книжку. Поэтому я и хотел писать ID в кукисы пользователя, чтобы база не засорялась этими записями.

  Ответить  
 
 автор: Valick   (20.04.2009 в 10:37)   письмо автору
 
   для: Ruthless   (20.04.2009 в 09:33)
 

Что бы что-то отложить для зарегистрированного пользователя кукисы не нужны (имхо).
А "не зарегистрированных" Вам всё равно нужно будет отделять одного от другого - это в любом случае какой-то id (его-то я и предлогаю хранить в кукисах, а не перекачивать туда сюда всё остальное + естественно пароль). Плюс к этому не зареганного юзера в любой момент можно зарегистрировать сохранив при этом все объявления и всё что угодно, а обработка всех данных будет одинаковая как для зарегистрированных так и для "не зарегистрированных" пользователей.

  Ответить  
 
 автор: Ruthless   (20.04.2009 в 09:33)   письмо автору
 
   для: Valick   (20.04.2009 в 09:24)
 

Все что касается пользователей у меня хранится в базе, а смысл всего этого в том чтобы пользователь мог отложить заинтересовавшие его объявления как бы в записную книжку и потом при следующем посещении мог заново их просматривать. Т.е. хочу сделать тоже самое как сделано в газете бесплатных объявлений ИРР.

  Ответить  
 
 автор: Valick   (20.04.2009 в 09:24)   письмо автору
 
   для: Ruthless   (20.04.2009 в 08:50)
 

А как много вы собираетесь хранить этих самых id обьявлений?
Может лучше в кукисах хранить id пользователя + пароль автоматически выдаваемых сервером, а всю остальную информацию хранить на сервере подобно зарегистрированным пользователям?

  Ответить  
 
 автор: Ruthless   (20.04.2009 в 08:50)   письмо автору
 
   для: Trianon   (19.04.2009 в 22:24)
 

Уважаемый Trianon, простите за то что не правильно сформулировал свой вопрос. Попытаюсь объяснить что мне нужно. Когда посетитель нажимает на объявлении ссылку "В записную книжку" нужно чтобы ID объявления запоминалось в кукисах, с одним объявлением все понятно, делаем строчку:

setcookie("id", "$id_ob", time()+60*60*24*30);

и все, а вот как загнать несколько ID объявлений в кукисы? Я так понимаю это нужно в цикле делать и обратно, как вытаскивать эти данные из кукисов?

  Ответить  
 
 автор: Trianon   (19.04.2009 в 22:24)   письмо автору
 
   для: Ruthless   (19.04.2009 в 21:20)
 

Установка кукисов выполняется с помощью функции setcookie()
Чтение - из суперглобального массива $_COOKIE
Применение вполне оправданно.
Хранить, очевидно, придется список ID'ов.

  Ответить  
 
 автор: Ruthless   (19.04.2009 в 21:20)   письмо автору
 
 

Господа, объясните пожалуйста как можно реализовать записную книжку в доске объявлений для не прошедших регистрацию пользователей. Т.е. приходит пользователь на сайт смотрит объявления и на понравившихся объявлениях нажимает добавить в записную книжку, после этого данные (т.е. ID объявления) должны записываться в кукисы, своеобразный массив. Вот как это реализовать, т.е. ввод и вывод из кукисов и насколько это правильно использовать кукисы?

  Ответить  

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования