Form'dan Alınan Bilgileri Mail Adresine Göndermek

Bu konuyu okuyanlar

Majeste

Profesör
Katılım
7 Mart 2007
Mesajlar
1,953
Reaksiyon puanı
21
Puanları
0
Merhabalar,
PHP:
<form method='post' action='mail.php'><br />
Ad, Soyad: <input name='adsoyad' type='text' /><br />
Okul: <input name='okul' type='text' /><br />
Konaklama:<label><input type="radio" name="konaklama" value="Evet" />Evet</label><label><input type="radio" name="konaklama" value="Hayir" />Hayır</label>
<br /><br />
Mesaj(zorunlu değildir):<br /><textarea name='ileti' rows='10' cols='50'></textarea><br />
<input type='submit' />
</form>
Yukarıda hazırladığım form'dan aşağıdaki şekilde aldığım bilgileri hangi adımla mail adresime gönderebilirim?

PHP:
<?php
$adsoyad = $_POST["adsoyad"];
$okul = $_POST["okul"];
$konaklama = $_POST["konaklama"];
$ileti = $_POST["ileti"];
?>

Teşekkürler.
 

Proof.Web

Doçent
Katılım
3 Temmuz 2010
Mesajlar
999
Reaksiyon puanı
21
Puanları
0
Detaylı Bir Şekilde Açıklama Gereksiniminde Buldum Kendimi :)

Şimdi İlk Oncelikle Mesaj Formumuzu Hazırlıyoruz ;
index.php
HTML:
<form action="mesajyolla.php" method="post">
Gonderen Ad Soyad : <input type="text" name="adsoyad"/><br/>
Gonderen E-mail : <input type ="text" name="gondrerenmail"/><br/>
Gidecek E-mail Adresi : <input type="text" name="gidecekmail"/><br/>
Mesajınız : <textarea name="mesaj" ></textarea><br/>
<input type="submit" value="GönderGitsin!"/>
</form>

mesajyolla.php
PHP:
<?php
$adsoyad=$_POST["adsoyad"];
$gidecekmail=$_POST["gidecekmail"];
$mesaj=$_POST["mesaj"];
if($gidecekmail==""){
echo "HATA!"."<br/>";
echo "Lütfen Maili Gondereceğiniz Mail Adresini Yazınız";
exit();
}else{
$gonder=@mail($gidecekmail,$konu,$mesaj);
if($gonder!=false){
echo "Tebrikler Mail Basariyla Gonderildi";
}else{
echo "HATA !"."<br/>";
echo "Mail Gonderilemedi";
}
}
?>

İşte Bu Kadar,Tabi Bu İşlemler İçin Localhost'unda Bir Mail Servisi Olmalıdır,Eğer Yoksa Çalışmaz,Hata Verir
 

Majeste

Profesör
Katılım
7 Mart 2007
Mesajlar
1,953
Reaksiyon puanı
21
Puanları
0
@kaberdey,

Gayet sade ve işe yarar görünüyor, teşekkürler.

@Proof.Web,

Daha detaylı çok güzel oldu; hem benim için hem de aynı işi arayan diğer arkadaşlar için. Teşekkürler.

Form mantığı tabii ki aynı ancak benim istediğim biraz daha farklı bir amaca yönelik. Amacım radio, text, text area bulunan bir formdaki bütük bilgileri sabit bir mail adresine direkt olarak gönderilmesini sağlamak. Önemli olanlar ise ad-soyad, okul, konaklama isteyip istemediği. Bu durumda sanırım hepsini ilk mesajımdaki gibi alacağım ve
PHP:
if($adsoyad, $okul, $konaklama ==""){ 
echo "HATA!"."<br/>"; 
echo "Lütfen Gerekli Boşlukları Doldurun!"; 
exit(); 
}else{ 
$gonder=@mail('mail@example.com','Katilim', $mesaj);
if($gonder!=false){ 
echo "Tebrikler Mail Basariyla Gonderildi"; 
}else{ 
echo "HATA !"."<br/>"; 
echo "Mail Gonderilemedi"; 
} 
}
if kullanarak gönderilmesini sağlayacağım. Tabii ki;

