• 07-05-2009, 00:47:44
    #1
    Beyler merhaba,

    Html ve Php üzerinden kullandığım bir iletişim ve kayıt formum var sitemde, Fakat malesef insanlar formu doldurmadan gönder tuşuna tıkladıkları vakit form bos gönderıliyor, Böyle bir durumla karşı karşıya gelmemek adına ne yapmalıyım? ve nasıl yabilirm?

    Acaba "X ve Y alanları boş bırkamyin gibi mesaj nasıl yapabilirim?


    Bana yardımcı olursanız çok sevinirim.
  • 07-05-2009, 01:38:29
    #2
    İstersen javascript ile ya da php ile kontrol yaparsın.
    Bırak boş form gönderilmesini kontrol yazarsan şablona aykırı veriyi bile kabul etmeyebilirsin.
    Yani abuk sabuk telefon numarası email adresi ve isim yazanlara uyarı mesajı verebilirsin.
    Email için telefon numarası için hazır kodlar var.
    Eğer girilen alanlar şablona uymuyorsa hata mesajı gösterebilirsin.
  • 07-05-2009, 03:17:42
    #3
    Örnek verelim ki. bir iletişim formu yazıyoruz.


    <?php
    
    if ( $_POST['mail'] != '' ){ // ilk kontrolümüz mail boşsa aşağıda içerik sayfası tekrar yazacak. eğer doluysa isim boşsa uyarı verecek.
    
    $isim=$_POST['isim'];
    $mail=$_POST['mail'];
    $mesaj=$_POST['mesaj'];
    
    if (($isim != '' && $mail != '' && $mesaj != '') { // Değişkenler boşmu diye kontrol ettik
    
    echo "Lutfen bos alanlari doldurunuz..";
    
    }
    else
    {
    
    //  Burda mail gönderme veya veritabani ekleme işlemimizi yapıyoruz...
    
    }
    else
    {
    ?>
    
    
    Buraya html form kodlarimizi yaziyoruz...
    <form action=""  method="post">
    inputlar
    ve submit buttonu
    </form>
    
    <?
    }
    ?>
    Saygılarımla ANIL
  • 07-05-2009, 20:11:58
    #4
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1254"></head><body>
    <?php
    $to = "burda mail adresimi yaziyorum";
    $subject = "Konu";


    $headers = "From:" . $_POST["isim"];
    $headers .= "<" . $_POST["eposta"] . ">\r\n";
    $headers .= "Reply-To: " . $_POST["eposta"] . "\r\n";
    $headers .= "Return-Path: " . $_POST["eposta"];

    $message .= "iletisim form islem sonucu\n\n";
    $message .= "Adi: " . $_POST["isim"] . "\r\n";
    $message .= "Soyadi: " . $_POST["soyisim"] . "\r\n";
    $message .= "Cinsiyet: " . $_POST["R1"] . "\r\n";
    $message .= "Email Adresi: " . $_POST["email"] . "\r\n";
    $message .= "Telefon: " . $_POST["telefon"] . "\r\n";


    mail($to, $subject, $message, $headers);
    ?>
    <SCRIPT LANGUAGE="JavaScript">
    var shant="xxxxx.html" //
    document.write('<strong>Loading...</strong>' + shant)//ekranda çykacak mesaj
    function forPage()
    {
    location.href=shant
    }
    setTimeout ("forPage()", 5);//Bekleme süresi

    </SCRIPT>
    </body>



    Bu ben'm PHP. sayfam iletişim formum içi, tam olarak nereye yerleştirmem gerekiyor sizin söylediğiniz kodu ?
  • 07-05-2009, 22:19:02
    #5
    İsthost hocam senin verdiğin kodda eğer boşluk karakteri gönderirlerse de kabul eder.

    Aşağıdaki kontrolleri eklemek daha faydalı olur sanki.
    Regexler hata verirse hangisinin hata verdiğini yaz düzeltelim.
    Escapeler eklendi...

    <?php
    // email adresi hatalıysa hat averir
    if(! eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST["eposta"])){
    echo "<script>alert(\"E-mail Adresiniz Hatali!\")</script>";
    header('Location: http://formun_olduğu_sayfa_adresi/');
    }
    //isim harflerden oluşmuyorsa ve 3-25 karakter arasında değilse hata verir
    if(! eregi("^[a-zA-Z ÇçÖöİıŞşÜüĞğ]{3,25}$", $_POST["isim"])){
    echo "<script>alert(\"Lutfen Gecerli bir isim belirtiniz!\")</script>";
    header('Location: http://formun_olduğu_sayfa_adresi/');
    }
    //soyisim harflerden oluşmuyorsa ve 2-50 karakter arasında değilse hata verir
    if(! eregi("^[a-zA-Z ÇçÖöİıŞşÜüĞğ]{2,50}$", $_POST["soyisim"])){
    echo "<script>alert(\"Lutfen Gecerli bir soyisim belirtiniz!\")</script>";
    header('Location: http://formun_olduğu_sayfa_adresi/');
    }
    //sayı olmayan ve 10 haneden kısa telefon numaralarına hata verir
    if(! eregi("^[0-9]{10,11}$", $_POST["telefon"])){
    echo "<script>alert(\"Lutfen Gecerli bir telefon belirtiniz!\")</script>";
    header('Location: http://formun_olduğu_sayfa_adresi/');
    }
    
    $to = "[COLOR="Red"]burda mail adresimi yaziyorum[/COLOR]";
    $subject = "[COLOR="Red"]Konu[/COLOR]";
    $headers = "From:" . $_POST["isim"];
    $headers .= "<" . $_POST["eposta"] . ">\r\n";
    $headers .= "Reply-To: " . $_POST["eposta"] . "\r\n";
    $headers .= "Return-Path: " . $_POST["eposta"];
    $message .= "iletisim form islem sonucu\n\n";
    $message .= "Adi: " . $_POST["isim"] . "\r\n";
    $message .= "Soyadi: " . $_POST["soyisim"] . "\r\n";
    $message .= "Cinsiyet: " . $_POST["R1"] . "\r\n";
    $message .= "Email Adresi: " . $_POST["email"] . "\r\n";
    $message .= "Telefon: " . $_POST["telefon"] . "\r\n";
    mail($to, $subject, $message, $headers);
    ?>
    <SCRIPT LANGUAGE="JavaScript">
    var shant="xxxxx.html" //
    document.write('<strong>Loading...</strong>' + shant)//ekranda çykacak mesaj
    function forPage()
    {
    location.href=shant
    }
    setTimeout ("forPage()", 5);//Bekleme süresi
    </SCRIPT>
    </body>
  • 07-05-2009, 22:31:52
    #6
    Oncelikle tekrar yardimin icin cok tesekkur ederim ,

    Simdi bunu denedim fakat gonder tusuna tikladiktan sonra bu hatayi veriyor : Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /vhosts/internetadresim.com/http/11111.php on line 4


    bu nedemek ?
  • 07-05-2009, 23:02:47
    #7
    Kodda escapeleri koymayı unutmuşum. Sanırım ondandır syntax hatası var.
    Acele yazmıştım. Düzelttim aynı kodu tekrar alıp deneyebilirsin.
  • 07-05-2009, 23:06:32
    #8
    Harikasin cok saol gercekten ... bekliyorum ben ..
  • 07-05-2009, 23:42:39
    #9
    düzeltildi