Web Programcısının El Kitabı

Bu doküman, Web programcıları için, mosaic, netscape, lynx gibi web
programlarını kullanabildikleri gözönüne alınarak yazılmıştır. Yazının
amacı yeni başlayanlara ve HTML programlama hakkında az bilgisi
olanlara yol göstermektir.

 

Kısaltmalar

WWW
World Wide Web
SGML
Standard Generalized Markup Language
HTML
Hypertext Markup Language
VRML
Virtual Reality Modeling Language

 

HTML dökümanın hazırlanması

HTML Dökümanları tamamı ASCII karakterlerden ve
herhangi bir editörde yazılabilen metinlerden oluşmuştur.
UNIX üzerinde pico veya vi kullanarak HTML dökümanlarınızı
hazırlayabilirsiniz.
Bunun dışında, kullanıcının bu dili bilmediği farzedilerek
Windows ve DOS altında çalışan çeşitli programlar hazırlanmıştır.
Ayrıca, HTML kodunun doğruluğunu kontrol eden yardımcı
programlara da Internet üzerinden erişilebilir.

Temel bir döküman aşağıdaki gibi yazılabilir:

 
   < title> Burası konunun yazılacağı yer </title> 
   < h1> Bu, 1 numaralı başlık </h1> 
   HTML dünyasına hoşgeldiniz. <br>
   Birinci paragrafımız. <p>
   Bu da ikinci.. <p> 
       

HTML yazarken, metnin Web programının anlayacağı şekilde gösterilebilmesi
için belirteçler kullanır. Yukarıdaki örnekte:

Tüm HTML belirteçleri, küçüktür işareti (< ), belirteç ismi ve büyüktür
işaretinden (> ) oluşur. Genellikle her belirtecin < h1> ve < /h1> örneklerindeki
gibi bir çifti olur ve sondaki belirtecin ismi önüne ayraç gelir.
Yukarıdaki örnekte < h1> , Web programına 1 numaralı başlık formatında
yazmasını, </h1> ise bu formatı kapatmasını söyler. < p> belirteci istisna bir
durumdur ve < /p> olarak kapatılmaz.

Not1: HTML belirteçleri "case sensitive"dir..? < title > , < tITLE> veya
< tiTlE> belirteçleri aynı görevi yaparlar.

Temel Belirteçler

Konular

Her HTML sayfasının ve ile ayrılan bir konusu olmak zorundadır. Konular
genellikle sayfadan bağımsız olarak ekranın en üstüne basılır.

 

  
   <title> Sayfamın konusu </title> 
       

Başlıklar

HTML, 1'den 6'ya kadar numaralanmış 6 çeşit başlık destekler. Başlıklar
normal karakterlerden daha büyük ve kalın yazılırlar. Temel olarak,

 

  
   <Hy> Sayfamın başlığı </Hy> 
       

olarak tanımlanmış bir belirteçte y, 1 ile 6 arası bir değer alabilir. Y sayısı
arttıkça fontun büyüklüğü azalır.
Pek çok uygulamada, sayfanın konusu ile başlığını aynı tutabilirsiniz.

 

Paragraflar

Diğer kelime işlemcilerdekinin aksine, HTML dökümanlarında programcı
özel bir belirteç kullanmadıkça bir cümle herhangi bir yerinden ayrılıp kalan
kısmı altta görünebilir, birden fazla boş satır tek satır olarak algılanır.
Aşağıdaki örnekte, kaynak kodunda iki satır olmasına karşın, WWW
"browser" bunu algılamaz ve ekranda tek satır olarak görüntüler. Bir
"browser" satır sonlarını ve boş satırları gözardı edeceğinden, paragrafları
mutlaka < p> belirteci ile ayırmalısınız.

 

   HTML'ye hoşgeldiniz <br>
   Bu ilk paragraf <p>
       

Buna göre aşağıdaki örnek, okuduğunuz dosyanın başındaki örnekle;
aynı çıktıyı verir.

 

   <title> Burası konunun yazılacağı yer </title> 
   <h1> Bu, 1 numaralı başlık </h1> 
   HTML dünyasına hoşgeldiniz. Birinci paragrafımız. <p> 
   Bu da ikinci.. <p> 

       

HTML dosyalarının okunurluğunu artırmak için başlıklar ile karşılık gelen
belirteçleri aynı satirda, paragraf düzenleyen komutlar ise satır sonunda
olmalıdır.

 

Satır sonu belirteci

Paragraf, iki satır arasında bir satır boşluk bırakırken, satır sonu belirteci
kullanıldığı kursör alta geçer ve takip eden tüm metin,boşluk bırakmadan
bir alttan yazılır.

 

   Bu ilk satır. <br>  
   İkinci satır daha uzun. <br>
   Ama bu bir paragraf sonu..<p> 
       

 

Sayfanın ortalanması

Paragraflar ortalanırken < center> ve </center> belirteçlerinden yararlanılır.
Ortalanması istenen tüm metin, bu iki belirtecin arasına yazılır.

 

 
   <center> 
   In practical terms, HTML is a collection of styles.
   </center> 
       

 

Bağlantılar

HTML'nin en büyük özelliklerinden birisi, tek sayfa ile sınırlı kalmamasıdır.
Böylece bir sayfadan diğerine bağlantı yapılabilir. HTML'in bu görevini
yerine getirmesini sağlayan belirteç <a> 'dir Dökümanınızdan başka
dökümana bağlantı ypabilmek için:

 

  1. Belirteci girin.
    (Kısaca ilk satıra <a yazın)
  2. Hangi dökümana geçiş yapmak istiyorsanız, ismini yazın.
    HREF="dosyaismi"
  3. Bu dökümanı ekranda hangi isimle göstermek istediğinizi belirtin.
  4. Belirteci kapatın.
    </a>

Kısa bir örnekle açıklayalım:

 
   <a href="internet.html"> İnternet nedir? </a> 
       

Ekranda "İnternet Nedir?" yazısı belirecek ve kullanıcıdan burayı seçmeyi
bekleyecektir. Kullanıcı fare ile bu yazı üzerine tıkladığında ise program
kontrolü yine bir HTML dosya olan internet.html dosyasına bırakacaktır.
Bu durumda bulunduğunuz dizinden farklı bir dizindeki dosyaya bağlantı
yapmak isterseniz, o dosyanın ait olduğu dizini yazmak zorundasınız.
Buna göre "languages/Fortran/introduction.html" dosyasını kullanabilmek
için

 

   <a href="languages/Fortran/introduction.html" >
   Fortran diline giriş </a>
       

şeklinde bir belirteç yazmak gerekir.

 

Kaynak Bağlantıları

HTML'in bir diğer özelliği ise, tek bir makinaya bağımlı kalmadan
diğer İnternet servisleriyle bağlantı kurabilmesidir. Bunun için URL
(Uniform Resource Locator) kullanılır. URL, http,gopher, news
olabileceği gibi telnet de olabilir. Kullanım "sentaksı",

URL-ismi://makina-ismi[:port]/dizinler/dosya-ismi

Burada URL,

file : Kendi sisteminizde bir dosyaya,
http : Bir WWW sunucusu üzerindeki dosyaya,
gopher : Gopher sunucusu üzerindeki dosyaya,
news : Bir UseNet newsgroup'taki dosyaya,
WAIS : WAIS sunucusu üzerindeki dosyaya

erişmek için kullanılır.

Port numarası, genellikle yazılmaz. Size aksi durum belirtilmedikçe
, kullanmanıza gerek yoktur.
Siz de okuduğunuz dosyaya ulaşmak için,

 

   <a href=http://compclup.ceng.metu.edu.tr/web.lat5.html>
       

yazdınız.

 

Halihazır döküman bölgeleri bağlantıları

Bir metin üzerinde belirli bölgelere ulaşmak için yine belirteçler kullanılabilir.
Diyelim ki bir döküman hazırladınız ve bunu kullanıcının erişebileceği
2 parçaya ayırmak istiyorsunuz. Yapmanız gereken, bu üç parçanın
isimlerini belirlemek ve dökümanda yerlerini ayırmaktır. Örnekte,

 

   <a href="bu_dökümanın#1.parça"> Buradan ilk bölüme gidin </a> 
   <a href="bu_dökümanın#2.parça"> Buradan ikinci bölüme </a>
   <a name="1.parça"> İşte ilk bölüm>
   İlk bölüm ile ilgili metinler burada... </br>
   <a name="2.parça"> İşte ikinci bölüm>
   İkinci bölüm ile ilgili metiner burada.. </bt>
       

<a href= ile başladığınız belirteçte önce döküman ismini, sonra da
dökümanın içindeki parça ismini girmelisiniz. <a name= belirtecinde
ise o belirteçten itibaren parçanın başladığını anlıyoruz.

Kullanıcı ilk bölüme gitmek için fareyi kullandığında ekranda ,

    İlk bölüm ile ilgili bilgiler burada  

       

ifadesini görecektir.

Diğer döküman bölgelerine bağlantı

Yukarıdaki örnek doğrultusunda farklı olarak tek yapılması gereken,
döküman ismine, hangi dökümana bağlantı yapmak istiyorsak o ismi vermektir.

 

 
   <a href="diğer_döküman_ismi#parça_ismi"> başka dökümana geçiş</a>
   <a name=parça_ismi>
       

Ana komutlar

Listeler

Dökümanların göze hoş görünmelerini sağlamak amacıyla listeler
yaygın olarak kullanılır. HTML, pek çok liste çeşidi destekler. Bunlar,
düz listeler, numaralı listeler, tanımlı listeler ve içiçe listelerdir.

 

Düz listeler

Düz liste yaratmak için,

  1. Listeye başlamak için belirteç açılır.
    <ul>
  2. Liste elemanlarını teker teker girerken başına <li> belirteci girilir.
    Kapatmak için </li> belirtecine gerek yoktur.
  3. Listeyi bitirmek için belirteç kapatılır.
    </ul>

Örnek olarak,

 

    <ul> 
    <li> Elma
    <li> Armut 
    </ul> 
       

Örnek, ekranda şu şekilde görülür :


<li> belirteçleri içinde paragraflar, diğer dökümanlara bağlantılar,
ve diğer belirteçler kullanabilirsiniz

 

Numaralı Listeler

Numaralı listeler, düz listelerden farklı olarak, <ul> belirteci yerine <ol> kullanırlar.
Ekranda liste elemanlarının başında 1'er artan numaralar görünür.
Aşağıdaki HTML kodu,

 

    <ol>
    <li> Linux İşletim Sistemi
    <li> Unix İşletim Sistemi
    </ol>
       

ekrana şunları yazar:

  1. Linux İşletim Sistemi
  2. Unix İşletim Sistemi

 

Tanımlı listeler

Genellikle birden fazla başlığı olan, her başlık altında kısa bir metin
içeren yazılar, tanımlı listeler ile oluşturulur. Tanımı yapılacak başlık,
<dt> ile belirtilir, <dd> ile başlık altına metin girilir. Tüm liste, <dl> ile </dl> arasına alınır.

 

    <DL>
    <DT> NCSA
    <DD> NCSA, the National Center for Supercomputing Applications,
         is located on the campus of the University of Illinois
         at Urbana-Champaign. NCSA is one of the participants in the
         National MetaCenter for Computational Science and Engineering.
    <DT> Cornell Theory Center
    <DD> CTC is located on the campus of Cornell University in Ithaca,
         New York. CTC is another participant in the National MetaCenter
         for Computational Science and Engineering.
    </DL>
       

Ekrandaki çıktı şu şekilde görünür:

 

NCSA
NCSA, the National Center for Supercomputing Applications, is located on the campus of the University of Illinois at Urbana-Champaign. NCSA is one of the participants in the National MetaCenter for Computational Science and Engineering.
Cornell Theory Center
CTC is located on the campus of Cornell University in Ithaca, New York. CTC is another participant in the National MetaCenter for Computational Science and Engineering.

İçiçe Listeler

Tüm liste çeşitleri, 3'den fazla bölüm kullanmadıkça içiçe yazılabilir. Örnek olarak,

 

   <ul>
   <li> İstanbul'un büyük semtleri
       <lu> 
       <li> Beyoğlu
       <li> Taksim 
       <li> Bakırköy
       </lu>
   <li> Ankara'nın belli başlı yerleşim birimleri 
       <lu>
       <li> Kızılay
       <li> Ulus
       </lu>
   </lu>
       

Ekrandaki görüntüsü,


Formatlı Metinler

HTML'de, programda yazıldığı gibi ekrana çıktı vermeyi sağlayan komutlar
<pre> ve </pre> belirteç çiftleridir. Bunlar kullanıldığı zaman tüm metin, yazıldığı
gibi ekranda görünür. Aşağıdaki satırlar,

 

 
   <pre>
    PATH=.:~/bin/:$PATH
    export PATH
    # Set up the terminal:
           stty erase "^?" kill "^U" intr "^C" eof "^D"
           stty hupcl ixon ixoff
    date '+Tarih :%D'
    TERM=vt100
   </pre>
       

ekranda şu şekilde görünür :

    PATH=.:~/bin/:$PATH
    export PATH
    # Set up the terminal:
           stty erase "^?" kill "^U" intr "^C" eof "^D"
           stty hupcl ixon ixoff
    date '+Tarih :%D'
    TERM=vt100
       

HTML'de yorum satırları

HTML dokumanda yorumlayıcı tarafından gözönüne alınmayacak olan yorum
satırları <!-- ve --> belirteçleri arasına alınır. Bu sayede programı yazmayı
kolaylaştıracak yorumlar eklenebilir. Örneğin,

   <!--
   karakterler..
   karakterler...
   -->
       

veya

 

   <!-- karakterler... --
   -- karakterler.. --
   >
       

 

Özel karakterler

Web programı, birtakım karakterleri ekranda göstermek için farklı bir format
kullanır. Aşağıda, bu tür farklı karakterleri göstermek için girilmesi gereken
kodlar verilmiştir.

&lt;
< (küçüktür)
&gt;
> (büyüktür)
&amp;
& (ve)
&quot;
" (tırnak)

Resim Görüntüleme

Eğer Web sayfalarını gezerken grafik destekleyen bir program ( Mosaic,
Netscape) kullanıyorsanız, ekranda resimlerin, arkaplanların ve hatta
animasyonların olduğunu farketmişsinizdir. Bu resimler genellikle X Bitmap
(XBM) , GIF, veya JPG formatlı olurlar ve dosyaya görsel bir çekicilik katarlar.
Buna rağmen aynı ekranda çok miktarda resim kullanmaktan sakınmalıdır,
çünkü bu durumda resimler kullanıcıya daha geç bir sürede ulaşır.

Ekranda resim görüntülemek için,

 

   <img src="resmin bulunduğu dizin"> 
       

demeniz yeterlidir. Burada, nasıl HTML dökümanların hepsi .html ile
bitiyorsa, tüm resim dosyalarının sonu da .xbm , .gif veya .jpg ile
bitmelidir. Özel bir durum olmadıkça görüntülenen resmin alt kısmı
ile metin yanyana gelirler.

 

   <img src="../images/Mavi.jpg">
   Metin resmin altında .. 
       

Örneği, ekranda şu şekilde gösterilir:

Metin resmin altında ..

Sözkonusu metni resmin yanına veya üstüne koymak için ALIGN=TOP
opsiyonunu yerleştirin.

 

   <img src="/artwork/mavi.jpg" align=top>
   Metin resmin üstünde ..
       

Metin resmin üstünde ..

Veya ortaya almak için ALIGN=MIDDLE kullanın.

 

   <img src="/artwork/mavi.jpg" align=bottom>
   Metin resmin yanında ..
       

Metin resmin yanında ..

Görüntünün orijinal formatında değişiklik yapmadan ekranda enini
ve boyunu ayarlamak mümkündür. Bunun için height=sayı ve
width=sayı ara belirteçleri kullanılır. "Sayı" değişkeni piksel olarak verilir.

   <img src="/artwork/mavi.jpg" height=30>
       

 

Tablo Hazırlama

