• 01-07-2007, 18:51:12
    #1
    Eposta Aktivasyonu Gerekmekte
    Merhaba arkadaşlar şuan saat gecenin körü(2:19) size elimden geldiğince php iletişim formu hazıylamayı öğreticem.Şuan uykulu olduğum için yarın anlatim dermişim ve de başlıyorum çok konuştum.

    Ben öncelikle templates diye dosya oluşturuyorum.Bunun içine hatalarımızı ve gönderme başarılı vb. dosyaları koyacağız.
    Sonra içine ;

    1)contact.tpl --> İçeriği : Konu,gönder vb. yazılarının çeşitleri boyutları yer alacak.
    2)contact_error.tpl --> İçeriği : Başarısız işlem vb. dosyasının yazı ayarları.
    3)contact_mail.tpl --> İçeriği : Gönderilen mailin e-mail kutunuzda göstereceği bilgiler.
    4)contact_sent.tpl --> İçeriği : Mesaj göderimin başarılı olduğu yer alacak.

    Bunları yapıp html olarak kayıt ediyoruz ve templates'in içine atıyoruz.İçeriğini şimdi vereceğim.

    1)contact.tpl Dosyasının İçeriği ;

    <FORM method="POST" action="contact_sent.php" name="contact_frm">


    <TABLE border=0>
    <TR>
    <TD>Adınız:<br>
    <INPUT type="text" name="name" size=48></TD>
    </TR>


    <TR>
    <TD>Soyadınız:<br>
    <INPUT type="text" name="company" size=48></TD>
    </TR>


    <TR>
    <TD>Email Adresiniz:<br>
    <INPUT type="text" name="email" size=48>
    <FONT class=RequiredField> *</FONT></TD>
    </TR>



    <TR>
    <TD>Telefon Numaranız:<br>
    <INPUT type="text" name="phone" size=48></TD>
    </TR>

    <TR>

    <TD>İletişim Nedeni: <br>
    <select name='reason'>
    {$reasons}
    </select> </TD>
    </TR>
    <TR>
    <TD>Konu:<br />
    <input type="text" name="subject" size="48" /></TD>
    </TR>

    <TR>
    <TD valign=top>Mesajınız: * <br>
    <TEXTAREA name="text" cols=40 rows=10></TEXTAREA></TD>
    </TR>


    <TR>
    <TD><BR><INPUT type=image src="contact-send.gif" value="Gönder"></TD>
    </TR>
    </TABLE>
    </FORM>

    2)contact_error.tpl Dosyasının İçeriği ;

    <style type="text/css">

    </style>
    <span class="style1">{$errmsg}</span>

    3)contact_mail.tpl Dosyasının İçeriği ;

    <p>Merhaba Merhaba Dünya Üyesi,</p>
    <p>Sayın Üye Sitenizden sizinle ile iletişime geçildi;<br />
    Ad: {$name}<br /><br />
    Soyad: {$company}<br /><br />
    Email: {$email}<br /><br />
    Telefon: {$phone}<br /><br />
    İletişim Nedeni:
    {$reason}<br />
    <hr />
    Mesajı:<br />
    {$message}<br />
    </p>

    4)contact_sent.tpl Dosyasının İçeriği ;

    Mesajınız gönderildi. Mesajınız incelendikten sonra en kısa zamanda iletişime geçilecektir...


    Evet genel olarak ayarlarımız bitti şimdi sıra geldi ufak tefek ayarlara burada templates dosyası ile işimiz tamamen bitmiştir.

    Şimdi contact.php diye dosya oluşturuyoruz ;

    İçeriği ;
    <?php
    include('contact_settings.php');
    include('TemplateMailer.class.php');


    $temp = new TemplateMailer();

    $types = '';

    foreach ($reasons as $type => $mail) {
    $types .= "<option value=\"$type\">$type</option>\n";
    }


    $temp->assign('reasons',$types);

    $disya = basename($_SERVER['PHP_SELF']);
    $disya = str_replace('.php','.tpl.html',$disya);
    $temp->assign("template_file",$disya);


    $temp->preparemail($template_folder . $disya);

    echo $temp->body;



    ?>

    Buradanda anlaşılacağı gibi TemplateMailer.class,contact_settings dosyalarıda oluşturacağız.

    Şimdi contact_sent.php diye dosya oluşturuyoruz ;

    İçeriği;
    <?php
    error_reporting(0);
    include('contact_settings.php');
    include('TemplateMailer.class.php');

    $temp = new TemplateMailer();

    function daj($msg) {
    global $template_folder,$temp;
    $temp->assign('errmsg',$msg);
    $temp->preparemail($template_folder . 'contact_error.tpl.html');
    die($temp->body);
    }


    $name = $_POST['name'];
    $company = $_POST['company'];
    $email = $_POST['email'];
    if (trim($email) == "") { daj("Cevap verebilmemiz için Email adresi girmelisiniz!"); }
    $phone = $_POST['phone'];
    $reason = $_POST['reason'];
    $subj = $_POST['subject'];
    $description = $_POST['text'];
    if (trim($description) == "") { daj("Cevap verebilmemiz için metin alanına mesaj yazmalısınız!"); }


    $temp->assign('name',$name);
    $temp->assign('company',$company);
    $temp->assign('email',$email);
    $temp->assign('phone',$phone);
    $temp->assign('reason',$reason);
    $temp->assign('message',$description);

    $temp->preparemail($template_folder . 'contact_mail.tpl.html');
    $adresa = $reasons[$reason];

    $sent = $temp->send($email,$adresa,$email_subject.' '.$subj,'');

    if ($sent) {
    $disya = basename($_SERVER['PHP_SELF']);
    $disya = str_replace('.php','.tpl.html',$disya);
    $temp->assign("template_file",$disya);
    $temp->preparemail($template_folder . $disya);
    echo $temp->body;
    }
    else { daj("Üzgünüz, bir hata oluştu email gönderilemedi.Lütfen Daha sonra tekrar deneyiniz!"); }

    ?>

    Göndere basıldığında çıkan dosya bu

    Şimdi contact_settings.php diye dosya oluşturuyoruz ;

    İçeriği ;
    <?php

    //define project types and emails of persons in charge
    $reasons = array(
    "İstek"=>siteniz@siteadı.com,
    "Şikayet"=>siteniz@siteadı.com,
    "Ödeme Bildirim"=>"siteniz@siteadı.com",
    "Diğer Konular"=>siteniz@siteadı.com,

    );

    //specify folder with templates, with backslash at the end
    $template_folder = './templates/';

    //subject of email?
    $email_subject = 'Merhaba Dünya İletişim Formu';

    ?>

    Burada da iletişim nedenlerinin hangi mail adresine gideceği yer alıyor.

    Ve de son dosyamız olan TemplateMailer.class dosyasını oluşturuyoruz.

    İçeriği ;
    <?php
    class TemplateMailer {
    var $body;
    var $vars = array();

    function assign($varname,$varvalue) {
    $this->vars[$varname] = $varvalue;
    }


    function preparemail($template_file) {
    $template = file_get_contents($template_file);
    foreach ($this->vars as $key => $value) {
    $template = str_replace('{$'.$key.'}',$value,$template);
    }
    $this->body = $template;
    }


    function send($from,$to,$subject,$headers) {
    $sent = @mail($to,$subject,$this->body,"From: $from\r\n" . "MIME-Version: 1.0\n" . "Content-type: text/html; charset=utf-8\n" . $headers);
    if ($sent) { return true; }
    else { return false; }
    }

    }
    ?>

    Bunuda kayıt edip kapıyoruz.Ve de dosyalarımız bitti her şey bitti ama ben bu anlatımı
    contact-send.gif butonu olduğunu varsayarak anlattım Eğer oluşturamam diyorsanız;Ben yaptığımı upload edim bekleyin...

    Ahanda güzelim buton bu upload ediverdim hemen bunu burdan kopyala yapıştır yapın ve de iletisim dosyalarının yanına atın ..

    Eğer yaptığım formu görmek istiyorsanız ;
    http://www.atkilic.com/iletisim/contact.php
    adresine bakabilirsiniz.

    Burda form değil forum gibi polemikler olmasınıda istemiyorum

    Ben bu mesajı yazarken yukarı bakim hemen saat 2:19mış şimdi ise 2:49 30 dk mı aldı
    ama severek yaptım önemli değil
    Teşekkürlerinizi bekliyorum

  • 01-07-2007, 18:55:25
    #2
    Misafir
    Eline Sağlık... Eğitici olmuş.
  • 01-07-2007, 21:58:58
    #3
    eline sağlık
    ama
    saatler uyuşmuyor
  • 01-07-2007, 23:17:10
    #4
    Eposta Aktivasyonu Gerekmekte
    Evet bunu bir forumda kendim yazdım burayada koyim dedim
  • 01-07-2007, 23:23:25
    #5
    tşkLer Dostum Emeğine SağLık..
  • 02-07-2007, 09:28:09
    #6
    bu iletişim formu kodlarını bir yerden almadın değil mi?
  • 02-07-2007, 10:18:28
    #7
    Eposta Aktivasyonu Gerekmekte
    OnurSQL adlı üyeden alıntı: mesajı görüntüle
    bu iletişim formu kodlarını bir yerden almadın değil mi?
    Nerden alabilirim sence ? Burdaki php dersleri tamamen bana ait
  • 02-07-2007, 10:38:56
    #8
    ya ben bunu seviyorum

    ejderin dizin sitesi yapma olayından sonra bu tip uygulamaların artacağını ümit etmiştim

    şimdi ümidim gerçekleşiyor

    çok teşekkürler php bilen arakdaşların bu tip paylaşımlar yapması çok sevindirici bir durum

    umarım yakın zaman da değişik scriptlerin nasıl yapılacağı hakkındada konular açılır