volkantr19 Posted January 6, 2014 Share Posted January 6, 2014 Merhaba arkadaşlar;Php iletişim formumda değiştirmek istediğim bir yer var ama bir türlü yapamadım.Sorun şu: Web sitesinden mail göndermek isteyince formu doldurmadan direk GÖNDER tuşuna basınca form kullanıcıya UYARI mesajı gösteriyor.(isminizi girin,mail adresinizi girin vb..)Ancak benim php formumda bu ingilizce ve ben türkçeye çevirdiğim zaman uyarı yerine NULL yazıyor.Bu sorunu nasıl çözebilirim... <?php if(!session_id()) { session_start(); } error_reporting(0); if (isset($_REQUEST['action'])) { if ($_REQUEST['action'] == "contact_form_request") { $ourMail = "[email protected]"; $required_fields = array("name", "email", "message"); $pre_messagebody_info = ""; $errors = array(); $data = array(); parse_str($_REQUEST['values'], $data); //check for required and assemble message if (!empty($data)) { foreach ($data as $key => $value) { $name = strtolower(trim($key)); if (in_array($name, $required_fields)) { if (empty($value)) { $errors[$name] = "Please enter your " . $name . "!"; } } if ($name == "email") { if (!check_email_address($value)) { $errors[$name] = "You've entered invalid email address!"; } } } } //*** $verify = $_SESSION['verify']; if ($verify != md5($data['verify'])) { $errors["verify"] = "The verification code you've entered is wrong!"; } //*** $result = array( "is_errors" => 0, "info" => "" ); if (!empty($errors)) { $result['is_errors'] = 1; $result['info'] = $errors; echo json_encode($result); exit; } $pre_messagebody_info.="<strong>Gönderen</strong>" . ": " . $data['name'] . "<br />"; $pre_messagebody_info.="<strong>E-mail Adresi</strong>" . ": " . $data['email'] . "<br />"; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers.= 'Content-type: text/html; charset=UTF-8859-9' . "\r\n"; $headers.= "From: ".$data['email']."\r\n"; $after_message = "\r\n<br />--------------------------------------------------------------------------------------------------\r\n<br /> Bu email web sitenizdeki iletişim formundan gönderilmiştir..."; if (mail($ourMail, "Web sitenizden email aldınız...", $pre_messagebody_info .="<strong>Mesajı</strong>" . ": " . $data['message'] .$after_message, $headers)) { $result["info"] = "success"; } else { $result["info"] = "server_fail"; } echo json_encode($result); exit; } } function check_email_address($email) { // First, we check that there's one @ symbol, // and that the lengths are right. if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { // Email invalid because wrong number of characters // in one section or wrong number of @ symbols. return false; } // Split it into sections to make life easier $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%& вâ€+Ğ„'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false; } } // Check if domain is IP. If not, // it should be valid domain name if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { return false; // Not enough parts to domain } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])| вâ€+Ğ„([A-Za-z0-9]+))$", $domain_array[$i])) { return false; } } } return true; } ?> Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted January 6, 2014 Share Posted January 6, 2014 İlginç ama benim düşüncem şu yönde eğer değişkenleri de türkçe yapıyorsan belki ondan yapıyor olabilir veya formun başka bi yerde kod çekiyor mu ? yani include 'ekdosya.php' vs gibi. Kodlarını tam gönderirsen dener nedenini söyleyebilirim. Quote Link to comment Share on other sites More sharing options...
volkantr19 Posted January 6, 2014 Author Share Posted January 6, 2014 İlginç ama benim düşüncem şu yönde eğer değişkenleri de türkçe yapıyorsan belki ondan yapıyor olabilir veya formun başka bi yerde kod çekiyor mu ? yani include 'ekdosya.php' vs gibi. Kodlarını tam gönderirsen dener nedenini söyleyebilirim. Hayır başka yerden kod çekmiyor.Ama dikkatimi çeken şu oldu. İletişim formum 4 bölümden oluşuyor: Adınız SoyadınızEmail AdresinizMesajınızGüvenlik Kodunu Giriniz Ama php kodlarda sadece 3 değişken verilmiş: $errors[$name] = "Please enter your " . $name . "!"; $errors[$name] = "You've entered invalid email address!"; $errors["verify"] = "The verification code you've entered is wrong!" Bence sorun şurada: //check for required and assemble message if (!empty($data)) { foreach ($data as $key => $value) { $name = strtolower(trim($key)); if (in_array($name, $required_fields)) { if (empty($value)) { $errors[$name] = "Please enter your " . $name . "!"; } }if ($name == "email") { if (!check_email_address($value)) { $errors[$name] = "You've entered invalid email address!"; } } } } //*** Çünkü name ile ilgili ne yazarsam email ile ilgili kısımda da aynısı çıkıyor. Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted January 6, 2014 Share Posted January 6, 2014 Kodların genelinde hata var doğru dikkat etmişsiniz eksikler vs. $errors[$name] = "You've entered invalid email address!"; email adresine name değişkeni ne alaka ? Quote Link to comment Share on other sites More sharing options...
volkantr19 Posted January 6, 2014 Author Share Posted January 6, 2014 (edited) Kodların genelinde hata var doğru dikkat etmişsiniz eksikler vs. $errors[$name] = "You've entered invalid email address!"; email adresine name değişkeni ne alaka ? Onun sebebi şu sanırım: if ($name == "email") { if (!check_email_address($value)) { $errors[$name] = "You've entered invalid email address!"; Bu şekilde bir = kullanılmış if ($name == "email") Bu sebeple de $errors[$name] = "You've entered invalid email address!"; yazılmış diye düşünüyorum. Edited January 6, 2014 by volkantr19 Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted January 6, 2014 Share Posted January 6, 2014 Bu nasıl bir kodlama mantığını hala anlamadım gece gece :D eğer isim emaile eşitse Geçersiz e-posta adresi girdiniz :D dostum sen başka script bul dene bence Quote Link to comment Share on other sites More sharing options...
volkantr19 Posted January 6, 2014 Author Share Posted January 6, 2014 Bu nasıl bir kodlama mantığını hala anlamadım gece gece :D eğer isim emaile eşitse Geçersiz e-posta adresi girdiniz :D dostum sen başka script bul dene bence Normalde hiçbir sorunu yok bu formun,server da denedim mailler süper bir şekilde gönderiliyor. Ama dedim ki,madem Türkiye'deyiz,bu uyarıları Türkçe yapayım.Keşke demez olaydım. Sorunu bir türlü çözemedim,çözebileni de bulamadım... Quote Link to comment Share on other sites More sharing options...
Ankara1703 Posted January 30, 2014 Share Posted January 30, 2014 Selamun Aleyküm. kardeşim php' nin Doğrulama Fonksiyonları var Örneğin mail için. HTML FORM YAPIMIZ: <form name="Form1" method="POST"> <input type="text" name="mail" size="60" /> <input type="text" name="ad" size="50" /> </form> Daha Sonra Php Kodumuz : if($_POST){ $ad = $_POST['ad']; $mail = $_POST['mail']; $kontrol = strlen($mail); $kontrola = strlen($ad); if ($kontrol == 0 && $kontrola == 0){ echo "ALANLARI DOLDURUNUZ". }else{ // SİZİN İŞLEMLERİNİZ.. } } Quote Link to comment Share on other sites More sharing options...
KintaRo Posted January 30, 2014 Share Posted January 30, 2014 aslında HTML5 sayesinde hiç birine gerek yok. <input type="text" name="isim" required="required"> dediğiniz zaman submit buttonu tıklandığında otomatik olarak şöyle bir uyarı çıkacaktır: ya da şu şekilde çıkacak olan mesjaı özelleştirebilirsiniz: <input name="kont1" pattern="[0-9]{6}" type="tel" title="Örnek: 012345" required="required"> yani dedik ki, {0-9} 0 ila 9 sayıları arasında {6} 6 haneli bir sayı girilmesi mecburidir. hatta ve hatta regex ile mail kontrolü vb. de yaptırabilirsiniz. Quote Link to comment Share on other sites More sharing options...
blackman12 Posted January 30, 2014 Share Posted January 30, 2014 Kinto keşke turkiyedeki kullanıcıların çoğu yeni tareayıcıları kullansa da bizde kasmasak rahat rahat yazsak bizde kodları ama maalesef. Kullandığın script ise epey eski bi script yeni bi script kullanmanı tavsiye ederim. ereg fonksiyonları falan tedavulden kalkalı çok oldu Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.