İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

WP Eklentisiz İletişim Formu

PauLShark

0
İyinet Üyesi
Katılım
12 Aralık 2010
Mesajlar
1,676
Reaction score
51
Konum
Ankara
İletişim Formu her web sitenin ve blogun ihtiyacıdır. Çoğu webmaster bu formlar için eklenti kullanmaktadır, bu işi eklentisiz bir şekilde yapmak istemezmisiniz ?

Birinci Adım :

PHP:
<?php
/*
Template Name: Contact
*/
$cp_question = "5+1 = ?";
$cp_answer = "6";
?>
<?php get_header(); ?>
<div id="content">
 
 
     <?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
 
 
    <?php
     //validate email adress
     function is_valid_email($email)
     {
        return (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$", $email));
     }
     function is_valid_user($answer)
     {
      global $cp_answer;
      if ($answer == $cp_answer) { return true; } else { return false;}
     }
     //clean up text
     function clean($text)
     {
      return stripslashes($text);
     }
     //encode special chars (in name and subject)
     function encodeMailHeader ($string, $charset = 'UTF-8')
     {
         return sprintf ('=?%s?B?%s?=', strtoupper ($charset),base64_encode ($string));
     }
     $cp_name    = (!empty($_POST['cp_name']))    ? $_POST['cp_name']    : "";
     $cp_email   = (!empty($_POST['cp_email']))   ? $_POST['cp_email']   : "";
     $cp_url     = (!empty($_POST['cp_url']))     ? $_POST['cp_url']     : "";
     $cp_ans     = (!empty($_POST['cp_ans']))     ? $_POST['cp_ans']     : "";
     $cp_message = (!empty($_POST['cp_message'])) ? $_POST['cp_message'] : "";
     $cp_message = clean($cp_message);
     $error_msg = "";
     $send = 0;
     if (!empty($_POST['submit'])) {   
      $send = 1;
      if (empty($cp_name) || empty($cp_email) || empty($cp_message) || empty($cp_ans)) {
       $error_msg.= "<p style='color:#a00'><strong>Gerekli tüm alanları doldurun.</strong></p>\n";
       $send = 0;       
      }      
      if (!is_valid_email($cp_email)) {
       $error_msg.= "<p style='color:#a00'><strong>Yanlış Bir Mail Adresi Girdiniz.</strong></p>\n";
       $send = 0;
      } 
      if (!is_valid_user($cp_ans)) {
       $error_msg.= "<p style='color:#a00'><strong>Yanlış Cevap.</strong></p>\n";
       $send = 0;
      }         
     }
     if (!$send) { ?>
 
<p>Soru, Görüş ve Önerilerinizi Bize Ulaştırmak
     için İletişim Formunu Kullanabilirsiniz..</p><br />
 
<?php echo $error_msg;?>
 
<form method="post" action="<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>" id="contactform">
 
 
                       <strong>İsim</strong>*<br/>
         <input type="text" class="textbox" id="cp_name" name="cp_name" value="<?php echo $cp_name ;?>" /><br/><br/>
         <strong>Mail</strong>*<br/>
         <input type="text" class="textbox" id="cp_email" name="cp_email" value="<?php echo $cp_email ;?>" /><br/><br/>
         <strong>Websiteniz</strong><br/>
         <input type="text" class="textbox" id="cp_url" name="cp_url" value="<?php echo $cp_url ;?>" /><br/><br/>
         <strong><?php echo $cp_question; ?> </strong>*<br/>
         <input type="text" class="textbox" id="cp_ans" name="cp_ans" value="<?php echo $cp_ans ;?>" /><br/><br />
         <strong>Mesajınız</strong>*<br/>    
         <textarea id="cp_message" name="cp_message" cols="60%" rows="10"><?php echo $cp_message ;?></textarea><br/>
         <input type="submit" id="submit" name="submit" value="Gönder" />  
 
       </form>
 
     <?php
     } else {
      $displayName_array = explode(" ",$cp_name);
      $displayName = htmlentities(utf8_decode($displayName_array[0]));
 
      $header  = "MIME-Version: 1.0\n";
      $header .= "Content-Type: text/plain; charset=\"utf-8\"\n";
      $header .= "From:" . encodeMailHeader($cp_name) . "<" . $cp_email . ">\n";
      $email_subject = "[" . get_settings('blogname') . "] " . encodeMailHeader($cp_name);
      $email_text  = "From......: " . $cp_name . "\n" .
         "Email.....: " . $cp_email . "\n" .
         "Url.......: " . $cp_url . "\n\n" .
         $cp_message;
      if (@mail(get_settings('admin_email'), $email_subject, $email_text, $header)) {
       echo "<h2>Tebrikler " . $displayName . ",</h2><p>Mesajınız Gönderildi.</p>";
      }
     }
     ?>
    <?php endwhile; ?>
 
  <?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Yukarıdaki Kodları concact.php dosyasına kaydedin ve Ftpden tema dosyasına atın.


2. Adım : Wp Admin paneline giriş yapıp İletişim başlıklı yeni bir sayfa açıyoruz. İçerik yazmamıza gerek yok. Sayfa özelliğini resimdeki gibi yapıyoruz.

Bu kadar, artık iletişim formumuz hazır.


demoo.png


Uyarılar : Ftpye contact.php.txt olarak atarsanız türkçe karakter problemi yaşarsınız. Problem yaşayanlar ftp'ye attıkları contact.php yi yeniden düzenlesinler.

PHP:
<textarea id="cp_message" name="cp_message" cols="60%" rows="10">

Yukarıdaki bölümden mesaj kutusu genişliğini ayarlayabilirsiniz.

Mailler admin profil sayfasında belirtilmiş mail adresine gönderilir.

Form sayfasında sidebarda kaymalar yaşayanlar <div id="content"> parametresi üzerinden gerekli düzenlemeleri yapsınlar. Kaynak için Mavişhime teşekkürler.
 

DarKWoLF

0
İyinet Üyesi
Katılım
11 Aralık 2010
Mesajlar
108
Reaction score
2
teşekürler eklenti kullanmak yerine böyle php kodlar kullanmak hız açısından daha önemli
 

PauLShark

0
İyinet Üyesi
Katılım
12 Aralık 2010
Mesajlar
1,676
Reaction score
51
Konum
Ankara
Ben teşekkür ederim, fazla eklenti kullanmak her zaman dezavantaj.
 

PauLShark

0
İyinet Üyesi
Katılım
12 Aralık 2010
Mesajlar
1,676
Reaction score
51
Konum
Ankara
Hatırlattığın için sağol, bir demo sayfası hazırlayım hemen.
 

emrah_seyfeli

0
İyinet Üyesi
Onaylı Üye
Katılım
25 Eylül 2010
Mesajlar
30
Reaction score
0
Konum
localhost
Hatırlattığın için sağol, bir demo sayfası hazırlayım hemen.

merhaba hocam konuyla ne kadar alakalı bilmiyorum ama :) faydalı bir konuya değinmişsiniz acaba böyle başvuru yapıldığında mail adresine değilde admin paneline gelse daha güzel olur böyle bir eklenti mevcuttu fakat hatırlayamadım biliyorsanız söylermisiniz
 

myben

0
İyinet Üyesi
Katılım
20 Nisan 2011
Mesajlar
94
Reaction score
0
hoccam bende çalışmadi
ya hosta sorun var yada bende anlamadim
sayfa dagıldı allak bullak oldu
 

tzengin

0
İyinet Üyesi
Katılım
16 Şubat 2016
Mesajlar
96
Reaction score
0
Konum
İstanbul Avrupa
merhaba hocam konuyla ne kadar alakalı bilmiyorum ama :) faydalı bir konuya değinmişsiniz acaba böyle başvuru yapıldığında mail adresine değilde admin paneline gelse daha güzel olur böyle bir eklenti mevcuttu fakat hatırlayamadım biliyorsanız söylermisiniz

sanırım gravity forms eklentisini diyorsunuz?
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst