BU PHP FORMAİL DAKİ SORUN NEDİR .ÇÖZEMEDİM

Kodla Büyü

tecnoteacher

Aktif Üye
Mesajlar
154
arkadaşlar bir form mail yapmak istiyordum fazla bir bilgimde yok php ile ilgili bir şeyler yapmaya çalıştım ama çözemedim sanırım bana hatayı bulup düzeltecek arkadaşlara şimdiden teşekkürler formu ve php dosyasını ekledim
 

Ekli dosyalar

  • bilgiedinme.rar
    2.1 KB · Görüntüleme: 28
problem 51. satırda değil iletim değişkeni oluşturulurken meydana gelmiş. onu daha düzenli bi hale getirin bence sorunu daha kolay bulabilrsin.
 
Kod:
$iletim = "Isminiz : " . $ad ."
Soyadiniz: " . $soyadiniz . " 
 Email adresiniz : " . $email . " 
 Tlf: " . $tlf . " 
 fax: " . $fax . "
 il: " . $il . "
 ilce: " . $ilce . "
 Adres: " . $adres . "
 Konu: " . $konu . "
 Mesajiniz: " . $mesaj ."
 Cvpsekli: " . $cvpsekli . "
 Dosya: " . $dosya . ";
kodundaki en sonda yer alan . " bölümünü silmeniz lazım.
son hali bu şekilde olacak
Kod:
$iletim = "Isminiz : " . $ad ."
Soyadiniz: " . $soyadiniz . " 
 Email adresiniz : " . $email . " 
 Tlf: " . $tlf . " 
 fax: " . $fax . "
 il: " . $il . "
 ilce: " . $ilce . "
 Adres: " . $adres . "
 Konu: " . $konu . "
 Mesajiniz: " . $mesaj ."
 Cvpsekli: " . $cvpsekli . "
 Dosya: " . $dosya;
 
HOCALARIM EKLEDİĞİM DOSYA GELMİYOR NEDEN OLABİLİR BUNUN İÇİN AYRI BİR KOD MU EKLEMEK LAZIM. DW CS4 TE ÖLE BİR FORM ELEMANI VAR ONU EKLEDİM AMA SANIRIM BAŞKA BİR İŞLEM YAPMAK GEREKECEK NASIL OLABİLİR ACABA
 
<?php

$dkaynak = $_FILES["dosya"]["tmp_name"]; //dosyanın geldiği kaynağın adını
$disim = $_FILES["dosya"]["name"]; //dosyanın adını
$dtipi = $_FILES["dosya"]["type"]; //dosyanın tipini
$dboyut = $_FILES["dosya"]["size"]; //dosyanın boyutu
$dhedef = "images"; //dosyanın kaydedileceği veya taşınacağı yeri belirliyoruz.

$duzanti = substr($disim, -5); // burası önemli uzantısına göre noktayla bereber uzantıyı alıyor. yani .jpg nin 4 karekteri veya .jpeg nin 5 karekterini alıyo sondan
$rasgelead = substr(md5(uniqid(rand())), 0,5); //burda rasgele isim veriyoz
$dyeniad = $rasgelead.$duzanti;

if ($dtipi != "image/pjpeg"){

echo "dosyanızın tipi jpg değil<br>";
} elseif ($dboyut > 500000) {

echo "dosya boyutu 50 kb den küçük olacak";
} else{
$dyukle = move_uploaded_file($dkaynak,$dhedef.'/'.$dyeniad); //dosya yükleme işlemini yani taşıma images klasörüne taşıma işini yaptık

if ($dyukle){
echo "dosya yükleme işlemi tamamlandı<br>";
} else {
echo "dosya yüklenemedi";
}
echo "dosyanın geldiği kaynak :".$dkaynak."<br>";
echo "dosyanın adı :".$disim."<br>";
echo "dosyanın tipi :".$dtipi."<br>";
echo "dosyanın boyutu :".$dboyut." bayt<br>";
}
?>
 
Hocam ekli mail göndermek için biraz daha farklı bir yapı kullanmak gerekiyor. Standart mail() fonksiyonu bildiğim kadarıyla dosya gönderme işlemi yapamıyor. Bir ara ben de denemiştim. Zaten mail de gönderilen dosyalar, mail metni gibi bir yapıya çeviriliyor, Base64 ile yazılarak. Elinizdeki ekli maillerden birini incelerseniz farkedeceksinizdir.
 
halilturkoglu' Alıntı:
Hocam ekli mail göndermek için biraz daha farklı bir yapı kullanmak gerekiyor. Standart mail() fonksiyonu bildiğim kadarıyla dosya gönderme işlemi yapamıyor. Bir ara ben de denemiştim. Zaten mail de gönderilen dosyalar, mail metni gibi bir yapıya çeviriliyor, Base64 ile yazılarak. Elinizdeki ekli maillerden birini incelerseniz farkedeceksinizdir.


ben üstteki kodla d sürücüsündeki dosyayı c sürücüsüne kaydediyordum. mail denemedim. biraz daha açıklarmısınız hocam
 
hocamın istediği gmail, hotmail, yahoo vs de olduğu gibi mail ile dosya gönderme işlemi yanlış anlamadıysam.
 
Kod:
<?php
//define the receiver of the email
$to = 'youraddress@example.com';
//define the subject of the email
$subject = 'Test email with attachment';
//create a boundary string. It must be unique
//so we use the MD5 algorithm to generate a random hash
$random_hash = md5(date('r', time()));
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
//add boundary string and mime type specification
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
//read the atachment file contents into a string,
//encode it with MIME base64,
//and split it into smaller chunks
$attachment = chunk_split(base64_encode(file_get_contents('attachment.zip')));
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-mixed-<?php echo $random_hash; ?> 
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"

--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello World!!!
This is simple text email message.

--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>

--PHP-alt-<?php echo $random_hash; ?>--

--PHP-mixed-<?php echo $random_hash; ?> 
Content-Type: application/zip; name="attachment.zip" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment 

<?php echo $attachment; ?>
--PHP-mixed-<?php echo $random_hash; ?>--

<?php
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>

şeklinde bir kod buldum bugün kodu aldığım adres: http://www.webcheatsheet.com/php/send_email_text_html_attachment.php

sanıyorum bu kodda $attachment = chunk_split(base64_encode(file_get_contents('attachment.zip'))); kısmında dosya adı belirtirken attachment.zip buğday hocamın vermiş olduğu dosya yükleme fonksiyonundan faydalanmak gerekecek :)
Umarım işinize yarar hocam.
 
Geri
Üst