PHP Ajax Anket Yapımı ~ AyQo Blog
  • Ücretsiz Mobil Chat ScriptiÜcretsiz chat sitesi açabileceğiniz bir script yazmak istedim.
  • LOL İtibar Puanı KasmaDünyanın en çok oynanan ve takip edilen oyunu LOL konusunda söylemek istediğim birkaç şey var.
  • Online Anti-Virüs Tarama ve Koruma SiteleriFirmalar arası rekabet sonucu ortaya çıkan çevrim içi veya Online tarama sisteminizi korumaya yardımcı olabilecek düzeyde.
  • Çoklu Skype Açma Programsız (Resimli Anlatım)Windows live'dan kalan bir alışkanlıktır Messanger'de çoklu oturum açmak.
  • PHP Youtube Bot YapımıPHP ile Youtube'dan video bilgilerini çekme işlemini çok basit kodlarla anlatacağım.
1 2 3 4 5

13 Nisan 2012

Yazan AyQo
PHP ile basit anket veya oylama scripti yapalım. Öncelikle HTML Dosyamızı oluşturalım.
HTML Dosyası

<html>
<head>
<script type="text/javascript">
function getVote(int)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("poll").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","poll_vote.php?vote="+int,true);
xmlhttp.send();
}
</script>
</head>
<body>


<div id="poll">
<h3>Do you like PHP and AJAX so far?</h3>
<form>
Yes:
<input type="radio" name="vote" value="0" onclick="getVote(this.value)" />
<br />No:
<input type="radio" name="vote" value="1" onclick="getVote(this.value)" />
</form>
</div>


</body>
</html>

Açıklaması: Kullanıcı radio butonu tıkladığında getVote fonksiyonunu çalıştıracak.

GetVote Fonksiyonu aşağıdaki işlemleri yapar:

  • XMLHttpRequest nesnesini oluşturur.
  • Sunucu cevap vermeye hazır olduğunda çalışacak fonksiyonu hazırlar.
  • Sunucuda dosya kapatma isteği gönderir.
PHP Dosyası
<?php
$vote = $_REQUEST['vote'];

//get content of textfile
$filename = "poll_result.txt";
$content = file($filename);

//put content in array
$array = explode("||", $content[0]);
$yes = $array[0];
$no = $array[1];

if ($vote == 0)
  {
  $yes = $yes + 1;
  }
if ($vote == 1)
  {
  $no = $no + 1;
  }

//insert votes to txt file
$insertvote = $yes."||".$no;
$fp = fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
?>

<h2>Result:</h2>
<table>
<tr>
<td>Yes:</td>
<td>
<img src="poll.gif"
width='<?php echo(100*round($yes/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td>
<img src="poll.gif"
width='<?php echo(100*round($no/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>

Açıklaması: HTML sayfasında çağıralan php_vote.php dosyasıdır.

PHP dosyasının yaptıkları:

  1. "Poll_result.txt" dosyasının içeriğini alınır.
  2. Değişkenlere bir eklenir.
  3. Txt dosyasına yazılır.
  4. Anket sonucu grafiksel olarak ekrana yansır.
Metin Dosyası

Poll_resutlt.txt içeriği : 0||0 ilk "0" evet oyunu ikinci "0" ise hayır oyunu işaret etmektedir. Dosyayı sunucuda çalıştıracağınızdan gerekli izinleri vermelisiniz.




Related Posts Plugin for WordPress, Blogger...

6 yorum:

  1. oylama sistemini her kişi için bir defa yapmak istediğimizde ne yapmamız gerekiyor ?

    YanıtlaSil
    Yanıtlar
    1. Oylayan kişiye çerez veya session(oturum) ata. Örnek:
      session_start();
      $_SESSION["oydurum"] =1; //bunu oy verme işleminden sonraya yaz.
      if($_SESSION["oydurum"]==1){ echo "Siz daha önce oy kullanmışsınız"; // oy verme kodlarından önüne yaz bunu
      }else //oy verme işlemi kodlarını buraya yaz.
      Umarım açıklayıcı olmuştur.

      Sil
  2. Şu oy veren kişinin 1 kere vermesini bir daha geniş çaplı anlatır mısın?
    Bir de kaç kişinin oy verdiğini nasıl bulabiliriz?

    YanıtlaSil
    Yanıtlar
    1. yukarıdaki kodu uygula.
      kaç kişi içinse ise $toplam = $no + $yes; desen olması lazım sanırım.

      Sil
    2. Çok teşekkür ederim toplam oy çalıştı.

      Fakat yukarıdaki kodu nereye uygulayacağımı bulamadım bi söyler misin? :)

      Saygılar..

      Sil
    3. Merhaba
      secenekleri artırmak için ne yapmalıyım

      Sil