Anasayfa » Web Programlama

Php İle İletişim Formu Hazırlamak

21 Aralık 2008 Görüntülenme: 5.258 20 Yorum Yazar: Ahmet
Kötüİdare ederOrtaGüzelMükemmel (Bu yazı 7 oy aldı. Ortalama Değeri: 4,43 oy dan 5)

Bana mı öyle geliyor oksa öyle mi bilmiyorum ama forumlarda, bloglarda, sağda solda  adam akıllı bir şekilde iletişim formu yapılması anlatılmıyor. Anlatılıyorsada ben pek raslamadım. Kimiside kendi hazırladığı iletişim formunu başkalarının kullanması için paylaşıyor. Bu hazır iletişim formunu kullanmak isteyen kişide iletişim formu kendi istediği ek alanları ekleyemiyor. Mesela iletişim formunda Ad-soyad, E-mail, Konu ve mesaj alanları olsun… Bu alanlara telefon ya da adres gibi alanları ekleyerek kendi e-mail adreslerine gönderebilme işlemini yapamayanlar var.

Php nimetlerinden faydalanarak bu yazıda size iletişim formu nasıl hazırlanır ondan bahsedeceğim. Hatta anlatacağım bu yöntem ile İK formları dahi hazırlayabilirsiniz. Burada önemli olan sadece olayın mantığını ve nasıl işlediğini kavramaktır. Hemen başlayalım.

Uygulamada 2 farklı dosyamız olacak. Birisi form bilgilerinin girildiği sayfa, adı form.php olsun. Diğerine bu bilgileri alıp e-mail adresinize gönderen php sayfamız, onun adıda gonder.php olsun.

Aşağıdaki kodları kopyalayın ve form.php sayfanızı hazırlayın.

<form name=”form1″ method=”post” action=”gonder.php”>
<table width=”421″ border=”0″ align=”center” cellpadding=”5″ cellspacing=”0″>
<tr>
<th colspan=”2″ scope=”col”>&#304;leti&#351;im Formu </th>
</tr>
<tr>
<td width=”111″>Ad-Soyad:</td>
<td width=”290″><input name=”adsoyad” type=”text” id=”adsoyad”></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input name=”email” type=”text” id=”email”></td>
</tr>
<tr>
<td>Telefon:</td>
<td><input name=”telefon” type=”text” id=”telefon”></td>
</tr>
<tr>
<td>Konu:</td>
<td><input name=”konu” type=”text” id=”konu”></td>
</tr>
<tr>
<td>Mesaj:</td>
<td><textarea name=”mesaj” cols=”30″ rows=”10″ id=”mesaj”></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=”reset” name=”Reset” value=”temizle”>
<input type=”submit” name=”Submit2″ value=”g&ouml;nder”></td>
</tr>
</table>
</form>

Bu kodlar arasındaki en önemli nokta form tagı içerisindeki method=”post” action=”gonder.php” satırlarıdır. Burada method post olacak action da gönderme işlemini yapan php sayfamızın adı olacak.Birde her alan için belirlenen bir isim var. Bunlar name=”mesaj” kodları ile belirtilmiş durumda. Bu isimler ile çağıracağız gonder.php sayfamızda. Bunları yanlış yazmayın. Yeni alan eklediğinizde ismini belirtin ve aşağıda anlattığım şekilde gonder.php sayfanıza alın ve mailinize ekleyin.

Aşağıdaki kodlar ile gonder.php sayfanızı oluşturun. Gerekli açıklamalar en kısa ve öz şekilde kodlar arasındaki açıklama satırları arasında mevcut.

<?php

//formdan gelen bilgileri bu sayfaya çektik..
$adsoyad=$_POST['adsoyad'];
$email=$_POST['email'];
$telefon=$_POST['telefon'];
$konu=$_POST['konu'];
$mesaj=$_POST['mesaj'];

$emailadresi=”ahwet1@gmail.com”;  //kendi e-mail adresinizi yazın.
$emailkonusu=”İletişim Formu”;  //gönderilen e-mailde konu olarak ne görünmesiniz istiyorsanız buraya onu yazın.

//boş alanları kontrol ediyoruz..
if (empty($adsoyad) or empty($email)  or empty($telefon)  or empty($konu) or empty($mesaj)){  //burayı kendinize göre çoğaltabilirsiniz
print (‘Lütfen bütün alanları eksiksiz olarak doldurunuz. <br>’);  //eğer boş alan var ise gerekli uyarı mesajı.
print(‘<a href=”form.php”>Form Sayfasına Geri Dön</a>’);  //form sayfasına geri dönüş linki
}

//boş alan yok ise aşağıdan da e-mail gönderilecektir.
else {
$emailicerigi=”
Ad-Soyad: $adsoyad
E-mail: $email
Telefon: $telefon
Konu: $konu
Mesaj: $mesaj”;
if(mail($emailadresi,$emailkonusu,$emailicerigi)){
print (‘Mailiniz başarılı bir şekilde gönderildi. İlginizden dolayı teşekkürler.’); //bu uyarı yazısıda mail gönderildiğinde çıkacaktır..
}
}

