Бесплатные PHP скрипты - форум техподдержки

Бесплатные PHP скрипты - форум техподдержки

Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!

Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск  
Сегодня: 29.04.2024 - 10:50:15
Страницы:  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("&#124;",$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("&#124;",$lines[$i]);
if ($vote==$i) {$dt[1]++;}
$lines[$i]="$dt[0]&#124;$dt[1]&#124;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&#124;$mkdate&#124;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 '=,; trn1314' (vote_1_Чего не хватает в этом скрипте) in z:hometest1.ruwwwvote.php on line 24

Сообщение # 12 24.07.07 - 07:45:07
Как сделать запрос логина и пароля для пользоватля :Предыдущая темаСледующая тема: Навигация на файлах!
Страницы:  1  

Сообщение
Имя E-mail
Сообщение

Нажмите на точку возле имени для обращения к участнику

Смайлы:

Ещё смайлы
Эмодзи
         
Защитный код: (введите цифры, которые на синем фоне)
Ответ на вопрос: (Какой сейчас год?)
   
WR-Счётчик
Powered by WR-Forum Professional © 2.3 UTF-8 beta версия