Kayıt: Jun 02, 2003 Mesajlar: 1842 Konum: Istanbul
Tarih: 2007-04-17, 15:26:17 Mesaj konusu: Re: Ankette Herkes 1 defa oy kullansın
Eğer yapabilirseniz, Ip adreslerini kaydetmeyi ve yeni oy verilirken de o IP adresinin daha önce kullanılıp kullanılmadığı kontrol edin.
IP değiştirmeyi bilen çok fazla kişi yok genelde.
%90 işinizi görecektir.
kardeş o dedigin yer nerede ve ankette 51 seçenek olacak ayrıca onuda yapmak lazım
Seçenek sayısı önemli değil update fonksiyonu tek yerde kullanılmıştır.
Kullandığın script içerisinde nerde kullanılıyorsa yani nerde olduğunu bilemem :)
Scriptten scripte değişir.
Nuke 7.8 sürümde baktım IP kontrolü yapıyor.
Cookieye gerek kalmıyor yani. Oy veren ziyaretçinin IP adresi kayıt ediliyor aynı IP ile oy verilmiyor.
/modules/Surveys/index.php
Alıntı:
function pollCollector($pollID, $voteID) {
global $HTTP_COOKIE_VARS, $prefix, $db, $module_name;
/* Fix for lamers that like to cheat on polls */
if (empty($ip)) {
$ip = $_SERVER['REMOTE_ADDR'];
}
$pollID = intval($pollID);
$voteID = intval($voteID);
$past = time()-1800;
$db->sql_query("DELETE FROM ".$prefix."_poll_check WHERE time < '$past'");
$row = $db->sql_fetchrow($db->sql_query("SELECT ip FROM ".$prefix."_poll_check WHERE (ip='$ip') AND (pollID='$pollID')"));
$ips = $row['ip'];
$ctime = time();
if ($ip == $ips) {
$voteValid = 0;
} else {
$db->sql_query("INSERT INTO ".$prefix."_poll_check (ip, time, pollID) VALUES ('$ip', '$ctime', '$pollID')");
$voteValid = "1";
}
/* Fix end */
/* update database if the vote is valid */
if($voteValid>0) {
$db->sql_query("UPDATE ".$prefix."_poll_data SET optionCount=optionCount+1 WHERE pollID='$pollID' AND voteID='$voteID'");
if (!empty($voteID)) {
$db->sql_query("UPDATE ".$prefix."_poll_desc SET voters=voters+1 WHERE pollID='$pollID'");
update_points(8);
}
Header("Location: modules.php?name=$module_name&op=results&pollID=$pollID");
} else {
Header("Location: modules.php?name=$module_name&op=results&pollID=$pollID");
}
/* a lot of browsers can't handle it if there's an empty page */
echo "<html><head></head><body></body></html>";
}
Bir yere yazmayacaksınız /modules/Surveys/index.php açıp söylenenleri değiştiriyorsunuz..
seçenekleri attırmak içinde
admin/modules/ teki anket dosyasında [surveys] olması lazım
<option>ları yükseltiyorsunuz ve yükselttiğiniz kadar da veritabanında yükseltmeniz gerekmekte su an kendı pc mde olmadığı için daha detaylı anlatamıyorum pardon..
seksen7 kusur abakma mesajı hiiiç görmemişim. ersat kod vermiş ve o kısmı koyu yazmış zaten.
function pollCollector($pollID, $voteID) {
global $HTTP_COOKIE_VARS, $prefix, $db, $module_name;
/* Fix for lamers that like to cheat on polls */
if (empty($ip)) {
$ip = $_SERVER['REMOTE_ADDR'];
}
bu kısım
Yardim edermisiniz arkadaslar? Ip kontrol yerine sadece rumuzlari kontrol etse ve bir kullanici o isimle sadece bir defa oy kullana bilse? Yani hangi bilgisayarda oturursa otursun ayni kullaniciyla iki defa oy kullanamasin?
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız