folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Asp İle İletişim Formu Yapımı [Beyaz Tahribat]



Asp İle İletişim Formu Yapımı [Beyaz Tahribat]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Abizittin
    Abizittin's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    Default.asp

    ---------------

    Hemen kodlara geçeyim. Yazının bu bölümünde herhangi bir asp kodlaması yok bu bölümde sadece formun tasarımı ve gönderilecek olan formun kodu ile ilgili bilgiler vericem.

     

    <form action="Kaydet.asp" method="post">
    <table width="50%" height="270" align="center" class="tablo" border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td class="style1 style2">
    <table width="97%" height="97%" align="center" border="0">
      <tr>
        <td width="25%">Ad&#305;n&#305;z</td>
        <td width="2%">:</td>
        <td>&nbsp;<input type="text" name="ad" /></td>
      </tr>
      <tr>
        <td width="25%">Soyad&#305;n&#305;z</td>
        <td width="2%">:</td>
        <td>&nbsp;<input type="text" name="soyad" /></td>
      </tr>
      <tr>
        <td width="25%">E-Mail Adresiniz </td>
        <td width="2%">:</td>
        <td>&nbsp;<input type="text" name="email" /></td>
      </tr>
      <tr>
        <td width="25%" valign="top">Mesaj&#305;n&#305;z</td>
        <td width="2%" valign="top">:</td>
        <td>&nbsp;<textarea name="mesaj" cols="30" rows="5"></textarea></td>
      </tr>
      <tr>
        <td width="25%" valign="top">&nbsp;</td>
        <td width="2%" valign="top">&nbsp;</td>
        <td>&nbsp;<input type="submit" value="Gönder" /></td>
      </tr>
    </table>  

        </td>
      </tr>
    </table>
    </form>

      Kodların önemli olan kısımlarını turuncu renkle belirttim. Şimdi açıklamaya geçeyim. Formumuzu göndermemiz için öncelikle bir form açmamız gerekiyor. Bu formun action bölümüne formun gönderileceği adresi , method kısmınada post veya get yazmamız gerekiyor. Post methodu verilerin gönderilecek sayfaya form elementi olarak gönderilmesini , get methodu ise verilerin adres satırında string olarak gönderilmesini sağlar. Güvenlik açısından post methodunu seçmenizde fayda var.

      Turuncu renkle belirttiğim inputlar ise kaydedilecek olan verilerin girildiği bölümlerdir. İnputların değerlerini text olarak belirttik çünkü göndereceğimiz değerler text tabanlı olacak. İnputların formun gönderildiği sayfada çağırılması için name bölümüne o inputa ait ismi veriyoruz. Textarea ise input alanlarından daha büyük metin alanları oluşturmamızı sağlar. Textareayıda diğer sayfada çağırabilmemiz için onun name alanına bir değer giriyoruz. En sondaki input ise formumuzu tetikleyecek olan buton. Dikkat ettiyseniz inputun type değeri submit yani gönderme butonu , value bölümüne ise butonun üzerinde görünecek olan yazıyı yazıyoruz.

    Kaydet.asp

    ------------

    Veritabanınızda olması gereken sütunlar alttaki resimdeki gibi olacak.

      Veritabanınıza bu alanları eklediyseniz şimdi kodlamaya geçiyorum. Önceden veritabanı bağlantınızı yaptınız varsayıyorum.

     

    <%

    '// Formdan gelen verileri işimizi kolaylaştırması için değişkenlere bağlıyoruz. //
    ad    =Trim(request.form("ad"))
    soyad    =Trim(request.form("soyad"))
    email    =Trim(request.form("email"))
    mesaj    =Trim(request.form("mesaj"))

    '// Bu değişkenlerin boş olup olmadıklarını kontrol ediyoruz , eğer boşsa geri gönderiyoruz.
    if ad="" or soyad="" or email="" or mesaj="" or Len(ad)<1 or Len(soyad)<1 or Len(email)<1 or Len(mesaj)<1 then
    Response.Redirect "Default.asp?DURUM=BOS_ALAN_BIRAKTINIZ_TUM_ALANLARI_DOLDURUN."
    Response.End
    End if

    Set Kaydet = Conn.Execute("Insert into Mesajlar (adi,soyadi,email,mesaj) values ('"&ad&"','"&soyad&"','"&email&"','"&mesaj&"')")
    Response.Redirect "Default.asp?DURUM=MESAJINIZ_BASARIYLA_ALINDI!"

    %>

     Dikkat etmeniz gereken noktaları farklı renklerle belirttim. Kahverengi renkle gördüğünüz trim fonksiyonu gelen verinin başındaki ve sonundaki tüm boşlukları silmenize yarıyor. Kırmızı renkle belirttiğim request.form kodu ise formdan gelen veriyi çağırmamıza yarıyor. Biz formumuzu post methodu ile yolladığımız için bu şekilde çekiyoruz. Ancak get methodu ile yollasaydık request.querystring ile çekmemiz gerekiyordu.

     Bir diğer fonksiyon olan kırmızıyla belirttiğim Len fonksiyonu. Bu fonksiyon ile gönderdiğimiz verinin uzunluğunu öğreniyoruz. Mantıksal sınama yapmak için çok iyi bir yöntem olan bu kod ile eğer formdan gelen verinin uzunluğu 1 harfden küçükse işlem yaptırmıyoruz. Hemen bir alt satırda olan Response.Redirect kodu ise tırnaklar arasında belirttiğimiz url ye yönlendirmemizi sağlıyor. Eğer formdan gelen verinin uzunluğu 1 karakterden kısa ise yönlendirmeyi yapıyor ve olası hataları önlemek için Response.End kodunu kullanıyorum. Bu kod sayesinde yönlendirme işleminden sonra gelen kodların yorumlanmasını engellemeyi sağlıyor. Sayfa bu kodun öncesine kadar çalıştırılıyor, geri kalan kısım çalıştırılmıyor.

     Geri kalan kod ise gelen verilerin veritabanına kaydedilmesini gerçekleştiriyor. Bu kodun açıklamasını yapma gereği duymuyorum çünkü daha önce Asp ile Veritabanı İşlemleri yazımda bunu anlatmıştım.

    Eğer uygulamayı indirmek istiyorsanız buraya tıklayın.

    Bu yazıyı kendi sitemde daha az önce bitirdim. Tamamen benim tarafımdan yazılmıştır. İsterseniz formu indirip değiştirebilirsiniz.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek
    eyw saolasın :) güzel döküman.Senide phpye geçiremedik bea he ?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Abizittin
    Abizittin's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek
    oda olur abi merak etme :)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JohnD
    JohnD's avatar
    Banlanmış Üye
    Kayıt Tarihi: 19/Ekim/2008
    Erkek
    zamanında flash ile form hazırlayıp ona asp entegre etmiştim manyak olmuştu onu tekrar yapim paylaşim bende :)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MinervaL
    MinervaL's avatar
    Kayıt Tarihi: 29/Eylül/2008
    Erkek
    eyw hocam uzun süredir girdiğim nadir işe yarar konulardan.| ASP gibisi varmı bea bırakın adamı phpye geçiştirmeyi :)
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JohnD
    JohnD's avatar
    Banlanmış Üye
    Kayıt Tarihi: 19/Ekim/2008
    Erkek
    ha bu arada buna cache koruması lazım yoksa bombardıman yiyebilirz :)
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    arkinfes
    arkinfes's avatar
    Kayıt Tarihi: 07/Haziran/2007
    Erkek

    JohnD bunu yazdı:
    -----------------------------
    ha bu arada buna cache koruması lazım yoksa bombardıman yiyebilirz :)
    -----------------------------

    cace koruması yeriene javascript ile butona tıklanınca butonun etkisiz et 

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Abizittin
    Abizittin's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    abi bu yazı sadece mantığı anlatmak için

    yoksa farkındaysanız formdan gelen verileride temizlemiyorum.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek

    if ad="" or soyad="" or email="" or mesaj="" or Len(ad)<1 or Len(soyad)<1 or Len(email)<1 or Len(mesaj)<1 then

     

    niye bu kadar kastın ki ? 

    1 den küçükse zaten 0 dır 0= "", iki işlemde aynı şeyi yapyor.

    bunun yerine js, ajax gibi görsel dillerle kontrol kullanıcı için daha rahattır. zaman kullanımı açısından js kontrolü daha kısa sürer.

     

     

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Abizittin
    Abizittin's avatar
    Kayıt Tarihi: 19/Haziran/2008
    Erkek

    el alışkanlığı.

    tabiki öyle olabilir ama js veya ajax bilmediğim için ben böyle kullanıyorum :)

    he piyasada o tarz kodlar var diyebilirsin ama onuda ben pek beğenmiyorum  :)

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    snnyk
    snnyk's avatar
    Kayıt Tarihi: 28/Mayıs/2007
    Erkek
    güzel ona bide güvenlik kodu montele..
Toplam Hit: 2255 Toplam Mesaj: 13