?>

Yukarıdaki kodlar arasında birkaç önemli nokta var bunları açıklayayım. En üstteki;

$adsoyad=$_POST['adsoyad'];

kodu ile form.php sayfamızdan gelen bilgileri çekiyoruz. Form sayfanızdaki form alanlarının isimleri ile çağırıyoruz. Mesela adsoyad alanının form sayfasındaki ismi adsoyad. E-mail göndeirlen sayfada ise aynı ismi kulandım, orada da adsoyad isminde bir değişken içerisinde. Form sayfanıza alan ekledikçe bu alanı çoğaltabilirsiniz.

if (empty($adsoyad) or empty($email)  or empty($telefon)  or empty($konu) or empty($mesaj))

Kodları ile form sayfamızdan gelen alanların boş olup olmadığını kontrol ediyoruz. Formunuza yeni alan eklediğinizde bu kod parçası içerisine or empty($yenialanadi)  şekilde ekleme yapabilirsiniz.

$emailicerigi=”
Ad-Soyad: $adsoyad
E-mail: $email
Telefon: $telefon
Konu: $konu
Mesaj: $mesaj”;

Bu kodlar ise gönderilen e-mailin içeriğini oluşturuyor. Yeni alan eklediğiniz buraya mesela; Adres: $adres şeklinde ekleme yapabilirsiniz.

Uygulamanın canlı demosunu görmek için burayı download etmek için ise burayı kullanabilirsiniz. Bu uygulamaya benze bir uylamayıda daha önceden bu yazımda sizlerle paylaşmıştım. Demodaki e-mail benim e-mail adresime gönderiliyor. Deme amaçlı doğru e-mail adresinizi girerek deneyebilirsiniz. Bende sizin e-mailinize cevap yazarak çalıştığını gösterebilirim (:

Yazıyı beğendiysen başka yerlerde paylaşabilirsin:
  • Google Bookmarks
  • Digg
  • Twitter
  • del.icio.us
  • Facebook
  • MySpace
  • Netvibes
  • Live
  • FriendFeed
  • Technorati
  • StumbleUpon
  • Reddit
RenkliTeneke.Com blogundaki yeni yazılardan haberdar olmak için RSS Abonesi olabilirsiniz. İsterseniz Twitter'dan ya da FriendFeed'den takip edebilirsiniz. Ya da "Yeni yazılar e-mail adresime gelsin" diyorsanız e-mail abonesi olabilirsiniz.
Merhaba sevgili ziyaretçi. Şuanda renkliteneke.com bloguna " Ahmet" tarafından " 21 Aralık 2008" tarihinde yazılmış olan "Php İle İletişim Formu Hazırlamak" başlıklı bu yazıyı okuyorsun. Bu yazının başka bir yerde yayınlaması yasaktır. Her yazı ayrı bir özen içerisinde hazırlanıyor ve bu emeğin iki tık ile heba edilmesi pek hoşuma gitmez. Bu açıklama ise bilgilenmeniz için yazılmıştır.

20 Yorum »

  • AoRGuN demiş ki:

    İletişim formunun oldukça önemli olduğunu düşünüyorum, şu şekilde geliştirebilirsiniz

  • Mustafa Balaban demiş ki:

    Artık bir çok web Sayfası sahibi sayfasın iletişim bilgilerinin yanı sıra bir iletişim formununda var olmasını istiyor.
    İletişim Formu hazırlamak için bir çok yol var..
    Buda onlardan birisi, Kullanmak isteyenler için güzel, Sade bir Script

  • php kursu demiş ki:

    elinize saglık

  • Ferhat Kondakcı demiş ki:

    özet çok güzel bir form, teşekkür ediyorum. en sonradki göder tezmile butonlarındaki tırnakları kopyala yapıştırla farklı bir kod olarak geçti benim dreamveawer programına sonra ya diyorum bu butonlar neden çalışmıyo sonra 5 dakka aradım durdum. bilginize…

  • musa demiş ki:

    saolasın kardeş eline sağlık…

  • Ahmet Aksu demiş ki:

    iletişim formu için teşekkürler, basit ve güzel.

  • Pınarhisar demiş ki:

    teşekkür ederim

  • ferhat demiş ki:

    merhabalar.
    Bilgiler için çok teşekkürler fakat siteme koydum mesajınız başarılı bir şekilde gönderilmiş diyor ama bi trlü göndermiyor neden olabilir acaba ? bu arada Ferhat Kondakçı adlı aerkadşın yaptığı uyarıyıda yani ttırnak işareti sorununu da düzenledim ama hala göndermiyor.yardımcı olursanız sevinirim.İYİ ÇALIŞMALAR

  • Ahmet (Admin Abi) demiş ki:

    @ferhat; Yukarıdaki kodları birleştirerek yapamadıysan buraya tıklayarak php iletişim formuna ait bütün kodların bir arada olduğu dosyayı indirebilirsin. Sanırım sen iletişim formunu oluşturmuşsun ancak e-mail göndermiyor.. Senin dikkat etmen gereken yer şurası: gonder.php içerisindeki e-mail adresine kendi e-mail adresini yaz. Belki orayı değiştirmeyi unutmuş olabilirsin.. Çünkü normalde bana bu iletişim formu aracılığı ile sık sık e-mail geliyor (: Demo sayfasından doldurup gönderiyorlar.

  • Müzik dinle demiş ki:

    Hocam bende yaptım fakat arkadaşında da dediği gibi mail gönderildi diyor fakat mail filan gelmiyor.Mail adresi yerini değiştirdim !

  • Ahmet (Admin Abi) demiş ki:

    @Müzik dinle;
    Yazı içerisinde de belirtmiştim ben zaten e-mail adres alanına kendi e-mailinizi yazın diye :) Ufak bir dikkatsizlik olmuş ama düzeltmişsiniz. Sorun yok =)

  • Müzik dinle demiş ki:

    Evet hocam yaptım:) formu editlemiştim de kendime göre.Diğer dosyadaki değerleri eklemeyi unutmuşum.

    Yanlız siteye ekledimde hocam,linke tıkladığımda açılmıyor.Neden olabilir ? Link açılıyor ama form gelmiyor

  • Müzik dinle demiş ki:

    Gönderilen e-mail adresini nasıl değiştirebiliriz ?

  • Ahmet (Admin Abi) demiş ki:

    @Müzik dinle;
    yukarıdaki yazının içerisinde bulunan “$emailadresi=”ahwet1@gmail.com”; //kendi e-mail adresinizi yazın.” kodundaki e-mail adresi yerine kendi e-mail adresinizi yazarsanız size gelir e-mail

  • Müzik dinle demiş ki:

    Gelecek e-amil adresi değil,form doldurulduktan sonra gönderilen e-mail adresini nasıl değiştirebiliriz.Yani formun gönderildiği e-mail adresini(karşı tarafınkini) !!

  • maya demiş ki:

    merhaba

    girişteki düşüncelerinize katılmamak mümkün değil.. (mutlaka istisnalar var)sizin gibi..

    Anlatımınız için de gerçekten teşekkür ederim..

    sadece bir şey eksik ya da eklenebilir sanki:

    e-mail karakterleri kontrolü ile ilgili “if…” ifadesi eklenebilir miydi acaba?

  • Fırat Koyuncu demiş ki:

    Ahmet arkadaşım, öncelikle çok başarılı bir çalışma olmuş bunu belirteyim. O kadar senedir internet işiyle uğraşıyorum html ustası oldum ancak php yi bir türlü çözemedim. İletişim formları da buna dahil, sayende her şeyi bir seferde anladım. Eline, koluna, beynine sağlık. Gerçekten faydalı ve kaliteli bir paylaşım, tebrikler.

  • Gökhan demiş ki:

    Ben gonder.php’ye mail adresimi yazdım, denedim mailime mesaj gelmedi ????

  • Ahmet (Admin Abi) demiş ki:

    maya; evet eklenebilir. o biraz daha ayrıntılı.

    Fırat Koyuncu; teşekkürler.

    Gökhan; kodlar ile ilgi değişiklikler yapmamış olmalısınız. kodlarda sorun yok. az önce tekrar denedim ben form sorunsuz çalışıyor. hatta formun çalıştığından emin olmak isteyen arkadaşlar bana o formu doldurup gönderiyor bende cevaplıyorum. şöyle de olabilir; hostinginde php dosyaları çalışmıyordur?

  • Ali Emre demiş ki:

    Form kontrol aşamsında “or” kullanmışsınız. Bunun Tr karşılığı “veya” dır.PHP fonksiyonlarında,

    1 veya 0 = 1 dir. Yani form alanlarından kullancının birini doldurması diğerlerini boş bırakıp işlemleri tamamlamasına buda gereksiz ve boş maillerin alınmasına sebep olabilir.or yerine and kullanmanızı öneririm.

    if(empty($name) and empty($email) and…){

    }else{

    }

Yukarıdaki yazı hakkında kendi düşüncelerinizi yazın!

Lütfen yukarıdaki yazı hakkında düşüncelerini paylaş. Senin düşündüklerin bazen bu blogdaki yeni yayınlanacak yazının hangi konuda yazı yazılması gerektiğini belirliyor.

Yorum ekleye bilir yada yazı için geri bildirim gönderebilirsiniz. Bu yazı için yorumlarına abone ol: subscribe to these comments

 

Yorum içerisinde kullanabileceğiniz Html tagları :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Yazıya yorum yazdığınızda yorumunuzun hemen yanında bir Gravatarınız yayınlanacaktır.
Hani benim Gravatarım? Gravatar'da neyin nesi?