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
