Php İletişim Formu

Bu dersimizde, Php ile iletişim formu nasıl yapılır bunu öğreneceğiz. Yapacağımız form ile Ziyaretçinin girdiği bilgiler e-mail adresimize gönderilecek.

İlk olarak ziyaretçinin bilgi gireceği index.php dosyasını oluşturalım

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Iletisim Formu</title>
</head>

<body>

<form name="iletisim" method="POST" action="gonder.php">

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

Telefon: <input type="text" name="tel" size="25"><br />

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

Mesajiniz: <textarea rows="5" name="mesaj"  cols="25"></textarea><br />

<input type="submit" name="button" value="Gonder">

</form>

</body>
</html>

Girilen bilgileri denetleyeceğimiz gonder.php dosyasını oluşturalım.

<?php

$ad_soyad     = $_POST["ad_soyad"];
$tel         = $_POST["tel"];
$email         = $_POST["email"];
$mesaj        = $_POST["mesaj"];
$adres        = "[email protected]"; // Buraya e-postanin gonderilecegi mail adresini yaziniz
$konu        = "Iletisim Formu";
$tarih        = date('Y-m-d');
$ip_adresi    = $_SERVER['REMOTE_ADDR'];

if(($ad_soyad=="") or ($tel =="") or ($email=="") or ($mesaj=="")){

echo "<center>Lutfen Ad Soyad, Telefon, E-Mail ve Mesaj alanlarini bos birakmayiniz.<br><a href=index.php>Geri don</a></center>";

}
else
{

$mesajveri.="ILETISIM FORMU MESAJI<br/><br/>";
$mesajveri.="E-Mail:  ".$email."<br/>";
$mesajveri.="Telefon:  ".$tel."<br/>";
$mesajveri.="Tarih:  ".$tarih."<br/>";
$mesajveri.="IP Adresi   :".$ip_adresi."<br/>";
$mesajveri.="Mesaj:  ".$mesaj;

$mesajyolla = mail($adres, $konu, $mesajveri, "Content-type: text/html; charset=utf-8\r\n");

if($mesajyolla)
{

echo "<center>Iletisim mailiniz bize ulasti, en kisa surede cevaplanacaktir. Ilginiz icin tesekkur ederiz.<br><a href=index.php>Anasayfa</a></center>";

}
else
{

echo "<center>E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.</center>";

}
}

?>

gonder.php dosyasındaki [email protected] adresini kendi mail adresiniz olarak değiştirin.

Gönderilen mailin içeriği şu şekilde:

İLETİŞİM FORMU MESAJI

E-Mail: [email protected]
Telefon: 0555 555 55 55
Tarih: 2009-10-30
IP Adresi :91.44.77.29
Mesajı: Ziyaretçi mesajı

Makalenin çalışma dosyalarına http://www.celalyurtcu.com/dosyalar/php-iletisim-formu-v1.1.zip adresinden ulaşabilirsiniz.

Not: Türkçe karakter sorunu ile ilgili güncelleme 03.07.2012 tarihi itibariyle yapıldı.

 51.439 defa okundu

106 Yorum

  1. localhost’ta 29. satır olan “if($mesajyolla)” kısmı hata veriyor. “parse error” diyor. nasıl düzeltebilirim?

  2. sunucuya attım mesaj gönderildi diyor ama epostama gelmiyor sebep ne olabilir gereksiz eposta kutusundada yok

  3. Selamlar.. Form gönderildikten sonra kendi sayfama yönlendirmek istiyorum. Örneğin lütfen tüm alanları doldurunuz uyarısı için kendi sayfama göndermek istiyorum bunun için 14, 32 ve 34. satırlarda ne tür değişiklik yapmam gerekli. Şimdiden teşekkür ederim…

  4. selamlar localhostta formu deniyorum ama : Warning: mail() [function.mail]: “sendmail_from” not set in php.ini or custom “From:” header missing in C:\xampp\htdocs\gonder.php on line 25
    E-Mail gönderilirken hata oluştu! Lütfen daha sonra tekrar deneyiniz.
    hatası alıyorum localde denemek mümkün değil midir ?

  5. Arkadaşım Ben bunu htmlnin için göndüm ama çalışmadı… Hosting php ama… Çalışmamasının nedeni indexdeki screppti copy past yaptım htmleye ondanmıdır.. acil cvp plase

  6. turkce karakter destegi olmasi guzel, denedim sorunsuz calisiyor. kullanmayi dusunen arkadaslara rahatlikla tavsiye edebilirim.

  7. Kardeşim ellerine sağlık Çalışması sitelrimden birisinde kullandım. Çalışman için çok teşekkur ederim. Çalışmandan dolayı çok çok çok teşekkür ederim. Öyle bi zamnda yetişti ki sağol…

  8. Merhabalar;

    Kullanıyorum çok kullanışlı ama türkçe karakter hatası veriyor nası çözeceğiz bi yardımcı olursanız gelen mesajlarda.

  9. tşkler
    Warning: mail() [function.mail]: “sendmail_from” not set in php.ini or custom “From:” header missing in C:\xampp\htdocs\gonder.php on line 25
    bu hata bende de var çözemedim bir türlü

  10. çok güzel başarılı ama bi sorum olucak ad ve soyad bana gelmiyor normalde geliyormu b ende mi bi sorun var ???

  11. kerem urumur; 26. satıra
    $mesajveri.=”Adı Soyadı: “.$ad_soyad.”\n”;
    yazarak sorunu çözebilirsin; ben öyle yaptım.

    imparator; gönderen kişinin mail adresi yazan yere yazdığı mail adresi gelir. Gönderen adresinde kendi host adresiniz vardır, çünkü sizin site gönderiyor.

  12. çalışma için teşekkürler, henüz denemedim ama PHp uygulamalarına biraz yabancıyım bir sorum olacak. Sadece mail adresi girilmesi istenmiş. mail göndermek için SMTP ayarı ve gönderici maile login olmak için password bilgisi gerekmiyor mu? bu bir class’a atanmışsa örnek çalışma dosyasında vb. aynı klasor içinden mi cıkıyor, yoksa bu mail nasıl gidiyor anlamadım gitti. WordPress eklentileri de var mail bildirim eklentileri, onlarda aynı şekilde mail ayarları ile ilgili kısım bulamadım. (Subscripse2 adlı eklenti).. Deneyeceğim, çalışırsa hiç sorgulamayacağım:) , emeklerinize sağlık.

  13. Türkçe karakter sorunu alanlar aşağıdaki gibi düzenleme yaparlarsa sorun düzelecektir paylaşımda bulunduğunuz için teşekkürler celal bey saygılar.

    İletişim Formu

    Ad Soyad:

    Telefon:

    E-Mail:

    Mesajiniz:

  14. Merhaba, bu formu popup şeklinde nasıl yapabiliriz?
    Ayrıca mesaj gönderiminden sonra anasayfaya otomatik dönmesi için bir şey yapabilir miyiz?

  15. Estetik açıdan hoş durması için hazır “CSS Form” örneklerinin biriyle php dosyasını bağdaştırıp kullandım ve sonuç gayet başarılı. Çok teşekkürler.

    @dsayli Bence popup yerine iframe kodları kullanarak bu formu sayfanın içine genişlik ve yükseklik belirterek gömebilirsin.

  16. Merhabalar. Kodları yukarıdaki gibi yazdım fakat iletişim sayfasından formu doldurup gönder butonuna tıkladığımda http://www.siteadresi.com/gonder.php adresi açılıyor ve page cannot be displayed hatası çıkıyor. Bunun nedeni ne olabilir yardımcı olurmusunuz?

  17. Kodlar için teşekkürler. Yalnız utf-8’de türkçe karakterlerde sorun yaşadım, iso-8859-9’a çektim. Şu an bir problem yok.

  18. Merhaba arkadaşlar. Sitelere yönetim paneli yapmam lazım. A’dan Z’ye açıklamalı ve uygulamalı anlatabilen varsa yardım lütfen.

  19. Ben de kurdum mail adresimi gerekli yere yazdım. Mail ulaştı mesajı çıkıyor sitede ama mail düşmüyor. Spam de falan da yok. Adreste bir yanlışlık yok. Acil yardım edebilir misiniz?

  20. Gayet güzel çalışıyor ancak kullanıcıların yazdığı mesajlar ana sunucunun mail adresi üzerinden bana geliyor. Nasıl düzenleyebilirim?

  21. Merhaba. Formu düzenledim, göndere tıkladığımda sürekli

    Lutfen Ad Soyad, Telefon, E-Mail ve Mesaj alanlarini bos birakmayiniz.
    Geri don

    hatası veriyor.

    Nerede yanlış yapıyor olabilirim?

  22. Merhaba. Bende çalışıyor süper anlatım olmuş. Tek sorun gmail’de girdiğimde gönderici kısmında host firmamda kullandığım kendi kullanıcı adım yazıyor. Tam hatırlamıyorum bir kod vardı gönderici kısmını değiştirebiliyorduk?

  23. Merhaba. Tüm hepsini uygulamama rağmen mesaj gidiyor ama mail olarak gelmiyor. Kodların hiçbirinde hata yok.

  24. @Gülşah

    gonder.php dosyasının 10. satırındaki mailin gönderileceği e-posta hesabı hotmail, gmail veya yahoo gibi servisler ise önemsiz e-posta klasörünü kontrol etmeyi unutmayın.

    Mail ulaştı mesajını almanıza rağmen gönderilen mail ulaşmıyorsa hosting sağlayıcınız ile irtibata geçmeniz gerekir.

  25. Sadece gönderilecek mail adresini değiştirip ftpye attım zipdeki dosyaları, acaba ben mi hata yapıyorum diye. Yine de “E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz” hata mesajını gösteriyo. Hiçbir şekilde göndermiyo mail. Neden olabilir?

  26. Selamün Aleyküm Celal Bey,
    İletişim formundaki gonder.php kısmında
    $mesajveri.= kısmı ne işe yarıyor açıklayabilir misiniz orası hata veriyor $mesajveri= noktasız yazdığımda hata gidiyor neden olabilir yardıımcı olusanız şimdiden teşekkürler selametle.

  27. İlk yaptığımda ewet hotmail olarak yapmıştım ve junk a düşüyordu sonra kendi postama yönlendirdim ve oldu aradan zaman geçti şuan göndermiyor hiç bir değişiklik yapmadığım halde ne olmuş olabilir.. Sanki zaman aşımına uğradı ve süresi bitmiş gibi (:

  28. Merhaba,
    forumu kullandım fakat
    mesaj kısmına kullanıcı

    merhaba
    nasılsınız
    iyimsiniz ”

    yazarsa ben bunu tek satır halinda ” merhaba nasılsınız iyimsiniz ” görüyorum uzun metinlerde çok sıkıntılı bir durum nedeni ne olabilir ?

  29. @Gülşah

    Kodlarda değişiklik yapmadığınızdan eminseniz eğer hosting firmanızın size sağladığı IP adresleri spam listesine girmiş olabilir. Bu konu hakkında hosting firmanıza talepte bulunmanız gerekir.

  30. Bu iletişim formuna smtp kimlik doğrulama kodlarını nasıl entegre ederiz. Benim serverım bu tarz form gönderiimlerinde smtp kimlik doğrulaması istiyor.

  31. Merhaba kodları siteye yerleştirdim ama “E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.” böyle bi hata veriyor , ne yapmalıyım ? Sabahtan beri girmediğim site kalmadı bi türlü yapamadım yardımcı olursanız sevinirim.

  32. Benim serverim php.ini dosyasına müdahale etmem izin vermiyor. Kullandığım kodlar içinde stmp kimlik denetimi yaptırmam gerektiğini söledi. Sizin kodlarınızın içinde smtp kimlik dogrulama kodu nasıl entegre edebilirim kodlar nedir.

  33. Merhaba,
    Elimdeki dosyalar şöyle :

    1) contact.fla

    2) contact.swf

    3) sendMail.php

    4) contact.xml

    Web sayfasından iletişim formu gönderiyor. Ancak mail bana ulaştığında açtığımda
    Türkçe karakterleri normal olarak okuyamıyorum.fla dosyasında tüm text fontlarını “Arial Tur” yaptım
    ve swf olarak export ettim.

    Mesela ;
    “üğişçö” yerine “üğişçö” karakterileri gözüküyor.
    Bunu nasıl çözeceğim hakkında yardımcı olursanız çok sevinirim.
    Teşekkkürler

    “contact.xml” dosyası içeriği
    —————————–

    <![CDATA[Benim Web Formum]]>

    <![CDATA[Tel. +90 000 00 00 00Fax.]]>
    <![CDATA[Taleplerinizi yazabilirsiniz.Teşekkürler.]]>

    ——————————-

    “sendMail.php” dosyası içeriği
    ——————————-

    <?php
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
    // vars from the form

    $form_name = $_POST["form_name"];
    $form_email = $_POST["form_email"];
    $form_body = $_POST["form_body"];
    $form_admin_email = $_POST["form_admin_email"];

    // I check if all the variables are set and if not I end the script and print an error

    if (!isset(

    $form_name,
    $form_email,
    $form_body,
    $form_admin_email

    )) {

    exit("operationResult=KO");

    }

    // admin message object

    $admin_message_object = "Message from website by $form_name";

    // admin header information

    $admin_headers = "From: Message from website by $form_name “;

    // admin message

    $admin_message = ”
    Data from website:

    Name:
    $form_name

    Email:
    $form_email

    Message:
    $form_body
    “;

    // user message object

    $user_message_object = “Thank you for contacting us”;

    // user header information

    $user_headers = “From: Company Name “;

    // user message

    $user_message = ”

    Thank you for contacting us.
    Your message and contact information here.
    “;

    // if all the variables are set I can send the messages to the admin email and to the admin phone

    if ( mail($form_admin_email, $admin_message_object, $admin_message, $admin_headers ,$headers) &&
    mail($form_email, $user_message_object, $user_message, $user_headers ,$headers)) {

    exit(“operationResult=OK”);

    }

    ?>
    —————————————————————————————————

  34. merhaba
    ben bu php kodunu hangi dosyaya koyacam benim formum var ama bu kodu nereye koyacağımı bilmiyorum yardome dermisiniz

  35. Teşekkür ederim. Anlamadığım bazı noktalar vardı verdiğiniz örnek ile daha iyi kavradım.

  36. merhaba,
    web siteme hazırlamış olduğunuz mail scriptini yerleştirdim.
    yalnız tüm gönderimleri doğru yaptığımdan emin olsamda ,

    E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.

    – Hatasını almaktayım bu sorunu nasıl çözeceğime yada hangi yolları izlemem gerektiği hakkında yardımcı olursannız sevinirim.

  37. Selamlar
    index.php ve gonder.php dosyalarını yaptım fakat kodları siteye yerleştirdim ama “E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.” böyle bi hata veriyor bu konuda yardımcı olursanız sevinirim teşekkürler

  38. Bu işlem LOCALHOST’ta çalışır mı? Bende sürekli localhost’ta hata veriyor da.

  39. iyi günler, daha önce bunu kullanmıştım fakat şimdi beceremedim acaba bir noktalama hatası mı yaptım bilemiyorum yardımcı olabilir misiniz sürekli “gönderirken hata oluştu daha sonra tekrar deneyiniz uyarısı alıyorum

    Ad Soyad:
    E-Mail:
    Mesajınız:
    __________

    <?php

    $ad_soyad = htmlspecialchars($_POST["ad_soyad"]);
    $email = htmlspecialchars($_POST["email"]);
    $mesaj = htmlspecialchars($_POST["mesaj"]);
    $adres = "[email protected]"; // Buraya e-postanin gonderilecegi mail adresini yaziniz
    $konu = "Iletisim Formu";
    $tarih = date('Y-m-d');
    $ip_adresi = $_SERVER['REMOTE_ADDR'];

    if(($ad_soyad=="") or ($email=="") or ($mesaj=="")){
    echo "Lutfen Ad Soyad, E-Mail ve Mesaj alanlarini bos birakmayiniz.”;
    }
    else{
    $mesajveri.=”ILETISIM FORMU MESAJI\n\n”;
    $mesajveri.=”Ad_Soyad: “.$ad_soyad.”\n”;
    $mesajveri.=”E-Mail: “.$email.”\n”;
    $mesajveri.=”Tarih: “.$tarih.”\n”;
    $mesajveri.=”IP Adresi :”.$ip_adresi.”\n”;
    $mesajveri.=”Mesaji: “.$mesaj;

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

    if($mesajyolla){
    echo “Iletisim mailiniz bize ulasti, en kisa surede cevaplanacaktir. Ilginiz icin tesekkur ederiz.”;
    }
    else{
    echo “E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.”;
    }
    }
    ?>

  40. çalışır neden çalışmasın .. senin kodlarda sorun vardır. bir daha gözden geçir

  41. Ellerinize sağlık güzel bir çalışma olmuş. PHP konusunda çok gerideyim hala hazır şablonlar kullanıyorum umarım bir gün şu hazır şablonlardan kurtulurum. teşekkürler

  42. şimdi de “PHP Warning: mail() has been disabled for security reasons” hatası veriyor error_log da??

  43. Formu kendime göre ayarladım fakat Türkçe karekter sorunu var. biraz bende uğraştım fakat yapamadım. yardım eder misiniz lütfen.

    İletişime geçin lütfen: [email protected]

  44. Hocam

    if($mesajyolla) burdaki eğer ifadesinde yanlış var bu değişkenin neleri kapsadığına bakarsanız sorunu çözebilirsiniz.

  45. index.php yerine iletisim.html yapsak çalışırmı. iletisim.php de yapabilirim fark etmez 2 sinden biri

  46. Merhaba. Formu düzenledim, göndere tıkladığımda sürekli
    Lutfen Ad Soyad, Telefon, E-Mail ve Mesaj alanlarini bos birakmayiniz.
    Geri don
    hatası veriyor.
    Nerede yanlış yapıyor olabilirim?

  47. eyvallahh kardeş okadar forum gezdim bi bu işime yaradı eline sağlık

  48. Sayın celal yurtçu öncelikle verdiğiniz emeğe teşekkür eder selam ederim.
    Gelelim sorunuma verdiğniz kodları çalıştırdığımda “Notice: Undefined variable: mesajveri in” hatası veriyor ve eposta ulaşmıyor.
    Çözüm öneriniz için şimdiden teşekkürler

  49. Hocam Merhaba,

    Öncelikle emeğinize sağlık geliştirmek istediğim şeyler var.
    Bir kopyasını da müşteriye göndertebilir miyiz?
    checkbox grupları ile çalışırken hangilerini işarediklerini nasıl gösterebiliriz?

    ayrıca dosya yüklemeyi de buna nasıl katabiliriz

  50. Merhaba;
    Sorgu gönder.php ye gittikten ve mail başarılı bir şekilde gönderildikten sonra gönder.php de refresh yapıldığında aynı mesaj tekrar gönderiliyor. Bu bir güvenlik açığı şeklinde değerlendirilebilir. Kötü niyetli kişiler küçük bir programla sunucunun hayatını karartabilir : ) Bunu nasıl engelleriz?

  51. Ellerinize sağlık güzel ve kullanışlı bir yazılım olmuş hazır olarak bir çok kişinin işine yarayacaktır benimde çok işime yaradı sağolasın dostum.

  52. Sitem için kullandım fakat pek randuman alamadım yazılımla çakışınca mecburen bende komple özel yazılım aldım emeğinize sağlık hakkınız geçti helal edin

  53. Arkadaşlar Size Tasarımlı Bi Kod Yazayımmı Ne Dersiniz Ayrıca Yazacagım Kod E-Mailde Gereksiz Kutusuna Gitmeyecek Direk Gelen Kutunuza Gelecek 100% Garantili Yapamayanlara TeamWeawer Dan Yardım Ederim…

    Saygılarımla…

    PHP Kod Yazarı…

  54. bana etsen çok makbüle geçer tasarımım var ama themaforest hazır html sitenin form sayfasına bir php gönderim scripti hazırmaya çalıştım elime gözüme bulaştı

  55. E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.
    gonder.php böyle yazı geliyor göndermiyor acil yardım edermisiniz

  56. mail adresimi yazarak yaptığım web sitesine gömdüm ve

    Notice: Undefined variable: mesajveri in C:\xampp\htdocs\site\içerik\gonder.php on line 23

    Warning: mail(): “sendmail_from” not set in php.ini or custom “From:” header missing in C:\xampp\htdocs\site\içerik\gonder.php on line 30
    E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.
    hatasını verdi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir