10 İnternet Programcılığı Dökümanı
Transkript
10 İnternet Programcılığı Dökümanı
BÖLÜM 12 İNTERNET PROGRAMCILIĞI – I Özcan 12- FORMLAR HTML'in bir metin şekillendirme aracı olduğunu söylemiştik. Form'lar bu tanımın istisnasıdır, HTML kullanarak sayfanızı ziyaret edenlerle temas kurmanızı sağlarlar. Formlar yoluyla ziyaretçilerin herhangi bir konuda görüşlerini alabiliriz; veya hazırlayacağımız bir formla ziyaretçilerden kişisel bilgilerini isteyebiliriz. Formlar <form>...</form> etiketleri arasına yazılırlar. Bu etiketin parametrelerini öğrenmeden önce form türlerine bir bakalım. 12.1 FORM TÜRLERİ Aşağıda form türlerini ve kullanılışlarını görüyoruz.: text maxlength: Yazılabilecek maksimum text uzunluğu value: varsayılan değer size: Px cinsinden alanın uzunluğu <form> <input type="text" maxlength="10" size="12" value="İsminiz?" </form> İsminiz? <> <input type="text"> Ziyaretçinin ismi, telefonu gibi kısa bilgilerini almak için kullanılır. password Tüm parametrleri text ile aynıdır. <form> Lütfen şifre girin:<br> <input type="password" maxlength="10" size="12"> </form> Lütfen şifre girin: <input type="password"> Şifre almak için kullanılır, yazılan karakterler ekranda '*' şeklinde görüntülenir 33 İNTERNET PROGRAMCILIĞI – I textarae a rows : Alanın karakter cinsinden yüksekliği cols : Alanın genişliği Özcan <form> <textarea cols="12" rows="4">Burası bir textarea!</textarea> </form> Burasi bir tex <textarea >...</textarea> Text kutusuna sığmayacak uzun bilgileri, mesela ziyaretçinin sayfa ile ilgili düşüncelerini almak için kullanılır. checkbo x checked: sayfa açıldığında 'checked' ibaresi bulunan kutu işaretli olur. <form> <input type="checkbox" checked>seçenek 1 <input type="checkbox">seçenek 2 </form> seçenek1 seçenek2 <input type="checkbox> Ziyaretçiye, verilen seçeneklerden birini, birkaçını veya hepsini seçme imkanı verir. radio checked: sayfa açıldığında 'checked' ibaresi bulunan daire seçil miş olur. <form> <input type="radio" name=sec">seçenek1<br> <input type="radio" name= "sec"checked>seçenek2< br> <input type="radio" name="sec">seçenek2 </form> <input type="radio"> Ziyaretçiye, verilen seçeneklerden sadece birini seçme imkanı verir. select size: Select etiketinin karakter cinsinden boyutu selected: Görevi checked ifadesinin aynıdır. multiple: Ziyaretçinin birden çok seçim yapmasına olanak verir <form> <select size= "1"> <option selected>seçenek1 <option>seçenek2 <option>seçenek3 </select> 34 seçenek1 seçenek2 seçenek2 İNTERNET PROGRAMCILIĞI – I Özcan <select><option>...<option>...</select> Ziyaretçiye seçeneklerden birini veya (multiple ifadesi ile) birkaçını seçme imkanı verir. <select name=”os_type” size=”1”> <option value=”win”>Windows 9x</option> <option value=”winnt”>Windows NT</option> <option value=”linux”>Linux</option> <option value=”unix”>UNIX</option> <option value=”os2”>OS/2</option> <option value=”macos”>MacOS</option> </select> submit <form> <input type="submit" value="Gönder"> </form> value: Butonun üzerine yazılacak metin buraya yazılır Gönder <input type="submit> Ziyaretçi doldurduğu formu bu düğmeye basarak gönderir reset <form> <input type="reset" value="Sil"> </form> value: Butonun üzerindeki metin <input type="reset" > Ziyaretçinin doldurduğu formda, ziyaretçinin yazdığı her şeyi siler. button <form> <input type="button" value="Düğme"> </form> value: Butonun üzerindeki metin <input type="button> Düğmelere JavaScript ile bazı işlevler kazandırılabilir. 35 Sil İNTERNET PROGRAMCILIĞI – I Özcan Tabloda belirtmedik ama form elemanlarında daha önceden bildiğimiz name parametresi de kullanılabilir. 12.2 <FORM> ETİKETİ İşte <form> etiketinin parametreleri ve bunların işlevleri: method 'Get' veya 'post' değerlerini alabilir. Method parametresinin değeri formu göndereceğimiz CGI programı açısından önemlidir. Eğer CGI kodları yazmayı bilmiyorsak, birçok servis sağlayıcı size form'larımızın sonuçlarını e-mail'inize gönderme imkanı verir. Eğer böyle bir hizmetten yararlanacaksak 'post' metodunu seçmeliyiz. <form method= "post> action Formu göndereceğimiz CGI programının adresini action parametresiyle bildiririz. Eğer yukarıda bahsedilen hizmetten yararlanmak istiyorsak, servis sağlayıcınızdan bu programın adresini öğrenmelisiyiz. Örneğin bu adres 'freeservers' için '/cgi-bin/cgiemail' 'dir. <form method="post" action= "/cgi-bin/cgiemail"> 12.3 FORM UYGULAMASI Aşağıdaki örnekte bütün form unsurlarının kullanımını göreceğiz. Bu örneği önce parça parça yapmaya çalışalım, gerektiğinde aşağıda verilen kodlardan yararlanabiliriz... Bu siteye not verin! Buraya yaz Kullanıcı ismi Parola Cinsiyet E K Bildiğiniz Uygulamalar 36 İNTERNET PROGRAMCILIĞI – I Özcan Sitenin içeriği 5, Çok zengin! 4, Fazlasıyla yeterli 3, Yeterli 2, Yetersiz 1, Çok kısıtlı Sitenin tasarımı gönder sil <> <form name="anket"> <p><h3>Bu siteye not verin!</h3></p> <p><b>Kullanıcı ismi</b> <input value="Buraya yazın!"></p> <p><b>Parola</b> <input type="password" maxlength="10"></p> <p><b>Cinsiyet</b> E<input type="Checkbox">K<input type="Checkbox"> <p>Bildiğiniz Uygulamalar</p> <p><select size="4" multiple> <option>HTML <option>JavaScript <option>Css <option>Asp </select></p><br><br> <p><b>Sitenin içeriği</b></p> <p><input type="radio" name="not" value="5">5, Çok zengin!<br> <input type="radio" name="not" value="4">4, Fazlasıyla yeterli<br> <input type="radio" name="not" value="3" checked>3, Yeterli<br> <input type="radio" name="not" value="2">2, Yetersiz<br> <input type="radio" name="not" value="1">1, Çok kısıtlı <br></p> <p><b>Sitenin tasarımı</b></p> <p><select> <option selected>Harika! <option>Oldukça iyi <option>İyi <option>İdare eder <option>Berbat</option> </select></p> <p><input type="submit" value="gönder"><input type="reset" value="sil" </form> 37 İNTERNET PROGRAMCILIĞI – I Özcan HTML bölümünün burada sonuna geldik. Fakat tek başına HTML, çoğu zaman istediğimiz gibi sayfalar yapabilmek için yeterli olmaz. Artık internet'te yer alan sayfaların hemen hepsinde JavaScript kullanılmaktadır. 12.4 ÖRNEK UYGULAMALAR Bu form herhangi bir PHP yada benzeri bir dosyaya bilgi göndermediği için “ Kayıt “ tuşuna basılınca hata ile karşılaşılacaktır. Bu formu hazırlamaktaki amacım, sadece form oluşturma konusunda bir örnek vermektir. HTML kodlarını nerede ve nasıl kullanıldığına dikkat edin. <html> <head> <title>İlk Web Formum</title> </head> <body bgcolor="#ffffff" text="#000000"> <center> <br><br> <fieldset> <legend>Üyelik Formu</legend> <table border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff" width="400"> <tr><td colspan="2"><br></td></tr> <tr><td size="70"> <form action="kayit.php" action="post"> <b>Adınız</b></td><td><input type="text" name="ad" size="24"></td></tr> <tr><td size="70"><b>Soyadınız</b></td><td><input type="text" name="soyad" size="24"></td></tr> <tr><td size="70"><b>e-posta Adresiniz</b></td><td><input type="text" name="email" size="24"></td></tr> <tr><td size="70"><b>Doğum Tarihiniz</b></td> <td><select name="d_gun" size="1"> <option value="1">1</option><option value="2">2</option><option value="3">3</option> <option value="4">4</option><option value="5">5</option><option value="6">6</option> <option value="7">7</option><option value="8">8</option><option value="9">9</option> <option value="10">10</option><option value="11">11</option><option value="12">12</option> <option value="13">13</option><option value="14">14</option><option value="15">15</option> <option value="16">16</option><option value="17">17</option><option 38 İNTERNET PROGRAMCILIĞI – I Özcan value="18">18</option> <option value="19">19</option><option value="20">20</option><option value="21">21</option> <option value="22">22</option><option value="23">23</option><option value="24">24</option> <option value="25">25</option><option value="26">26</option><option value="27">27</option> <option value="28">28</option><option value="29">29</option><option value="30">30</option> <option value="31">31</option></select> <select name="d_ay" size="1"> <option value="ocak">Ocak</option><option value="subat">Şubat</option> <option value="mart">Mart</option><option value="nisan">Nisan</option> <option value="mayıs">Mayıs</option><option value="haziran">Haziran</option> <option value="temmuz">Temmuz</option><option value="agustos">Agustos</option> <option value="eylul">Eylül</option><option value="ekim">Ekim</option> <option value="kasım">Kasım</option><option value="aralık">Aralık</option></select> <input type="text" name="d_yil" size="1"></td> <tr><td colspan="2"><br></td></tr> <tr><td size="70"><b>Kullanıcı Adınız</b></td><td><input type="text" name="uid" size="24"></td></tr> <tr><td size="70"><b>Şifreniz</b></td><td><input type="password" name="pass1" size="24"></td></tr> <tr><td size="70"><b>Şifreniz</b></td><td><input type="password" name="pass2" size="24"></td></tr> <tr><td colspan="2"><br></td></tr> <tr><td colspan="2"><li>Daha önce PHP kullandınız mı?</td></tr> <tr><td colspan="2"><input type="radio" name="php" value="e">Evet     <input type="radio" name="php" value="h"> Hayır</td></tr> <tr><td colspan="2"><li>Daha önce MySQL kullandınız mı?</td></tr> <tr><td colspan="2"><input type="radio" name="sql" value="e">Evet     <input type="radio" name="sql" value="h"> Hayır</td></tr> <tr><td colspan="2"> <center><br> <input type=submit value=" Kayıt ">       <input type="reset" value=" Vazgeç "> </form> </td></tr></table> </body> 39 İNTERNET PROGRAMCILIĞI – I Özcan </html> Sürekli aynı kodun kullanıldığı durumlarda (option tagında olduğu gibi) kopyala yapıştır işlemi işinizi bayağı kolaylaştıracaktır. Örnek Frame Sayfası Frame kullanarak bir sayfa oluşturmak için elimizde en az üç tane HTML dosyası olmalıdır. Bu örnekte altı tane HTML dosyası kullanılmıştır. Kullanılacak sayfaların içerikleri boş olacak, sadece sayfa görüntülendiğinde sayfa için tanımlayıcı bir bilgi içerecek. <! --- Bu dosyayı 1.html diye kaydedin --- > <html> <head> <title>Sayfa 1</title> </head> <body bgcolor=#ffffff text=#000000> <br><center> <h1>Bu birinci sayfa</h1> </center> </body> </html> <! --- Bu dosyayı 2.html diye kaydedin --- > <html> <head> <title>Sayfa 2</title> </head> <body bgcolor=#ffffff text=#000000> <br><center> <h1>Bu ikinci sayfa</h1> </center> </body> </html> <! --- Bu dosyayı 3.html diye kaydedin --- > <html> <head> <title>Sayfa 3</title> </head> <body bgcolor=#ffffff text=#000000> <br><center> <h1>Bu üçüncü sayfa</h1> </center> 40 İNTERNET PROGRAMCILIĞI – I Özcan </body> </html> Yukarıdaki üç HTML dosyası bizim sitemizin içeriğini oluşturacak sayfalar olacak. Şimdi sıra index.html ve framelerin asıl bileşenlerini oluşturacak sayfaları yapmada. <! --- Bu dosyayı menu.html diye kaydedin --- > <html> <head> <title>Sag sütun</title> <base target=ana> </head> <body bgcolor=#eaeaea text=#000000> <br><br> <a href=1.html>Bu link 1. Sayfaya çıkar</a><br><br> <a href=2.html>Bu link 2. Sayfaya çıkar</a><br><br> <a href=3.html>Bu link 3. Sayfaya çıkar</a><br><br> </body> </html> <! --- Bu dosyayı ana.html diye kaydedin --- > <html> <head> <title>Ana Sayfa</title> </head> <body bgcolor=#ffffff text=#000000> <br><br> <center> <h1>Burası sayfamızın giriş bölümü.</h1> </center> </body> </html> <! --- Bu dosyayı index.html diye kaydedin --- > <html> <head> <title>Sag sütun</title> </head> <frameset framespacing=0 border=false frameborder=0 cols=”170,*”> <frame name=menu target=ana src=menu.html scrolling=auto> <frame name=ana src=ana.html> <noframes> <body> <center><br><h1>Sanırım browserınız çaga ayak uyduramamış :P</h1></center> 41 İNTERNET PROGRAMCILIĞI – I Özcan </body> </noframes> </frameset> </html> Yukarıda yazılan dosyaları belirtilen isimleri ile aynı dizinin içine oluşturun. Sonucu kendiniz izleyin. Dikkat etmeniz gereken noktalardan biri, menu.html dosyasında <head> tagı içerisindeki <base target=ana> tag satırı. Bu satır yazıldığı sayfada tıklanan linklerin açılacağı sayfanın “ana” olarak adlandırılan kesimde (ana.html nin olduğu kesim) yer almasıdır. <noframes> tagı bize, kullanılan browserın frame desteği olmadığı zaman görüntülenecek sayfayı belirtmemizi sağlar. <frame> tagı sayfada kullanılacak frameleri belirlemede kullanılır. Son olarak cols=”200,*” gibi bir ifade dikkatinizi çekmiştir. Bu kod bize <frame> tagı ile tanımlı sayfalardan ilkinin index.html sayfasında yatayda (cols) 200 piksellik bir alan kaplayacağını ve geri kalan kısmının da (*) tümünün belirtilen diğer sayfaya ait olduğunu belirtir. Eğer sayfalarımızı yan yana değil de alt alta yerleştirmek isteseydik rows=”değer,değer” gibi bir ifade kullanmamız gerekecekti. Aşağıdaki dosyayı diğer index.html dosyası yerine kaydederseniz farkı görebilirsiniz. <! --- Bu dosyayı index.html diye kaydedin --- > <html> <head> <title>Sağ sütun</title> </head> <frameset framespacing=0 border=false frameborder=0 rows=”170,*”> <frame name=menu target=ana src=menu.html scrolling=auto> <frame name=ana src=ana.html> <noframes> <body> <center><br><h1>Sanırım browserınız çağa ayak uyduramamış :P</h1></center> </body> </noframes> </frameset> </html> Diğer dosyadan tek farkı <frameset> tagı ile cols yerine rows kodunun kullanılmış olmasıdır. 42 İNTERNET PROGRAMCILIĞI – I Özcan KAYNAK: 1- İnternet 43