Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> $_COOKIE такие $_COOKIE...
SkaTrancer  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 16562
На форуме: 8 лет, 4 месяца, 16 дней
Карма: 1




Проблема в следующем:

есть скрипт рейтинга-сайтов(самописный), в скрипте есть файлик counter.php, который подсчитывает кол-во переходов по ссылке, и если юзер впервые на ней то прибавляется +1 голос сайту по баннеру которого он перешел.

Сначало я сделал проверку голосовал ли за этот сайт человек с этим айпи сегодня - все ок!
Решил сделать выдачу куков на 24 часа, тут-то я и застрял. Сделал что в куки шло значения айди сайта за который голосовали, но проблема была в том что в куки передалось значение 12 и оно там осталось и всегда там session_destroy(); и тд все перепробовал не спасает)

ХЕЛП) :blink:

Вообщем вопрос - как выдать куки на 24 часа и проверять есть ли они?!
Читал мануалы не понял про foreach нифига!)

<?php
session_start();

// Подключение файла настроек
include('inc/config.php');

$id = $_GET['id'];
$ip_vote = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d');
$error = 0;

foreach($_COOKIE['vote'] as $vote_cook => $value)
{
if($value != $id)
{
setcookie("vote", "", time() - (3600*24));
session_destroy();
if($_GET['vote'] == $_SERVER['REMOTE_ADDR'])
{

// Получение списка ip-адресов
$get_ip = mysql_query("SELECT * FROM votes WHERE site_id='{$id}' AND ip='{$ip_vote}' AND date='{$date}'");
$check = mysql_fetch_assoc($get_ip);

// Проверяем голосовал ли такой юзер с этим ip за этот сайт
if($check['site_id'] == $id && $check['ip'] == $ip_vote && $check['date'] == $date)
$error = 1;

// Если не голосовал, то...
if($error == 0)
{
$get_sites = mysql_query("SELECT * FROM sites WHERE id='{$id}'");
$update_clicks = mysql_query("UPDATE sites SET clicks=clicks+1 WHERE id='{$id}'");
$insert_votes = mysql_query("INSERT INTO votes VALUES (NULL,'{$id}','{$ip_vote}',NOW())");
setcookie("vote", $id, time()+(3600*24));
}
}
}

else
{
$get_sites = mysql_query("SELECT * FROM sites WHERE id='{$id}'");
$update_clicks = mysql_query("UPDATE sites SET clicks=clicks+1 WHERE id='{$id}'");
}
}

?>




Спустя 40 минут, 46 секунд (21.02.2012 - 13:35) Invis1ble написал(а):
foreach тут как бы совсем не причем
Цитата
setcookie("vote", $id, time()+(3600*24));

это и есть на 24 часа
проверить просто - isset($_COOKIE['vote'])

Спустя 50 минут, 3 секунды (21.02.2012 - 14:25) SkaTrancer написал(а):
а как мне для проверки вывести значение $_COOKIE['vote']?

Спустя 1 минута, 31 секунда (21.02.2012 - 14:26) Invis1ble написал(а):
var_dump($_COOKIE['vote']);

Спустя 10 секунд (21.02.2012 - 14:27) SkaTrancer написал(а):
мне нужно проверить значение $_COOKIE

Спустя 1 час, 31 минута, 59 секунд (21.02.2012 - 15:59) SkaTrancer написал(а):
Проблему решил)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса