|
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 22.11.2024 - 06:24:23
Страницы: 1 Как сделать защиту от повторного голосования не поОбъявление - WR-Scriptы в UTF-8 кодировке |
---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2023 год.
|
Автор | Сообщение |
---|
sanyak •
S гость
|
Как сделать защиту от повторного голосования не по IP а по Cookie?
| |
|
Сообщение # 1 |
23.07.07 - 07:00:51
| | Dionir •
D гость
|
Блин пихай в куку ид голосования и по ней проверяй. Если она существует то человек голосовал. если же нет то нет :) | |
|
Сообщение # 2 |
23.07.07 - 08:29:56
| | sanyak •
S гость
|
не код покажи, в теории я сам знаю | |
|
Сообщение # 3 |
23.07.07 - 09:12:04
| | Dionir •
D гость
|
Человек проголосовал: Пихаем в куку:
Код: setcookie("vote_номер_голосования",'1');
|
Проверяем голосовал ли чел:
Код:if( isset($_COOKIE['vote_номер_глосования']) and $_COOKIE['vote'] == 1 ) { echo 'Вы уже голосовали.'; }
| | |
|
Сообщение # 4 |
23.07.07 - 09:40:11
|
| kov.88 •
K гость
|
Цитата:
Блин пихай в куку ид голосования и по ней проверяй. Если она существует то человек голосовал. если же нет то нет :) |
А если посетитель отключил куки? Тогда голосование в его руках. | |
|
Сообщение # 5 |
23.07.07 - 10:49:40
| | Dionir •
D гость
|
kov.88, А это уже не моё дело.
А вообще можно проверять на включение кук. Если они включены то работаем. Если нет то шлём подальше его. | |
|
Сообщение # 6 |
23.07.07 - 11:11:41
| | kov.88 •
K гость
|
Dionir, допустим куки включены, он голосует, удаляет куки, и снова голосует... и так можно делать до безконечности. | |
|
Сообщение # 7 |
23.07.07 - 14:43:37
| | kov.88 •
K гость
|
sanyak , А почему Вы не хотите использовать IP? | |
|
Сообщение # 8 |
23.07.07 - 14:45:29
| | Dionir •
D гость
|
Цитата:
Dionir, допустим куки включены, он голосует, удаляет куки, и снова голосует... и так можно делать до безконечности. | Ну это уже не моё дело.
Он спросил я ответил. А так вариантов куча как можно сделать защиту. | |
|
Сообщение # 9 |
23.07.07 - 15:56:54
| | sanyak •
S гость
|
Дело в том что я ставлю данную системы голосования на сайт офисный. К нему могут подключиться пользователи из других филиалов. Естественно у них один IP адрес на всех, а проголосовать хотят все. Цитата: sanyak , А почему Вы не хотите использовать IP? | | |
|
Сообщение # 10 |
24.07.07 - 03:40:36
| | sanyak •
S гость
|
Dionir Благодарю за помощь | |
|
Сообщение # 11 |
24.07.07 - 03:41:19
| | sanyak •
S гость
|
Прописал следующее: <? error_reporting (E_ALL);
include "config.php";
if (isset($_POST["votec"])) {$numv=$_POST["votec"];} else {print "<BR><BR><BR><center> Вы <B>не выбрали ни один пункт</B> голосования!</center>"; exit;}
$ip=(isset($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:0;
// Проверка на IP-юзера
//if (is_file("$datadir/ip$glsnum.dat")) { //$iplines=file("$datadir/ip$glsnum.dat"); $sizef=count($iplines); //if ($sizef > 1) { $itip=$sizef; //do {$itip--; $idt=explode("|",$iplines[$itip]); //if ($ip==$idt[0]) { $dayx=date("d.m.Y в H:i:s",$idt[1]); $stime=$idt[1]; $today=mktime(); //if ($antiflud=="1") {if (($today-$stime)<$fludtime) //{print"<center>
Включена <B>защита от ФЛУДА</B>. Чаще <B>$fludtime секунд</B> голосовать запрещено.
<B><a href='vote.php' onClick='self.close()'>Закройте окно</b></a>, подождите указаное время и повторите попытку.</B>"; exit;}} //$allredy="Вы <B>уже голосовали $dayx!</B></center>";} //} while ($itip>0); } }
// Проверка на cookies-юзера setcookie("vote_1_Чего не хватает в этом скрипте",'1'); if( isset($_COOKIE['vote_1_Чего не хватает в этом скрипте']) and $_COOKIE['vote'] == 1 ) { echo 'Вы уже голосовали.'; }
if ($ipblok!="1") {$allredy=""; unset($allredy);}
if (!isset($allredy)) {$allredy="<B>Ваш голос принят.</B>"; $mkdate=mktime(); // формируем дату голосования в UNIX-формате $lines=file("$datadir/vote$glsnum.dat"); $itogo=count($lines); $i=$itogo;
do {$i--; if ($numv==$i) {$vote=$i;}} while ($i>0);
$i=$itogo; do {$i--; $dt=explode("|",$lines[$i]); if ($vote==$i) {$dt[1]++;} $lines[$i]="$dt[0]|$dt[1]|rn"; } while ($i>0);
$fp=fopen("$datadir/vote$glsnum.dat","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0; $i<$itogo; $i++) {fputs($fp,$lines[$i]);} fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); @chmod("$fp", 0644);
$fp=fopen("$datadir/ip$glsnum.dat","a+"); flock ($fp,LOCK_EX); fputs($fp,"$ip|$mkdate|rn"); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); @chmod("$fp", 0644); }
print "<center><script language='Javascript'>function reload() {location = 'rezult.php'}; setTimeout('reload()', 1500);</script> <BR><BR><BR> $allredy"; ?>
Выдает следующую ошибку:
Warning: Cookie names can not contain any of the folllowing '=,; trn 13 14' (vote_1_Чего не хватает в этом скрипте) in z:hometest1.ruwwwvote.php on line 24 | |
|
Сообщение # 12 |
24.07.07 - 07:45:07
| | Страницы: 1
|