2016-03-31 16 views
0

Bir kullanıcı e-posta adreslerini sitemde formuna girdiğinde, bilgileriyle bir e-posta alırım. Bu e-postayı yanıtlamak ve "To:" içindeki e-posta otomatik doldurmalarını yapmak istiyorum ancak sorun yaşıyorum. Bu soruyu buldum ve çözümü denedim: reply-to address in php contact form Ama benim için çalışmıyor ve neden emin değilim. İşte Reply-to PHP hatasıyla e-posta gönder

benim PHP'dir:

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 

$to = '[email protected]'; 
$headers = "BCC: [email protected]\r\n"; 
$headers .= 'Reply-To: ' . $email . "\r\n"; 

$subject = '*** Quote Request'; 

$name = $_POST['name']; 
$phone = $_POST['phone']; 
$date = $_POST['date']; 
$time = $_POST['time']; 
$pickup = $_POST['pickup']; 
$dropoff = $_POST['dropoff']; 
$passengers = $_POST['passengers']; 
$service = $_POST['service']; 
$email = $_POST['email']; 


$message = <<<EMAIL 

Quote submission from: $name 

Name: $name 
Phone Number: $phone 
Date: $date 
Time: $time 
Pickup Location: $pickup 
Drop Off Location: $dropoff 
Total Passengers: $passengers 
Service needed: $service 
Email: $email 

EMAIL; 


if($_POST) { 
    mail($to, $subject, $message, $headers); 
} 
header('Location: thankyou.html'); 
exit(); 

?> 

Ve bu alıyorum hata iletisi, özetlenebilir:

Tanımsız değişken: e /contact-form-handler.php üzerinde hat 9 Uyarı: başlık bilgilerini değiştirilemiyor - başlıklar zaten hat 44

pr üzerinde /contact-form-handler.php içinde (çıkış /contact-form-handler.php:9 başladı) tarafından gönderilen oblem, $email değişkenidir, çünkü bir Reply-To yazıp bir e-posta belirlersem çalışır. Belki de değişkenin üstbilgideki adını verdikten sonra tanımlandığından, ancak alt kısmına ekledikten kaynaklandığını düşündüm. Ben PHP ile bir çaylakım, bu yüzden bu değişkenin neden çalışmadığından emin değilim.

Ben de denedim:

$headers = "BCC: [email protected]\r\n" . 
'Reply-To: ' . $email . "\r\n" . 
'X-Mailer: PHP/' . phpversion(); 

Herhangi bir yardım mutluluk duyacağız!

+1

Alt kısımda ekleme e? Genel olarak, bir değer atamadan önce bir değişken kullanamazsınız. –

+0

[PHP: "Uyarı: Tanımsız değişken" ve "Uyarı: Tanımsız dizin"] 'in olası kopyası (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – chris85

+1

Daha önce birçok kez söylendi - dahili PHP 'mail' işlevini kullanmayın çünkü MTA'lar için birçok kısıtlama getiren ve düzenli olarak sorunlara neden olan sendmail gibi sadece bir sarıcıdır. Bunun yerine, "PHPMailer" (https://github.com/PHPMailer/PHPMailer) veya "SwiftMailer" (https://github.com/swiftmailer/swiftmailer) gibi kanıtlanmış çözümlerle SMTP kullanın. – brezanac

cevap

1

Tanımlamadan önce bir değişken kullanın!

Taşı Senaryonuzun üstüne bu blok: Bunun gibi

$name = $_POST['name']; 
$phone = $_POST['phone']; 
$date = $_POST['date']; 
$time = $_POST['time']; 
$pickup = $_POST['pickup']; 
$dropoff = $_POST['dropoff']; 
$passengers = $_POST['passengers']; 
$service = $_POST['service']; 
$email = $_POST['email']; 

: "Tanımsız değişken:

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 

$name = $_POST['name']; 
$phone = $_POST['phone']; 
$date = $_POST['date']; 
$time = $_POST['time']; 
$pickup = $_POST['pickup']; 
$dropoff = $_POST['dropoff']; 
$passengers = $_POST['passengers']; 
$service = $_POST['service']; 
$email = $_POST['email']; 

$to = '[email protected]'; 
$headers = "BCC: [email protected]\r\n"; 
$headers .= 'Reply-To: ' . $email . "\r\n"; 

$subject = '*** Quote Request'; 


$message = <<<EMAIL 

Quote submission from: $name 

Name: $name 
Phone Number: $phone 
Date: $date 
Time: $time 
Pickup Location: $pickup 
Drop Off Location: $dropoff 
Total Passengers: $passengers 
Service needed: $service 
Email: $email 

EMAIL; 


if($_POST) { 
    mail($to, $subject, $message, $headers); 
} 
header('Location: thankyou.html'); 
exit(); 

?> 
+0

Teşekkür ederim Kevinrob! Bu kadar basit olduğuna inanamıyorum, aptalca hissediyorum. Ama bunu çözmene gerçekten minnettarım, bu benim için çalıştı. – amandathewebdev

0

iletişim formundan (yeniden $_POST['email']; almazlar sizin gibi görünüyor: e-posta ")

Posta giriş alanınızın adını kontrol edin ...

+0

Bu tanımlanmamış ** index ** notu, undefined ** variable ** değil. Bu satır "$ headers. = 'Reply-To:'. $ e-posta. "\ r \ n"; 'daha önce tanımlanmadığı için atar. – chris85

İlgili konular