Bu Yazının php ile ilgili kısmında 3 değişkenli(isim-email-mesaj) bir html formu oluşturup bu form’u php aracılığı ile mail olarak e-mail adresimize göndereceğiz ve form oluşturmada kullanılabilecek bazı püf noktalarından bahsedeceğiz. JSP ile ilgili kısmında ise form’un başka bir JSP sayfası tarafından alınmasını göstereceğiz.

Not: Bu yazının ilk bölümün(php) tam anlaşılabilmesi için Temel düzeyde PHP ve HTML bilinmesi, ikinci bölümünün(jsp) tam anlaşılması için Temel Düzeyde HTML ve JSP bilinmesi gerekmektedir.

HTML’de FORM OLUŞTURMA

Herhangi bir HTML derleyicisinden (Frontpage-dreamweaver vb.) kolayca bir form oluşturabilirsiniz. Biz yinede manuel(elle) form oluşturmayı göstereceğiz.

3 Değişkenli bir form

<form name=”iletisim” method=”GET” action=”gonder.php”>

Ad Soyad: <input type=”text” name=”ad_soyad” size=”25″><br />

E-Mail: <input type=”text” name=”email” size=”25″><br />

Mesajınız: <textarea rows=”5″ name=”mesaj” cols=”25″></textarea><br />

<input type=”submit” name=”button” value=”Gönder”>

</form>


Renklendirmeye Göre Özellikler

Kırmızı: Form taglari ve özellikleridir. Bu iki tag arasında kalan bölümün form elemanları olduğu anlatır. Form ismi iletisim. Formun method’u GET ve form’un action’u gonder.php’dir. Form isminin JS (Java Script) kullanmayacaksanız şimdilik bir önemi yoktur. Form methodu ve action’u ilerde ayrıntılı şeklide açıklayacağız.

Mavi: input yani girdi, kullancının mesaj yazdığı alan demektir. Girdi alanımızın tipi text dir. Yani   tipi bir mesaj alanı oluşturur ve ismi “ad_soyad” ve ikinci girdinin ismi email dir. ‘Size’ ise girdi alanının boyutunu belitmektedir.

Turuncu:  Form elementlerinde Birden fazla input tipi vardır buradaki input tipimiz textare’dır.  . Çalışma yapısı ise aynıdır. Rows satır sayısını cows ise satırın genişliğini bildirir.

Not: Form elementlerinin(parçalarının) isimlerinin TR ve Özel karakter içermemesi gerektiğine dikkat ediniz.

Yeşil: Gönder butonunu oluşturan kod dur. Bu butona basıldığında ad_soyad, email ve mesaj alanlarında aldıkları bilgi ile gonder.php’yi çağıran komuttur. Value kısmında butonun üzerinde ne yazacağı yazılır.

NOT: </br> bir HTML tagıdır ve kendinden sonra gelen her şeyi bir alt satırı geçirmeye yarar.

Üste oluşturduğumuz form’un görünümü şu şekildedir.

Formun Yaptığı İş

Bir form yapıldığı ve çalıştırıldığında php dosyası şöyle çağırılır

http:/www.siteismi.com/gonder.php?degisken1=value1&degisken2= value2&degisken3=value3

Gonder.php’nin ardından gelen ? bu işaretten sonra parametre geleceği anlamına gelir. Yukardaki form örneğine göre ad_soyad veya email birer parametredir. Parametre = ile tanımlanır ve value gelir. Parametreler arasına ise & işareti koyulur.

ÖRNEK

Üste yaptığımız form’da kullanıcı gönder butonuna bastığında ilgili bilgiler ile formun bulunduğu html dosyası ile aynı klasördeki gonder.php çağırılacaktır.

Örnek:
Ad Soyad kısmında “Ahmet Müngen”
E-Mail kısmında “amungen@yazilimkulubu.com”
Mesaj kısmında ise: “PHP Test Mesajı”

Yazılı halde GÖNDER’e bastığımızı düşünelim

bulundugudizin/gonder.php?ad_soyad=Ahmet Müngen&email= amungen@yazilimkulubu.com&mesaj=PHP Test Mesajı

Şeklinde PHP dosyası çağırılacaktır. Şimdi bu bilgileri alıp işleyen bir PHP dosyası oluşturalım.

Gonder.php Hazırlanması

<?php

$ad = $_GET[“ad_soyad”];

$gonderenemail      = $_GET[“email”];

$mesaj      = $_GET[“mesaj”];

$konu       = “Yazılım Kulübü Dergisi Test E-maili”;

$aliciemail =”yazilimkulubu@yazilimkulubu.com”; //alıcının email’i sabit

if(($ad==”” || $email==”” || $mesaj==”” )){

echo “<center>Lütfen alanlardan hiçbirini boş bırakmayınız”;}

else

{

$mesajveri= $ad.$gonderenemail.$mesaj;

$mesajyolla = mail($aliciemail, $konu, $mesajveri);

if($mesajyolla)

{

echo “mesajınız bşaarı ile gönderildi”;

}

else

{

echo “Hata Var”;

}

}

?>

                                        

Kırmızı: get metodu ile form’daki input ismi ad_soyad olan girdiyi ad değişkenine atıyoruz

Mavi: girdilerin boş olup olmadıklarını kontrol ediyoruz.

Turuncu: mesajveri diye değişkenimiz içinde mail ile iletilecek tüm bilgileri birleştiriyoruz(ad-gönderenmail-mesaj)

Yeşil: Maili yolluyoruz.

Not:Yeşil mesajyolla’dan sonraki if’ler mesaj gönderilmiş ise(return=true) kullanıcıya bu yönde bilgi veriyor. Gönderilememişse(return=false) buna dait bilgi veriyor

İpuçları

1)Method: En sık kullanılan 2 method vardır, get ve post. Get metodu demin gösterdiğimiz gibi tarayıcıda goster.php?degisken=value1 gibi bir adres ortaya çıkartıp onu kullanırken, post değişkeni ise tarayıcıda böyle bir adres oluşturmaz. Hem güvenlik hem de güzel-profesyonel görünmesi açısından post’u tavsiye etmekteyiz. Üsteki örneği post’a çevirmek için form’daki method=”GET” yapar ve PHP sayfamızdaki $ad = $_POST[“ad_soyad”]; GET’leri POST yaparız. Tüm değişken atamalarınızı post yapmayı unutmayın

 

2)Türkçe Karakter: form birleşenlerinde TR karakter kullanmamış olsanız bile kullandığınız php server veya sayfanızın özelliğinden dolayı kullanıcının girdiği TR karakterleri bilinmeyen karakter olarak algılayabilir ve tr karakterler yerine ? gibi karakterler koyabilir. Bunu önlemek için formunuzu derleyici ile yapmışsanız derleyici ayarlarından ISO-8859-9’u seçmeniz veya html’nizin en üstüne alttaki gibi bir kod yerleştirmeniz-değiştirmeniz ile charset’i ISO-8859-9’a çevirir ve TR karakter desteği sağlarsınız. (genelde charsetler otomatik olarak utf-8 dir)

<meta http-equiv=”Content-Type” content=”text/html; charset= ISO-8859-9″>

 

3)Form bir sitede ama php dosyası başka bir sitede olabilir. action=”gonder.php”> ‘de gonder yerine http://sitesimi.com/xxx.php gibi değiştirirseniz ilgili siteye gidip ordaki php formunu çalıştıracaktır

JSP ile Form Girdilerini Almak

Konu ile çok ortak özelliği olduğu için bu husuda burada anlatılacaktır.

İlk sayfada ifade edilen html formunun aynısını bir JSP sayfası içinde yapıyoruz. Tek farkı action=”gonder.jsp”> olacaktır (text alanlarının parametreleri ve isimleri dahil her şey aynı).

Gonder.jsp’nin en üstüne şu şekilde tanımlamalar yaparsak

<%

String adi = request.getParameter(“ad_soyad”);

String email = request.getParameter(“email”);

String mesaj = request.getParameter(“mesaj”);

%>

 

Form’dan gelen bilgileri ilgili değişkenlere atamış oluruz. Burada request.getParameter(“degiskenismi”); get veya post ile gönderilmiş değişkenler ve onların parametrelerini almaya yarar.

NOT: Php için yazılan ipuçları JSP için de geçerlidir.

İpucu: JSP’de mail göndermek için jsp-smtp veya JavaMailApi’yi kullanabilirsiniz.

 

Ekstra

PHP dosyalarınızı local’de çalıştırmak için wamp server’ı tavsiye ediyoruz. İçindeki phpmyadmin ve diğer 3.part yazılımlar ile birçok işinizi görecektir

 

Piyada birçok PHP derleyicisi vardır.  Phpdesigner7 bu derleyiciler arasında  ücretli olup en kalitelilerden biridir.   Notepad++ ise ücretsiz bir yazılım olup üsteki tüm kodlar notepad++ ile yazılmıştır.

Reklamlar