Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Рейтинг на javascript (https://javascript.ru/forum/dom-window/29162-rejjting-na-javascript.html)

Tapakan 17.06.2012 23:49

Рейтинг на javascript
 
Доброго времени суток. Прошу помощи, но хочу предупредить, javascript еще не знаю вообще. Вот мой сайт - http://aboutonline-casino.com/igraya...hoteli-by.html . На этой странице два тестовых рейтинга. Вот источник скрипта - http://biznesguide.ru/coding/156.html . Хочу спросить, как сделать ограничение по ип? Чтобы человек мог 1 раз проголосовать с 1 адреса и результат естественно сохранялся в виде звездочек закрашенных. Там я так понял система замороченная, надо заходить в базу, смотреть результаты и самому проставлять. Заранее спасибо.

Tapakan 17.06.2012 23:50

Да, и еще. Регистрации на сайте нет. Файл - vote.php
[spoiler]<?php
/* Конфигурация базы данных. Добавьте свои данные */
$dbOptions = array(
'db_host' => 'localhost',
'db_user' => '******',
'db_pass' => '****',
'db_name' => '*******'
);

//Имя таблицы, в которой хранятся заметки
$table_name = 'articles';

//Подключаем класс для работы с базой данных
require "db.class.php";

// Соединение с базой данных
DB::init($dbOptions);

$use_cookie = true; //защита от накруток
$expires = 3600*24*31; //время жизни кук в секундах (сейчас установлено 31 день)

if(isset($_POST['score']) && isset($_POST['vote-id'])){
$page_id = intval($_POST['vote-id']);
$cookie_name = 'page_'.$page_id;

if($use_cookie && isset($_COOKIE[$cookie_name])){

$data['status'] = 'ERR';
$data['msg'] = 'Вы уже голосовали за эту заметку';
}
else{

DB::query('UPDATE '.$table_name.' SET vote = (vote*voters + '.floatval($_POST['score']).')/(voters + 1), voters = voters + 1 WHERE id = '.$page_id);
if(DB::affected_rows() == 1){

$data['status'] = 'OK';
$data['msg'] = 'Спасибо. Ваш голос учтен.';
if($use_cookie) setcookie($cookie_name,$page_id,time() + $expires);
}
else{
$data['status'] = 'ERR';
$data['msg'] = 'Произошла ошибка';
}
}
}
else{
$data['status'] = 'ERR';
$data['msg'] = 'Вы не передали нужные данные!';
}

echo json_encode($data);
?>[/spoiler]


Часовой пояс GMT +3, время: 10:09.