Господа программисты! Если у кого есть желание поработать в выходной день - есть небольшого объема работа. История такова: один из программистов с этого сайта взялся за проект и почти доделал. Остались совсем небольшие коррективы, а ...
Голосования за позиции из каталога
Требуется создать систему голосования для позиций каталога основанную на 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 и умение оптимизировать все на быструю работу скрипта, минимальные, валидные коды и минимальную нагрузку на сервер.
Мне нужно, чтобы вы указали цену, за которую вы сделаете скрипт, и время.
Выбранный исполнитель
По этому заказу не оплачена комиссия сервиса!
Заявки фрилансеров
Похожие заказы
- Веб-программирование1 исполнительЗавершен17 лет назад
- $250
Требуется разработка торговой площадки по технологии DigiSeller
Веб-программирование1 исполнительЗавершен17 лет назад - $100
есть небольшой php скрипт который загружает фаил,сохраняет его в папке где лежит скрипт и запускает бинарник (ffmpeg,mpg321 и пр.) размер скрипта 9 КБ. необходимо перепесать его под платформу .NET (Видемо asp ...
Веб-программирование1 исполнительЗавершен17 лет назад чтоб регистрация одна и т.п.
Веб-программирование3 заявкиЗакрыт17 лет назадЗадача следующаяю: Сайт studiolife.ru Необходимо добавить функцию нескольких вариантов названий. например как здесь http://www.kingtv.ru/index.php?yan=43zZ48zZ159477 Известен как : Sharp 32 Sharp-LC-32RA1RU жк телевизор Sharp LC 32RA1 RU ...
Веб-программирование1 исполнительЗавершен17 лет назадhttp://www.shopexpress.ru Задача следующая необходимо заменить стандартный выход из корзины при заказе в Джумле virtuemart е. вместо авторизации или регистрации поставить просто форму с заполнением данных для заказа, без обязательных компонентов для заполнения и ...
Веб-программирование1 исполнительЗавершен17 лет назад- $200
Здравствуйте. Агентству сдачи недвижимости требуется стандартная многоязыковая online база данных включающая в себя все их объекты - квартиры, дома, оффисы, виллы и пр. Все параметры сдаваемой недвижимости, расписание ...
Веб-программирование15 заявокЗакрыт17 лет назад - $20
Есть движок: http://sourceforge.net/projects/eticket В нем используется Perl скрипт. Вся почта приходящая на определенный E-mail переправляется на этот скрипт. Он в своюочередь разбирает письмо и постит его в MeSQL базу. ...
Веб-программирование5 заявокЗакрыт17 лет назад Необходимо сделать парсер XML файла.
Веб-программирование1 исполнительЗавершен17 лет назад- $500
Для постоянной работы над сайтом www.wecheese.com требуется PHP/MYSQL программист . Социальная сеть Wecheese.com готовится к запуску в виде версии 2.0 . Изначально проект работает на PHP4/PostgreSQL - сейчас активно переделывается ...
Веб-программирование8 заявокЗакрыт17 лет назад