Grafik destekli Web programlarının tablo desteği ile çok çeşitli
istatistiki bilgiler, programlar, her türlü listeler ekranda derli toplu
gösterilebilir. Tablo hazırlama başlığı altındaki örnekler, her çeşit
tablonun oluşturulması için yeterli değildir. Kullanıcı, isteği
doğrultusunda bunları gerçekleştirmelidir.

Ekranda tablo gösterirken, o an kullanılan pencerenin büyüklüğüne
ve tablo içindeki metinin genişliğine göre tablonun en ve boyu değişebilir.

Tablo, satır ve sütunlardan oluştuğu için her hücre ayrı ayrı tanımlanır.
Her satır ve sütun, kendi içinde başka satır ve sütunları ihtiva edebilir.

Tablolara başlık, liste, paragraf, form, figür ve her formatta metin konabilir.

Örneğin,

 

   <TABLE BORDER>
   <TR><TH ROWSPAN=2><TH COLSPAN=2>Average
   <TH ROWSPAN=2>other<BR>category<TH>Misc
   <TR><TH>height<TH>weight
   <TR><TH ALIGN=LEFT>males<TD>1.9<TD>0.003
   <TR><TH ALIGN=LEFT ROWSPAN=2>females<TD>1.7<TD>0.002
   </TABLE>
       

Yukarıdaki örnek, aşağıdaki gibi görünür:

 

  Average other
category
Misc
height weight
males 1.9 0.003
females 1.7 0.002

Dikkat edilmesi gereken noktalar:

 

 

Tablo ebadı

Tüm tablonun uzunluğu, en geniş satırla belirlenir. Kelimeler
kısaltılmadığı için paragraflar <br> ile kesilmedikçe ekrana
gelirler. En kısa uzunluk da en geniş kelime veya resmin
uzunluğu ile bağıntılıdır.

Align
Tablonun dik halinin nasıl olacağını belirler.
Left
Metini ekranın soluna yanaşık yazar.
Right
Metini ekranın sağına yanaşık yazar.
Colspec
Sütunların ebadını ayarlar. Sütunlar soldan sağa, bir büyük harf
ve onu izleyen bir sayı ile listelenirler (örneğin
<COLSPEC="L20 C8 L10" > ). Hücrenin ihtiva etttiği yazıları L
harfi sola, R harfi sağa alır. C harfi ortalamak için kullanılır.
Burada belirteç opsiyonları mutlaka büyük harfle yazılır.
Border
Bu belirteç, tablo kenarlarının ebadını kontrol etmeye yarar.
<table border=10>
Nowrap
Programın tablo içinde paragrafları otomatik olarak kesmemesi
için kullanılır.Böylece kullanıcı istediği yerde <br> belirtecini kullanabilir.

 

Tablo Örnekleri

Temel bir 3X2 tablo

A B C
D E F
<table border>
	<tr>
		<td>A</td> <td>B</td> <td>C</td>
	</tr>
	<tr>
		<td>D</td> <td>E</td> <td>F</td>
	</tr>
</table>


       

"Rowspan" kullanılması

1. hücre 2. hücre 3. hücre
4. hücre 5. hücre
<table border>
	<tr>
		<td>1. hücre</td>
		<td rowspan=2>2. hücre</td>
		<td>3. hücre</td>
	</tr>
	<tr>
		<td>4. hücre</td> <td>5. hücre</td>
	</tr>
</table>
       

 

1. hücre 2. hücre 3. hücre 4. hücre
5. hücre 6. hücre 7. hücre
<table border>
	<tr>
		<td rowspan=2>1. hücre</td>
	    	<td>2. hücre</td> <td>3. hücre</td> 
<td>4. hücre</td>
	</tr>
	<tr>
		<td>5. hücre</td> <td>6. hücre</td> <td>7. hücre
   	</td>
	</tr>
</table>


       

"Colspan" kullanılması

1. hücre 2. hücre
3. hücre 4. hücre 5. hücre
<table border>
	<tr>
		<td>1. hücre</td>
		<td colspan=2>2. hücre</td>
	</tr>
	<tr>
		<td>3. hücre</td> <td>Item 4</td> <td>5. hücre</td>
	</tr>
</table>


       

"Colspan" ve Başlıkların birlikte kullanılması

Head1 Head2
A B C D
E F G H
<table border>
	<tr>
		<th colspan=2>Head1</th>
	    	<th colspan=2>Head2</th>
	</tr>
	<tr>
		<td>A</td> <td>B</td> <td>C</td> <td>D</td> 
	</tr>
	<tr>	
		<td>E</td> <td>F</td> <td>G</td> <td>H</td> 
	</tr>
</table>


       

Yan Başlıkların kullanımı

Başlık1 1. hücre 2. hücre 3. hücre
Başlık2 4. hücre 5. hücre 6. hücre
Başlık3 7. hücre 8. hücre 9. hücre
<table border>
	<tr><th>Başlık1</th>
		<td>1. hücre</td> <td>2. hücre</td> <td>3. hücre</td></tr>
	<tr><th>Başlık2</th>
		<td>4. hücre</td> <td>5. hücre</td> <td>6.hücre</td></tr>
	<tr><th>Başlık3</th>
		<td>7. hücre</td> <td>8. hücre</td> <td>9. hücre</td></tr> </table>

       

"Rowspan" ve yan başlıkların birlikte kullanılması

Başlık1 1. hücre 2. hücre 3. hücre 4. hücre
5. hücre 6. hücre 7. hücre 8. hücre
Başlık2 9. hücre 10. hücre 11. hücre 12. hücre
<table border>
	<tr><th rowspan=2>Başlık1</th>
	    <td>1. hücre</td> <td>2. hücre</td><td>3. hücre</td> <td>4. hücre</td>
	</tr>
	<tr><td>5. hücre</td> <td>6. hücre</td><td>7. hücre</td> <td>8. hücre</td>
	</tr>
	<tr><th>Başlık2</th>
	    <td>9. hücre</td> <td>10. hücre</td> <td>11. hücre</td> <td>12. hücre</td>
	</tr>
</table>


       

10 birim kenarı olan tablo

1. hücre 2. hücre
3. hücre 4. hücre
<table border=10>
	<tr>	<td>1. hücre</td> <td>2. hücre</td>
	</tr>
	<tr>	<td>3. hücre</td> <td>4. hücre</td> 
	</tr>
</table>


       

Cellpadding ve Cellspacing belirteçlerinin kullanılması

A B C
D E F
<table border cellpadding=10 cellspacing=0>
	<tr>
		<td>A</td> <td>B</td> <td>C</td>
	</tr>
	<tr>
		<td>D</td> <td>E</td> <td>F</td>
	</tr>
</table>
       
A B C
D E F
<table border cellpadding=0 cellspacing=10>
	<tr>
		<td>A</td> <td>B</td> <td>C</td>
	</tr>
	<tr>
		<td>D</td> <td>E</td> <td>F</td>
	</tr>
</table>
       
A B C
D E F
<table border cellpadding=10 cellspacing=10>
	<tr>
		<td>A</td> <td>B</td> <td>C</td>
	</tr>
	<tr>
		<td>D</td> <td>E</td> <td>F</td>
	</tr>
</table>


       

Tablo içinde birden fazla satır kullanımı

Ocak Şubat Mart
Bu 1. Hücre 2. Hücre Diğer hücre,
3. hücre
4. Hücre ve işte bu
5. hücre
6. hücre
<table border>
	<tr>
		<th>Ocak</th>
		<th>Şubat</th>
		<th>Mart</th>
	</tr>
	<tr>
		<td>Bu 1. hücre</td>
	    	<td>2. hücre</td>
	    	<td>Diğer hücre,<br>3. hücre</td>
	</tr>
	<tr>
		<td>Cell 4</td>
	    	<td>ve işte bu<br>5. hücre</td>
	    	<td>6. hücre</td>
	</tr>
</table>


       

Hücrenin sağına, soluna ve ortasına metin yazmak

Ocak Şubat Mart
Hepsi ortada 2. hücre Diğer hücre,
3. hücre
sağa yanaşık merkezde default,
sola yanaşık
<table border>
	<tr>
	    <th>Ocak</th>
	    <th>Şubat</th>
	    <th>Mart</th>
	</tr>
	<tr align=center>
	    <td>Hepsi ortada</td>
	    <td>2. Hücre</td>
	    <td>Diğer hücre,<br>3. hücre</td>
	</tr>
	<tr>
	    <td align=right>sağa yanaşık</td>
	    <td align=center>merkezde</td>
	    <td>default,<br>sola yanaşık</td>
	</tr>
</table>

       

Form Hazırlama

Formlar, kullanıcıdan bilgi girişi olduğu zaman bunları okunmaya hazır
duruma getirmeye yarar. Diğer bir deyişle, kullanıcı ile programcı
arasında bir köprü kurar. Programcıya mail atmak, WWW üzerinden
araştırma yapmak, belirli bir anahtar sözcüğü kullanarak arama
yapmak, ve hatta telefon bilgi bankalarına girmek form kullanarak
halledilir.

Form konusunu anlayabilmek için, HTML programlamayı bilmek ve
en azından bir programlama diline ( tercihan shell, PERL veya C )
hakim olmak gereklidir.

Form hazırlanırken aşağıdaki adımlar izlenir :

 

Yukarıdaki formu doldurup gönderin. Form, compclup.ceng.metu.edu.tr adresi
üzerinde bir programı çalıştıracaktır. Bu program değişkenlerin ismini ve aldıkları
değerleri ekrana basacaktır.

 

Kullanıcının yazdığını okuyabilmek

Bundan sonra kullanıcının forma ne tür bilgiler girdiğini bulmak kaldı. Form bilgilerini
okuyabilmek için tercihan perl veya shell bilmek gerekir. Burada örneği verilecek
cgi-bin programlarını herhangı bir dilde yazabilirsiniz, buradaki örnekler, hemen
herkesin aşina olduğu shell script ile yazılacaktır.

Şimdi aşağıdaki bilgilerin girilmesini isteyen bir form hazırlayalım ve .html formatında yazalım.

 

Yarattığınız form, cgi-bin dizini altındaki (bu dizine yazma hakkı elde etmeniz gereklidir)
form.cgi programını çalıştırsın.

 

Bir gün, iki insan ismi, bir sıfat ve bir fiil giriniz..


   <html>
   <title> Form hazırlama </title>
 
   <h3> Bir gün, iki insan ismi, bir sıfat ve bir fiil giriniz..</h3>
   <hr>
   <form method="POST" 
   action="http://www.catt.ncsu.edu/cgi-bin/madlib.pl"> 
   <UL>
   <LI> Haftanın bir günü   <input name="gun">
   <LI> Bir sifat <input name="sifat">
   <LI> Bir fiil <input name="fiil">
   </UL>

   <input type="submit" value="Formu postala">
   <input type="reset" value="Ekranı temizle">
   </form>
   </html>

       

Yukarıda sadece çalıştırılmayı bekleyen bir form hazırladık. Aslında bu haliyle program
çalışmayacaktır, çünkü henüz cgi-bin altına yerleştirmemiz gereken shell programımızı
(kodu) yazmadık. Yazacağımız kodun amacı, kullanıcının girdiği bilgileri ekranda
aynen göstermek.

Kod, programcının isteği doğrultusunda kolayca değiştirilebilir.

 

   ##
   # ayraç.sh
   # Bu program, çağırıldığı zaman, ekrana $STRING_QUERY değişkeni 
   # içindeki değerleri basar. Program, $QUERY_STRING içindeki değişken 
   # sayısını  3 olarak kabul eder.
   ##

   #!/bin/bash
   echo "Content-type: text/plain"
   echo
   deger=`echo "$QUERY_STRING" | awk -F"&" '{ print $1 " " $2 " " $3 }'`
   echo $deger
   deger1=`echo "$deger" | awk '{ print $1 }'`
   deger2=`echo "$deger" | awk '{ print $2 }'`
   deger3=`echo "$deger" | awk '{ print $3 }'`
   sabit1=`echo "$deger1" | awk -F"=" '{print $2}'`
   sabit2=`echo "$deger2" | awk -F"=" '{print $2}'`
   sabit3=`echo "$deger3" | awk -F"=" '{print $2}'`
   echo $sabit1 $sabit2 $sabit3