![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Lloyd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 19.7.2003 Репутация: нет Всего: нет |
Хочу сделать систему учета кликов по ссылкам статей (чтобы у каждой статьи было типа "Посещений: 99"). Все готовые скрипты в инете мне не нравяться, да и я хочу свой собственный написать: свое - ближе
![]() Статья имеет такой урл: http://www.mysite.ru/index.php?section=name&id=2, где id=2 - уникальный идентификатор статьи. Все данные хочу записывать в MySQL, для чего в таблицу статей добавил поле article_hits. При этом мне не хочеться коверкать урл статьи всякими редиректами, типа redirect?http://www.mysite.ru/index.php?section=name&id=2. Кроме того, посещение одного и того же человека одной и той же статьи должно быть уникальным в течении суток (видимо, надо использовать Cookies). Как осуществить такую систему, хотя бы примерно (но по-подробней ![]() Спасибо. |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
лови код:
<?php if(isset($_COOKIE['my_great_article_cookie'])) { exit(0); } mysql_connect(); mysql_query("UPDATE table SET article_hits=article_hits+1 WHERE id=".$_GET['id']); mysql_close(); set_cookie("my_great_article_cookie", "this cookie is not empty", time() + 60*60*24); ShowArticle($_GET['id']); ?> |
|||
|
||||
Lloyd |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 19.7.2003 Репутация: нет Всего: нет |
Вот написал.
[PHP] // проверяем что мы действительно в статье if ((isset($id)) and (!empty($id))) { // сам скрипт if(!isset($_COOKIE['web'])) { mysql_query("UPDATE articles SET article_hits=article_hits+1 WHERE article_id='$id'"); setcookie('web'); } else {} } [/PHP] Посетителя засчитывает, но только один раз. Как сделать чтобы система создавала и проверяла cookies для каждой статьи в отдельности т.е. с $id=идентификатор статьи? Я пробовал указывать в параметрах setcookie() переменную $id - все заглючило а результат тот же (только еще к тому же некоторые мои выборки из БД поломались, хотя отношения к этому скрипту никакого не имеют). |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
<?php
$key = "article_id_".$_GET['id']; if(!isset($_COOKIE[$key])) { mysql_query("UPDATE articles SET article_hits=article_hits+1 WHERE article_id='$id'"); setcookie($key); } else {} ?> а почему ты expire параметр не использовал?.. |
|||
|
||||
Unregistered |
|
|||
Unregistered |
Я сделал вот так:
$key = "article_id_".$_GET['id']; if(!isset($_COOKIE[$key])) { mysql_query("UPDATE articles SET article_hits=article_hits+1 WHERE article_id='$id'"); setcookie($key, "", time()+3600 ); } else {} Cookies не создается (проверял в каталоге Cookies). И каждый раз к посещениям прибавляется +2 вместо +1. Что за мистика? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |