• 24-03-2014, 16:50:00
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar şimdi bi anket sistemi yapıyorum bi yere kadar herşeyi yaptım.
    Fakat birden çok anket açıyorum oy kullanan kişinin ipsini kayıt altına alıyorum.Bu adam diğer anketlerede oy atamıyor nerede bi hata yapıyorum çözümü bir türlü bulamadım.

    <?php 
    include("functions/baglan.php");
    include("functions/fonksiyon.php");
    include("functions/mysql.php");
    
    $url = mysql_real_escape_string($_GET["sayfa"]);
     ?>
     
    <?php if(isset($_POST["btn"])){
    	$ipadres=$_SERVER['REMOTE_ADDR'];
    $anketsecenek=$_POST["anketdeger"];
    $anketid = $_GET["sayfa"];
      
     $anketsorular=mysql_query("insert into  anket_oy(anket_sec_id,ip,oy,anketid) values ('".$anketsecenek."','".$ipadres."','1','".$anketid."')");
     if($anketsorular){
    ekranbastir("Oyunuz Kayıt Altına Alınmıştır.");
     }
    	} ?>
    <?php 
    $anketgetir=mysql_query("SELECT * FROM anket_soru WHERE  id='$url'");
    $anketveri=mysql_fetch_array($anketgetir);
    $durum = $anketveri["durum"];
      $ipadress=$_SERVER['REMOTE_ADDR'];
    if($durum!=1){
    echo "Bu Anket Şuanda Yayında Değildir.";
    }
    
    
    else{
    	if($anketgetir){
    			}
    				
    ?>
    
    <div class="blok5">
      <div class="bbaslik"><img src="images/anket-kosesi.png" alt=" | Anket" draggable="false" /> ANKET KÖŞESİ</div>
      <div class="bicerik bgg1">
        <div id="anketbaslik">
          <?php echo $anketveri["soru"]; ?>
          
        </div>
        <div class="secenekler">
          <?php 
    	  $anketoyy=mysql_query("Select * from anket_oy Where ip='".$ipadress."'");
    	  $anketoy=mysql_fetch_array($anketoyy);
    	   ?>
          <?php if($anketoy["anketid"]){ $degerler="";$soruular=""; ?>
          <?php 
    	$soru=mysql_query("SELECT * FROM  anket_soru WHERE id='$url'");
    	$sorudetay=mysql_fetch_array($soru);
    	$anketsec=mysql_query("Select * from anket_sec Where anket_soru_id='".$sorudetay["id"]."'");
    	 
    	while($anketoysayi=mysql_fetch_array($anketsec)){
    		$anketoy=mysql_query("Select * from anket_oy Where anket_sec_id='".$anketoysayi["id"]."'");
    		$degerler.=mysql_num_rows($anketoy).'_';
    		$soruular.=$anketoysayi["secenek"].'_';
    	  
    	}
    	$parca=explode('_',$degerler);
    	$soruparcala=explode('_',$soruular);
     
    	for($i=0;$i<count($soruparcala)-1;$i++){
    		?>
          <div class="anket_oy_sayisi">
            <div class="anket_oy_baslik">
              <?=$soruparcala[$i]?>
            </div>
            <div class="anket_oy_adet"><b>Oy:</b>
              <?=$parca[$i]?>
            </div>
          </div>
          <?php  
    		}
    	?>
          <?php }
    	  else{ ?>
          <form action="#" method="post">
            <?php 
    	   $anketsec=mysql_query("Select * from anket_sec Where anket_soru_id='".$anketveri["id"]."'");
    	 if(mysql_num_rows($anketsec)>0){
    		   while($anketsecg=mysql_fetch_array($anketsec)){
    	   ?>
            <label>
              <input type="radio" name="anketdeger" id="anket_secenekler" value="<?=$anketsecg["id"]?>" />
              <?=$anketsecg["secenek"]?>
            </label>
            <?php }} ?>
            <input type="submit" name="btn" value="Oyla" id="anket_btn" />
          </form>
          <?php } ?>
        </div>
      </div>
    </div>
    <?php } ?>
  • 24-03-2014, 17:07:00
    #2
    Üyeliği durduruldu
    Hocam ip çekmişsiniz bi sorgu yapın bir sonraki anketin oy verilmiş tablosunda kişinin ip adresi yoksa ekrana bassın varsa ekrana siz daha önce bu ankete oy verdiniz gibi bi dönüş yapsın demek istediğimi anlamışsınızdır umarım ..
  • 24-03-2014, 21:52:07
    #3
    Anket formlarına hidden bir input atayıp içine anketin id'sini çekebilirsin. Post edildiğinde bu id numarasına sahip satırlarda ip adresinin varlığını sorgulayıp eşleşme yoksa oyu geçerli varsa daha önceden oy kullandınız gibi bir ifade verebilirsin.
  • 24-03-2014, 22:12:06
    #4
    Üyeliği durduruldu
    boykAa adlı üyeden alıntı: mesajı görüntüle
    Hocam ip çekmişsiniz bi sorgu yapın bir sonraki anketin oy verilmiş tablosunda kişinin ip adresi yoksa ekrana bassın varsa ekrana siz daha önce bu ankete oy verdiniz gibi bi dönüş yapsın demek istediğimi anlamışsınızdır umarım ..
    Anladım hocamda bunun üstünde bir türlü yapamadım onu kafam durdu resmek ip çektim if else yapıcam zaten bu if else içerisinde çıkamadım içerisinden bir türlü.
  • 24-03-2014, 23:45:23
    #5
    $anketoykontrol=mysql_query("Select * from anket_oy Where ip='".$ipadress."' And anketid='.$anketid.'");
    kontrolünüzü tek ip ye göre değil hem ip hem anketid ye göre yapmanız gerekiyor. yukarıdaki sorguya benzer bir sorguyla ilgili ankete, giriş yapılan ipye ait bir kayıt varmı yokmu kontrol edersiniz. num_rows ile kayıt sayısı alırsınız Eğer kayıtsayisi<1 ise yani kayıt bulunmazsa ankete oyu kaydettirirsiniz eğer varsa kaydettirmezsiniz. Böylelikle her ip birden çok ankete oy verebilir ama 1 ankete 1 oy verebilir.
  • 25-03-2014, 00:09:06
    #6
    Üyeliği durduruldu
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    $anketoykontrol=mysql_query("Select * from anket_oy Where ip='".$ipadress."' And anketid='.$anketid.'");
    kontrolünüzü tek ip ye göre değil hem ip hem anketid ye göre yapmanız gerekiyor. yukarıdaki sorguya benzer bir sorguyla ilgili ankete, giriş yapılan ipye ait bir kayıt varmı yokmu kontrol edersiniz. num_rows ile kayıt sayısı alırsınız Eğer kayıtsayisi<1 ise yani kayıt bulunmazsa ankete oyu kaydettirirsiniz eğer varsa kaydettirmezsiniz. Böylelikle her ip birden çok ankete oy verebilir ama 1 ankete 1 oy verebilir.
    Teşekkürler Test ediyim hocam.