Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Требуется создать систему голосования для позиций каталога основанную на Cookies с использованием Java языка (чтобы не перезагружать страницу при голосовании). И самое главное чтобы это голосование как можно меньше напрягало сервер и БД на нем, и скрипт был оптимизирован для быстрой и надежной работы.

Образный пример (это голосование находиться на всех страницах каталога):

http://mixzona.ru/wallpapers/picture/1655.html - тут показан пример именно того, что скрипт не нуждается в перезагрузки страницы при голосовании и голосование прикручено ко всем позициям каталога.

Введение:

В каталоге, например 10 000 позиций, нам нужно создать страницу рейтинга, где выводить 50 самых популярных позиций. Поэтому нам нужна информация от пользователей, за какие позиции они голосовали и какую суммарную оценку набрали эти позиции. Голосование проходит по пятибалльной шкале, и в случаи успеха в БД попадает результат такого вида: ID, его бывший результат + нынешняя оценка. Пример в БД был id 163 и у него был результат голосования уже в 63 балла, пользователь выбрал именно позицию с id 163 и голосует за нее, поэтому к его 63 баллам прибавляем еще от 1 до 5 баллов и его результат получается от 64 до 68 зависимости от оценки поставленной пользователем.

Для пользователя:

Для самого пользователя это должно выглядеть так: он открывает каталог, далее выбирает позиции понравившуюся, далее на этой страницы позиции будет висеть просто голосование (без результатов) т.е. пять графических картинки в виде звездочек это и есть балы от 1 до 5, далее пользователь кликает на нужную звездочку (балл который он хочет поставить за эту позицию) и без перезагрузки страницы ему вместо предложение голосование (звездочек) выдается ответ голосования за конкретную позицию из каталога которую он просматривает в данный момент и за которую он голосовал.

Техническая часть:

На странице с голосованием будет java скрипт который нужен для передачи id* и балла в другой php скрипт без перезагрузки страницы, а также для вывода результата голосования, т.е. ответа пользователю:

- Ваш голос принят системой на рассмотрение

или если возможно без сильной нагрузки на сервер и сильного “извращения” то:

- Нет технической возможности проголосовать

- Вы уже голосовали за эту позицию

- Ваш голос принят

(*) id на этой странице будет находиться внутри скрипта и передаваться ему через get url: http://site.ru/katalog/poz1234.html

(на такой станице будет висеть голосование, а 1234 – это и есть id)

Скрипт в который попадает результат голосования должен:

1. Проверить включены ли вообще Cookies у голосующего и работаю ли корректно, если они выключены или не работают, то завершить работу скрипта и по ВОЗМОЖНОСТИ отдать результат обратно (т.е. сказать пользователю, что нету технической возможности принять голосование у него)

2. Проверить есть ли у пользователя уже этот ID в куках (голосовал ли он уже за эту позицию), если голосовал, то завершить работу скрипта и по ВОЗМОЖНОСТИ отдать результат обратно (т.е. сказать пользователю, что он голосовал уже за эту позицию)

3. Если первые два пункта прошли на True, то записать результат в БД (к указанному id в результат прибавить оценку пользователя от 1 до 5) и по ВОЗМОЖНОСТИ отдать результат обратно (т.е. сказать пользователю, что голос его принят)

БД:

Сама база данный будет подключаться из отдельного файла bd.inc.php, поэтому файл будет инклюдиться скриптом (файл будет лежать в корне), вот содержимое файла (для вашего представления):

$alCf_host = 'localhost';

$alCf_user = 'root';

$alCf_db = 'bdname';

$alCf_pas = '12345';

$s_home='0';

@mysql_connect($alCf_host, $alCf_user, $alCf_pas) or $s_home=1;

@mysql_select_db($alCf_db) or $s_home=1;

if ($s_home=='1') {die('БД не доступна!');}

unset($s_home);

?>

Будет отдельная таблица для голосования, в которую будет поступать и храниться результаты:

CREATE TABLE `golos` (

`id` int(11) NOT NULL default '0',

`reting` int(11) NOT NULL default '0',

KEY `id` (`id`)

) ENGINE=MyISAM;

Изначально она будет пустая, далее по мере поступления результатов голосования она будет заполняться.

Поступать будет id позиции и балл (от 1 до 5), скрипт должен проверить есть ли запись с таким id, и если ее нету, то добавить, если она есть, то прибавить к уже имеющемуся результату (reting) балл (т.е. оценку, которую поставил пользователь за конкретную позицию с id таким-то).

На самой странице, где будет висеть голосование (откуда пользователь голосует (кликает по звездочкам), из определенной позиции каталога) Java скрипт должен быть вынесен в отдельный файл, а то, что не вынесено должно отвечать стандартам w3.org (valid xhtml и css), к тому же html код должен быть минимальным на этой странице все лишнее в css-файл и java-файл вынести. И соответственно легко интегрируемый в сайт.

Заключение:

Еще раз повторюсь скрипт должен быть максимально оптимизирован на быструю и безошибочную работу и делать минимальную нагрузку на сервер и БД, а html код голосования должен быть валидным (w3.org) и минимальным.

На самом деле написано тут много, потому что я хочу получить именно то, что хочу, поэтому потратил время на составление подробного описания. В реале скрипт не будет таким громоздким. Все что нужно от вас это отличное знания Java (AJAX), PHP, MySQL, HTML и умение оптимизировать все на быструю работу скрипта, минимальные, валидные коды и минимальную нагрузку на сервер.

Мне нужно, чтобы вы указали цену, за которую вы сделаете скрипт, и время.

17 лет назад
dimcom
44 годаБеларусь
17 лет в сервисе
Была
8 лет назад
Выбранный исполнитель
digitalua
Test 
NaN лет
17 лет в сервисе
Был
16 лет назад
7 отзывов(-4)
17 лет назад
$50
Отзыв недоступен.
По этому заказу не оплачена комиссия сервиса!
Было приятно работать с этим человеком. Задание было чётко поставлено. Деньги сразу по факту! Надеюсь на дальнейшее сотрудничество. Удачи с проектом!