PHP:
$mesaj=
'ad soyad='.$adsoyad.'
okul='.$okul.'
konaklama='.$konaklama'.
ileti='.$ileti;
 mail('benim@epostaadresim.com', 'konu', $mesaj);
Bahsettiğiniz text area'yı alan $mesaj kaberdey'in verdiği kodlar ile istediğim bilgiler alacak ve bu durumda da amacıma ulaşmış olacağım.

Yukarıda değiştirdiğim ve doğruluğundan emin olmadığım aşağıdaki kodlarda bir hata var mı?
* if($adsoyad, $okul, $konaklama =="")
* $gonder=@mail('mail@example.com','Katilim', $mesaj);
 

Uso!

Doçent
Katılım
10 Ağustos 2010
Mesajlar
947
Reaksiyon puanı
27
Puanları
18
Form.php
Kod:
<form method='post' action='mail.php'>
Ad, Soyad: <input name='adsoyad' type='text' />
<br />
Okul: <input name='okul' type='text' />
<br />
Konaklama:<label><input type="radio" name="konaklama" value="Evet" />Evet</label>
<label><input type="radio" name="konaklama" value="Hayir" />Hayır</label>
<br />
<br />
Mesaj(zorunlu değildir):
<br />
<textarea name='ileti' rows='10' cols='50'></textarea>
<br />
<input type='submit' />
</form>

functions.php
PHP:
function checkAndSend($inputArr){
$message = '';
foreach($inputArr as $inputName=>$inputValue):
$$inputName = $inputValue;
$message .= $inputName."=".$$inputName."<br />";
endforeach;

$requiredFields = ($adsoyad!=null && $adsoyad !='' && $okul!=null && $okul!='' && $konaklama!=null && $konaklama!='') ? TRUE : FALSE;

if($requiredFields == TRUE):

$to      = 'example@example.com';
$subject = 'the subject';
$headers = 'From: webmaster@example.com' . "\r\n";

mail($to, $subject, $message, $headers);

$return = "Mail gönderildi!";

else:

$return = "Gerekli alanlar doldurulmadı!";

endif;

return $return;
}

mail.php
PHP:
include("functions.php");
echo checkAndSend($_POST);

Biraz daha geliştirilebilir aslında, temel olarak POST'tan gelen her veriyi array isminde değişkene atıyor ve değer olarak arraydeki değeri alıyor.Ardından 3 alanın boş ve null olup olmadığını kontrol ederek eğer değilse mail gönderme işlemini yapıyor ve başarıyla gönderildi mesajı döndürüyor, değilse sadece hata mesajı döndürüyor.

DİPNOT: Test etmedim.Ama bir sorun olmaması lazım, sanırım.
 

Majeste

Profesör
Katılım
7 Mart 2007
Mesajlar
1,953
Reaksiyon puanı
21
Puanları
0
Uso! arkadaşım ben senin verdiğin kodlarını denedim. İstediğim boş alan kontrolü yapmak, zira diğer isteğimi, tüm alanları mesaj olarak göndermeyi, çözdüm. Ancak bunu yapamadım. Her ne kadar kod hazır gelse de, bilmeden uygulayamıyor insan. Neyse, kocaman "yıldızlı alanları doldurmak zorunludur" yazdım.

Herkese teşekkürler.

Bu arada, mail fonksiyonunu aşağıdaki gibi kullanarak alınan boşlukları mail olarak sorunsuz gönderebildim.

PHP:
mail($to, $subject, "
Ad, Soyad: $adsoyad \n
Okul: $okul \n
Konaklama: $konaklama \n
Ileti: $ileti
");
 
S

SDN Okuru

SDN Okuru
arkadaşım html5te required kodunu inputa tanıtırsan zorunlu olur otomatik olarak :)
 
Üst