lostyazilim
tr.link

Html İletişim Formu ile Ekli Dosya Göndermek İçin Php Komutu (POST)

4 Mesajlar 1.081 Okunma
lstbozum
tr.link

msain1536 msain1536 grafikrin.com Kullanıcı
  • Üyelik 14.05.2014
  • Yaş/Cinsiyet 30 / E
  • Meslek Graphic Designer
  • Konum İstanbul Anadolu
  • Ad Soyad M** S**
  • Mesajlar 472
  • Beğeniler 143 / 174
  • Ticaret 4, (%100)
Merhaba arkadaşlar,
Elimde html ile düzenlenmiş bir iletişim formu mevcut. Fakat bu form üzerinden özgeçmiş gönderilmesi gerekiyor. Php bilgim çok az olduğundan dolayı bunu da POST methodu ile yapmalız. Phpmailer diye bir şey buldum ama çok karışık geldi. Tek sorunum aşağıda ki php dosyasına attachment komutu yazmak :)

Kullandığım iletişim formu: https://codepen.io/thesain/full/ZEGRdEB

if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "you@yourdomain.com";
$email_subject = "Your email subject line";

function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.

";
echo $error."

";
echo "Please go back and fix these errors.

";
die();
}


// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}



$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required

$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.
';
}

$string_exp = "/^[A-Za-z .'-]+$/";

if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.
';
}

if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.
';
}

if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.
';
}

if(strlen($error_message) > 0) {
died($error_message);
}

$email_message = "Form details below.\n\n";


function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}



$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";

// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>



Thank you for contacting us. We will be in touch with you very soon.


}
?>
 

 

grafikrin.com | Stunning Ideas | Ücretsiz Grafik Tasarım Elementleri
wmaraci
reklam

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
PHP nin kendi mail gönderme fonksiyonunu sallayın, PHPMailer size karışık gelmiş ama daha fazla işinize yarar;
Buradaki anlatımdan yola çıkarak formunuzu oluşturmaya çalışın.
Ekstra olarak yapmanız gereken şey kodların arasına

$mail->addAttachment('../gonder.zip', 'new.zip');


tarzında cv nizi yüklediğiniz konumdan alıp göndermek olacaktır (tmp klasör yolunu verebilirsiniz). Tabii bunlardan önce formunuza enctype="multipart/form-data" ekleyip PHP de dosya yükleme olayını öğrenmeniz lazım.
Karışık gelmiş olabilir ama araştırmadan öğrenmesi de kolay değil maalesef.
msain1536

kişi bu mesajı beğendi.


msain1536 msain1536 grafikrin.com Kullanıcı
  • Üyelik 14.05.2014
  • Yaş/Cinsiyet 30 / E
  • Meslek Graphic Designer
  • Konum İstanbul Anadolu
  • Ad Soyad M** S**
  • Mesajlar 472
  • Beğeniler 143 / 174
  • Ticaret 4, (%100)

Abdullahx adlı üyeden alıntı

PHP nin kendi mail gönderme fonksiyonunu sallayın, PHPMailer size karışık gelmiş ama daha fazla işinize yarar;
Buradaki anlatımdan yola çıkarak formunuzu oluşturmaya çalışın.
Ekstra olarak yapmanız gereken şey kodların arasına

$mail->addAttachment('../gonder.zip', 'new.zip');


tarzında cv nizi yüklediğiniz konumdan alıp göndermek olacaktır (tmp klasör yolunu verebilirsiniz). Tabii bunlardan önce formunuza enctype="multipart/form-data" ekleyip PHP de dosya yükleme olayını öğrenmeniz lazım.
Karışık gelmiş olabilir ama araştırmadan öğrenmesi de kolay değil maalesef.


Yanıtınız için çok teşekkür ederim. Konunuzu inceledim, gerçekten güzel anlatmışsınız. Şimdi burada /gonder.zip gibi uzantıları nereye neden yazacağımı bilmiyorum :)

Yine aynı şekilde phpmailer ile yapılmış bir formu inceledim: http://reusableforms.com/d/e2/php-contact-form-with-attachment

Olduğu gibi kullandığım zaman mailime sorunsuz geliyor. Fakat bunu da kendi formuma göre nasıl düzenleyeceğimi bulamadım :(
 

 

grafikrin.com | Stunning Ideas | Ücretsiz Grafik Tasarım Elementleri

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Öncelikle teşekkür ediyorum :)
Formunuza dosya eklediğiniz zaman bu eklenen dosyayı php tarafında yüklemeniz gerekiyor. İlk olarak PHP ile dosya yükleme örneklerine bakarsanız internetten hemen öğrenirsiniz çünkü çok kolay dosya yüklemek, daha sonra dosyayı yüklediğiniz konumun yolunu phpmailer ile mail göndereceğiniz dosyanın konumunu baz alarak $mail->addAttachment('../gonder.zip', 'new.zip'); bu koddaki '../gonder.zip' yazan yere ekliyorsunuz. Ben örnek olsun die gonder.zip yazdım. Artık sizin cv dosyanızın uzantısı ne olursa onu yazmanız lazım. Mesela burda ../gonder.zip demek bizim dosyamız bir klasör üstte bulunuyor demek oluyor :) İkinci kısım olan new.zip de yeniden adlandırma için. Benim konudaki örneği indirip inceleyin, send_mail olan klasöre değil de bir süt klasöre gonder.zip adında bir dosya oluşturun, sonra da $mail->addAttachment('../gonder.zip', 'new.zip'); bu kodu send_mail dosyasına ekleyip göndermeyi deneyin. O şekilde daha iyi anlayabilirsiniz :)
 

 


wmaraci
wmaraci
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al