• Home
  • Tools
  • Sitemap
  • Blogroll
  • Cek Pagerank
  • About

  • Membuat Contact Form Anti Spam dengan PHP

    April 12th, 2010 Under Internet, php, Wordpress | 69 Comments

    Contact Form [ contact me / us ] merupakan sebuah form sederhana yang digunakan untuk menghubungi admin blog / situs melalui email. Untuk membuatnya sebenarnya tidak terlalu susah, kali ini saya akan bahas sedikit menggunakan pemrograman berbasis Web yaitu PHP. Dan Pada nantinya Insya Allah bisa dijalankan, baik yang menggunakan wordpress.com, wodrpress.org atau lainnya.

    Kode contact.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    session_start() ;
    echo "<center><h3>Contact Me</h3><font color=red>";
    if(isset($_POST['kirimkan']))
    {
        $valid = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3}))$";
        if(!eregi($valid, $_POST[email]))
        {
            echo "<center>Silahkan lengkapi form yang disediakan</center>";
        }
        elseif(!$_POST[nama])
        {
            echo "<center>Silahkan lengkapi form yang disediakan</center>";
        }
        elseif($_POST['ccek'] == $_SESSION['capcay'])
        {
            $email="deka@deka.web.id";
            $kepada = $email;
            $judul = "Contact Me";
            $pesan = "Nama    : $_POST[nama]
                      Email   : $_POST[email]
                      Website : $_POST[blog]
                      Pesan   : $_POST[pesan]\n"
    ;
            $dari = "From: $_POST[email] \n";
            $dari  .= "Content-type: text/html \r\n";
            mail($kepada,$judul,$pesan,$dari);
            echo "<center><b>Terima Kasih Telah Menghubungi Saya.</b></center>";
        }
        else
        {
            echo "<center>Hasil Penjumlahan Salah</center>";
        }
    }
    echo "</font>";
    ?>
    <form method=post action="<?php $_SERVER['PHP_SELF']; ?>">
    <table>
    <tr><td>Nama</td><td>    : </td><td><input name="nama" type="text"><font color="#FF0000"> *</font></td></tr>
    <tr><td>Email</td><td>   : </td><td><input name="email" type="text"><font color="#FF0000"> *</font></td></tr>
    <tr><td>Website</td><td> : </td><td><input name="blog" type="text"></td></tr>
    <tr><td valign="top">Pesan Anda</td><td valign="top">       : </td><td><textarea name="pesan" cols="50" rows="5"></textarea></td></tr>
    <tr><td><img src="captcha.php"/></td><td>    </td><td><input name="ccek" type="text"/><font color="#FF0000"> *</font></td></tr>
    <tr><td colspan=4><input type="submit" name="kirimkan" value="Kirim"></td></tr>
    </table></center></form>

    Yang perlu diganti pada email=”deka@deka.web.id” sesuaikan dengan email anda, sisanya optional.

    Kode captcha.php [bentuknya penjumlahan]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    session_start();
    $gbr = "img.jpg";
    $merah = "0";
    $ijo = "0";
    $biru = "0";
    $acak1 = mt_rand(3,10);
    $acak2 = mt_rand(6,20);
    $strtampil = $acak1." + ".$acak2;
    $hasil = $acak1 + $acak2;
    $bikingbr =imagecreatefromjpeg($gbr);
    $teks = imagecolorallocate($bikingbr, $merah, $ijo, $biru);
    imagestring($bikingbr, 5, 20, 10, $strtampil, $teks);
    $_SESSION['capcay'] = $hasil;
    header("Content-type: image/jpeg");
    imagejpeg($bikingbr);
    ?>

    Untuk berjalan dengan baik, captcha.php harus ditambahkan sebuah image, kira-kira ukurannya 79×24 pixel. semuanya contact.php, captcha.php serta imagenya bisa juga di download disini. Untuk menjalankannya.

    • Pada wordpress.org
    • Jika disatukan dengan page pada wordpress, Install terlebih dahulu plugin eksekusi php seperti exec-php, inline-php, dsbnya. Kemudian pastekan kode contact.php pada halaman yang akan dibuat [html kode]. Untuk kode captchanya supaya tampil, jangan lupa di upload image dan captcha.php pada direktori wordpress. Contohnya bisa dilihat disini.

      Jika mau dibedakan dengan wordpress [tidak build] termasuk juga buat yang tidak menggunakan wordpress, tinggal bikin saja direktori pada hostingan, kemudian upload semua. jangan lupa untuk merename contact.php jadi index.php. Atau bisa juga langsung diupload pada direktori wordpressnya. Contohnya pada contact me di blog ini.

    • Pada wordpress.com
      Karena wordpress.com fiturnya serba terbatas mungkin cara satu-satunya dengan menggunakan pihak ketiga yaitu bisa upload pada hostingan gratis atau mudahnya, anda bisa contact saya, Insya Allah bisa saya bantu untuk meletakkannya pada hostingan saya.

    Ada yang mau protes..??? Sok atuh, sekalian mumpung otak saya lagi lieur :jedug:


    PS. Show ▼



    You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

    69 Responses to 'Membuat Contact Form Anti Spam dengan PHP'

    1. avatar April 17, 2010 at 1:01 pm
      atlet
    2. avatar April 20, 2010 at 10:58 am
      rismaka
    3. avatar July 18, 2010 at 3:56 am
      iphud
    4. avatar June 28, 2011 at 1:16 pm
      Quo
    5. avatar July 16, 2011 at 12:10 pm
      Jaka Dara
    6. avatar July 16, 2011 at 12:15 pm
      Jaka Dara
    7. avatar August 12, 2011 at 11:28 pm
      khamiL

    Leave a Reply