2013-12-20 2 views
0

Я получаю странную причуду с моим базовым сценарием контактов, пересылая данные формы на мою почту.Contactscript.php не возвращает поля

Я пытаюсь получить форму, чтобы переслать четыре поля ввода на мой адрес электронной почты, но до сих пор я получаю только «телефон» и «сообщение», и любые попытки добавить $ email $ name будут приводят к тому, что пользователь не направляется на thanks.php. Вот сценарий:

<?php 

// VALUES FROM THE FORM 

$name  = $_POST['name']; 

$email  = $_POST['email']; 

$message = $_POST['msg']; 

$phone  = $_POST['phone']; 


// ERROR & SECURITY CHECKS 

if ((!$email) || 

    (strlen($_POST['email']) > 200) || 

    (!preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email)) 

    ) 

{ 

    print "Error: Invalid E-Mail Address"; 

    exit; 

} 

if ((!$name) || 

    (strlen($name) > 100) || 

    (preg_match("/[:[email protected]\<\>]/", $name)) 

    ) 

{ 

    print "Error: Invalid Name"; 

    exit; 

} 

if (preg_match("#cc:#i", $message, $matches)) 

{ 

    print "Error: Found Invalid Header Field"; 

    exit; 

} 

if (!$message) 

{ 

    print "Error: No Message"; 

    exit; 

} 

if (eregi("\r",$email) || eregi("\n",$email)){ 

    print "Error: Invalid E-Mail Address"; 

    exit; 

} 

if (FALSE) { 

    print "Error: You cannot send to an email address on the same domain."; 

    exit; 

} 





// CREATE THE EMAIL 

$headers = "Content-Type: text/plain; charset=UTF-8\n"; 
$headers .= "Content-Transfer-Encoding: 8bit";  // rivi kertoo, että käytät merkkejä, jotka ovat perus 7-bittisen US-ASCII:n ulkopuolella (esim. skandeja) 
$headers .= "From: $name <$email>\n"; 

$recipient = "[email protected]"; 

$subject = "Asiakkaan yhteydenotto"; 

$message = wordwrap($message, 1024); 

$phone  = wordwrap($phone, 1024); 


// SEND THE EMAIL TO YOU 
$message = "Phone: $phone\r\n" . $message; 
mail($recipient, $subject, $message, $headers); 



// REDIRECT TO THE THANKS PAGE 

header("location: thanks.php"); 

?> 

Что я делаю неправильно, здесь? Мне нужны эти имена и электронные письма от потенциальных клиентов.

+0

Прежде всего. Я не вижу вашу форму, так называются ваши входы? –

+0

Да. Четыре поля ввода в HTML-форме называются «имя», «электронная почта», «телефон», «msg» - соответственно. EDIT: Ах, верно. Я забыл упомянуть, кажется, что «отправитель» перезаписывается адресом веб-хостинга, отправляющим электронное письмо в его целевое местоположение. –

+0

Попробуйте '$ message =" Телефон: ". $ phone. "\ n". "Эл. адрес: " . $ email. "\ n". «Сообщение:». $ message. "\ n"; ' –

ответ

1

Это работает для меня:

Я изменил ваш: (как на мой комментарий)

$message = "Phone: $phone\r\n" . $message; 

To:

$message = "Phone: " . $phone . "\n" . "Email: " . $email . "\n" . "Message: " . $message . "\n"; 

(Rewrite)

<?php 

// VALUES FROM THE FORM 

$name  = $_POST['name']; 
$email  = $_POST['email']; 
$message = $_POST['msg']; 
$phone  = $_POST['phone']; 

// ERROR & SECURITY CHECKS 

if ((!$email) || 

    (strlen($_POST['email']) > 200) || 

    (!preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email)) 

    ) 

{ 

    print "Error: Invalid E-Mail Address"; 

    exit; 

} 

if ((!$name) || 

    (strlen($name) > 100) || 

    (preg_match("/[:[email protected]\<\>]/", $name)) 

    ) 

{ 

    print "Error: Invalid Name"; 

    exit; 

} 

if (preg_match("#cc:#i", $message, $matches)) 

{ 

    print "Error: Found Invalid Header Field"; 

    exit; 

} 

if (!$message) 

{ 

    print "Error: No Message"; 

    exit; 

} 

if (eregi("\r",$email) || eregi("\n",$email)){ 

    print "Error: Invalid E-Mail Address"; 

    exit; 

} 

if (FALSE) { 

    print "Error: You cannot send to an email address on the same domain."; 

    exit; 

} 

// CREATE THE EMAIL 

$headers = "Content-Type: text/plain; charset=UTF-8\n"; 
$headers .= "Content-Transfer-Encoding: 8bit";  // rivi kertoo, että käytät merkkejä, jotka ovat perus 7-bittisen US-ASCII:n ulkopuolella (esim. skandeja) 
$headers .= "From: $name <$email>\n"; 

$recipient = "[email protected]"; 

$subject = "Asiakkaan yhteydenotto"; 
$message = wordwrap($message, 1024); 
$phone  = wordwrap($phone, 1024); 


// SEND THE EMAIL TO YOU 
// $message = "Phone: $phone\r\n" . $message; 

$message = "Phone: " . $phone . "\n" . "Email: " . $email . "\n" . "Message: " . $message . "\n"; 

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


// REDIRECT TO THE THANKS PAGE 

header("location: thanks.php"); 


?> 
Смежные вопросы