ANKET
AMAÇ:
Html sayfamızdada kullanabileceğimiz ve verileri bir dosyada saklayan anket örneği yaratmak. Bu kod tamamen öğretmek amaçlı olup en basit şekilde yazılmaya çalışılmıştır. Bir çok farklı yöntemle daha etkileşimli anket programları da yaratılabilir. Örneğin Database kullanılabilir veya yazdığımız kod birden fazla anketi içinde barındırabilir. Ama temel olarak mantık bu şekildedir.
Program kendi kendine de çalıştırılabilir. Veya bir html dosyasına formu koyaraktada kullanılabilirsiniz. Eklenmesi gereken Html bilgiside açıklamanın içinde mevcuttur.
Bu kodun tüm dosyalarını çekmek için TIKLAYIN (Bu sayfa dahildir.)
Bu kodun daha gelişmiş hali şu anda www.e-tayfun.com da php köşesinde mevcuttur.
NOT:
Bu kodu denemek isterseniz :)
SİZCE BU ÖRNEK SİZE FAYDALIMI ?
YAPAN:
TAYFUN ULU
tayfun@turk-php.com <Hertürlü soru ve önerileriniz için>
www.e-tayfun.com
PROGRAMIN KODU:
| <?php if(!isset($sonuc)):?> <html><body> <b>SİZCE BU ÖRNEK SİZE FAYDALIMI ?</b> <form action="<?=$PHP_SELF?>" method="post" name="anket"> <p> <input type="radio" name="sonuc" value="1" checked> EVET EPEYİ FAYDALI OLDU!<br> <input type="radio" name="sonuc" value="2"> NORMAL BİR ÖRNEK <br> <input type="radio" name="sonuc" value="3"> DAHA İYİSİ DE YAPILABİLİR:(<br> <input type="radio" name="sonuc" value="4"> YAPMASAN DAHA İYİYMİŞ!<br> <input type="submit" name="GONDER" value="GONDER"> <input type="reset" name="Temizle" value="Temizle"> </p> </form> </body></html> <?exit();?> <?endif?> <?$dosya="anket.dat";?> <?if(!file_exists($dosya)):?> <?$ilk=fopen($dosya,'w') or die("dosya açılamıyor!!!");?> <?fwrite($ilk,"0\n0\n0\n0\n");?> <?fclose($ilk);?> <?endif?> <?$tut=fopen($dosya,'r') or die("Dosya açılamıyor!!!");?> <?$toplam=1;?> <?for($i=0;$i<=3;$i++):?> <?$satir[$i]=trim(fgets($tut,150));?> <?$toplam+=$satir[$i];?> <?endfor?> <?fclose($tut);?> <?switch ($sonuc): case 1: $satir[0]++; break; case 2: $satir[1]++; break; case 3: $satir[2]++; break; case 4: $satir[3]++; break; default: exit("BU SECENEK YOK"); endswitch;?> <?$bilgi=($satir[0]."\n".$satir[1]."\n".$satir[2]."\n".$satir[3]."\n");?> <?$ilk=fopen($dosya,'w') or die("dosya açılamıyor!!!");?> <?fwrite($ilk,$bilgi);?> <?fclose($ilk);?> <html><body> <center> <table border="1"> <tr><td align="center" colspan="3"><b>BU ÖRNEK FAYDALIMI ? </b></td></tr> <tr> <td>EVET EPEYİ FAYDALI OLDU!</td><td width="200"><img src="m.gif" width="<?print ((integer)($satir[0]/$toplam*100))?>%" height="10" ></td><td><?=$satir[0]?> Tane oy</td> </tr> <tr> <td>NORMAL BİR ÖRNEK </td><td width="200"><img src="y.gif" width="<?print ((integer)($satir[1]/$toplam*100))?>%" height="10" ></td><td><?=$satir[1]?> Tane oy</td> </tr> <tr> <td>DAHA İYİSİ DE YAPILABİLİR:(</td><td width="200"><img src="s.gif" width="<?print ((integer)($satir[2]/$toplam*100))?>%" height="10" ></td><td><?=$satir[2]?> Tane oy</td> </tr> <tr> <td>YAPMASAN DAHA İYİYMİŞ!</td><td width="200"><img src="k.gif" width="<?print ((integer)($satir[3]/$toplam*100))?>%" height="10" ></td><td><?=$satir[3]?> Tane oy</td> </tr> <tr><td align="center" colspan="3"><b>TOPLAM OY SAYISI=<?=$toplam;?></b></td></tr> </table> </center> </body></html> |
HTML(Sayfaya eklenecek kod farçası)
| <html><body> <b>SİZCE BU ÖRNEK SİZE FAYDALIMI ?</b> <form action="anket.php" method="post" name="anket"> <p> <input type="radio" name="sonuc" value="1" checked> EVET EPEYİ FAYDALI OLDU!<br> <input type="radio" name="sonuc" value="2"> NORMAL BİR ÖRNEK <br> <input type="radio" name="sonuc" value="3"> DAHA İYİSİ DE YAPILABİLİR:(<br> <input type="radio" name="sonuc" value="4"> YAPMASAN DAHA İYİYMİŞ!<br> <input type="submit" name="GONDER" value="GONDER"> <input type="reset" name="Temizle" value="Temizle"> </p> </form></body></html> |
KULLANILAM KOMUTLAR:
Program esnasında bu komut girildiği andan programı durdurur. Ve istenilen yazıyı ekrana çıktı olarak verir.
Kullanımı:exit (string);
Örnek:
if($isim==10){
exit("Girdiğiniz sayı 10 olduğu için program kapandı!!!")
}
print ("Girdiğiniz sayı 10 dan farklı olduğu için program devam ediyor");
Bu komutla elimizdeki bir değişkenin var olup olmadığını kontrol edebilirsiniz. Eğer dosya varsa TRUE, dosya yoksa FALSE çıktısını verir.
Kullanımı:int isset (string degisken);
Örnek:
if($isim==10){
exit("Girdiğiniz sayı 10 olduğu için program kapandı!!!")
}
print ("Girdiğiniz sayı 10 dan farklı olduğu için program devam ediyor");
Dosyanın varlığını kontrol eder. Dosya mevcutsa TRUE (1) değerini döndürür. Dosya yoksa FALSE (0) değerini geri döndürür.
Kullanımı:int file_exists (string dosya_adi)
Dosya üzerinde (burdaki dosya diye bahsetiğimiz normal txt uzantılı dosya gibi) değişiklik, okuma veya ekleme yapacağımız zaman öncelikle dosyayı açmamız gerekir. Komut sonuç olarak bir HANDLE(tutacak) geri yollar. Bundan soraki işlemlerde bu tutacak kullanılır.
Kullanımı: int fopen (string dosya_adi, string parametre)
parametre:
'r' : Dosyayı okuma amacı ile açar. Dosya yoksa hata verir.
'w' : Dosyaya yazma amacı ile açar. Dosya yoksa yaratır. Varsa tüm içerigini siler.
'a' : Dosyaya ek yapmak amacı ile açar. Dosya yoksa hata verir.Örnek:
$link=fopen("dosya.txt",'r');
Açtığımız dosyayı kapamaya yarar. Parametre olarak dosyayı tuturduğumuz HANDLE (tutacak) girilir.
Kullanımı: int fclose (int HANDLE)
Örnek:
$tutacak = fopen("dosya.txt",'a');
fclose($tutacak);
Dosyaya bilgi girişi yapmakta kullanılır.
Kullanımı: int fwrite (int tutacak, string metin)
Örnek:
$metin="Bu dosyanın içine ekli";
$tut=fopen("veri.dat",'w');
fwrite($tut,$metin);
fclose($tut);
Dosyadan bilgi okuma işini yapar.Bilgileri satır satır okur. Satırı okurken iki sebebten dolayı durur: İlki satırın sonu gelmesi "\n" gibi. İkincisi satır uzunluk parametresi ile belirtilen uzunluğu geçmesi halinde o satırı bitmiş kabul eder.. Dikkat edilecek bir unsur bu fonksiyon her çagırıldığında bir sonraki satıra geçer. O yüzden eğer birden çok satır okutacaksanız dosyanın sonuna gelip gelmediğini kontrol ediniz. "EOF()" yoksa program sonsuza dek okumaya çalışır.
Kullanımı: string fgets (int tutamak, int uzunluk)
Örnek:
$tutacak = fopen ("dosya.txt", "r");
while (!feof($tutacak) {
$bilgi = fgets($tutacak, 1024);
print ($bilgi);
}
fclose ($tutacak);
Dönüştürücüler (integer) ve (string)
Bazen elimizdeki değişkenşlerin başka bir formatta olmasını isteriz. Mesela bir sayının üzerinde string işlemleri yapmak isteriz. Bu tür işleri yapmak için değişkenimizin türünü değiştirebiliriz.
String'den integer sayıya dönüştürme:
Kullanımı:
String'den integer sayıya dönüştürme:
string = (string)degisken;İnteger'dan sitringe dönüştürme:
integer=(integer)degisken;Örnek:
Elimizdeki integer sayıyı string e cevirmek istersek:
$des=1222; //burada des degiskeninin türü integer dır.
$des=(string)$des; // artık değişkeninin türünü string yapmış bulunuyoruz.
KODUN AÇIKLANMASI:
|
<?php if(!isset($sonuc)):?>
<html><body> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |