İletişim formunda invalid email adress hatası alıyorum..

oillampgokhan

Öncelikle Hoşgeldim hepinize merhabalar.

Ben hazır bir şablon indirdim. bu şablonda bilindiği gibi anasayfa biz kimiz gibi seçeneklerin yanında iletişim formu var sorun burada başlıyor. forma bilgileri giriyorum. Gönder dediğim zaman hemen iletişim formunun üzerinde şunlar yazıyor.
Invalid email address entered

Şimdi size kodları yazıyorum.

BU CONTACT.PHP içinde bulunan kodlama


<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Invalid email address entered";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('name','email','message');
$required = array('name','email','message');

$your_email = "kendimail adresimi yazıyorum@gmail.com";
$email_subject = "New Message: ".$_POST['subject'];
$email_content = "new message:\n";

foreach($values as $key => $value){
if(in_array($value,$required)){
if ($key != 'subject' && $key != 'company') {
if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}

if(@mail($your_email,$email_subject,$email_content )) {
echo 'Message sent!';
} else {
echo 'ERROR!';
}
}
?>


Ve bu ise CONTACT.HTML içinde bulunan Kodlar.

<form action="contact.php" method="post" id="contactform">
<ol>
<li>
<label for="name">First Name<a href="#">*</a><br />
</label>
<input name="name" class="text" id="name" />
</li>
<li>
<label for="label2">Your e-mail<a href="#">*</a><br />
</label>
<input id="label2" name="name2" class="text" />
</li>
<li>
<label for="email">Company Name<br />
</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="label">Subject<br />
</label>
<input id="label" name="email2" class="text" />
</li>
<li>
<label for="message">Message<a href="#">*</a><br />
</label>
<textarea id="message" name="message" rows="6" cols="50"></textarea>
</li>
<li class="buttons">
<input type="image" name="imageField2" id="imageField2" src="images/send.gif" />
</li>
</ol>
</form>


neden istiyorum bu formu düzeltmek çok güzel duruyor sitede form yardımcı olursanız çok sevinirim.

(Bu arada php destekli hostumda tüm dosyalar)

2011-01-01 13:28:33

Php

ereg fonksiyonu hata veriyor. o kısma başka bir sorgu koyarak çalıştırabilirsin. veya o bölümü toptan iptal edebilirsin. herhangi bir güvenlik açığı olmaz.

O kısım sadece e-mail adresini yanlış yazıp giren kişiler için engelleme yapıyor. bence gereksiz. çünkü türkler zaman zaman hata yapabilir. örneğin şu adres burada hata verir: ayşe.kısa@hotmail.com

site sahibi bu adrese baktığında "ş" ve "ı" karakterini görüp düzgün adrese ulaşabilir. ama bu form adres yanlış diyerek kişiyi engeller ve belki de canı sıkılan kişi formu tekrar yollamaktan vazgeçer. 

iptal edilecek kısım:

if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Invalid email address entered";
$errors=1;
}

Onun yerine "jquery validator" kullanırsan emaili yanlış yazdığı anda uyarı çıkacak ve düzeltmesini sağlayacaktır. çok daha pratik ve kullanıcı dostu.

sitesi: http://jquery.bassistance.de/validate/demo/

Her programcı birgün Php yi tadacaktır
2011-01-01 14:06:05

Php

oillampgokhan

Gerçekten çok teşekkür ederim hem cevap için hem bu hızda yazdığınız için mükemmelsiniz çok teşekkür ederim ayrıca dediğiniz şekildede deneme yapacağım.

2011-01-01 14:50:58

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro