2012-01-13 8 views
0

Хорошо, у меня есть наша контактная форма, полностью работающая и обрабатывающая правильно. У меня два вопроса ...Контактная форма php help

  1. на странице контактной формы, я хочу, чтобы добавить флажок для пользователя, чтобы поставить галочку, чтобы отправить копию письма к ним, а также.

  2. на части формы процесса Я хочу перенаправить на страницу ошибки, если все идет ужасно неправильно.

В настоящее время на моей форме представить меня есть действие происходит в thankyou.php

Мой процесс формы я добавил в пределах страницы thankyou.php но может вытащить его отдельно, если это необходимо.

.......................................

Мой процесс формы ниже (очень простой)

<?php 

$youremail = "[email protected]"; 

$yourname = $_POST['yourname']; 
$email = $_POST['email']; 
$location = $_POST['location']; 
$textarea = $_POST['textarea']; 

$headers = "From: $email"; 

$content = "Hello there! This is a message from your contact form.\r\n 
\r\n 
\r\n 
Name: $yourname\r\n 
\r\n 
E-mail: $email\r\n 
\r\n 
Location: $location\r\n 
\r\n 
Message: $textarea\r\n\r\n"; 

$send = mail($youremail, 'Message from your conatct form', $content, $headers); 

if($send) 
{ 
echo "ok"; 
} 

Im не ромб с PHP, так что любая помощь оценили

ответ

1
<?php 
$youremail = "[email protected]"; 
$yourname = $_POST['yourname']; 
$email  = $_POST['email']; 
$location = $_POST['location']; 
$textarea = $_POST['textarea']; 
$ReceiveMail= $_POST['txtReceive']; 

if($ReceiveMail == "yes") { 
    $content = ""; 
    $headers = "From: $email"; 
    @mail($email, 'Mail Notification', $content, $headers); 
} 
    $headers = "From: $email"; 
    $content = "Hello there! This is a message from your contact form.\r\n 
    \r\n 
    \r\n 
    Name: $yourname\r\n 
    \r\n 
    E-mail: $email\r\n 
    \r\n 
    Location: $location\r\n 
    \r\n 
    Message: $textarea\r\n\r\n"; 
    $send = mail($youremail, 'Message from your conatct form', $content, $headers); 
    if($send) { 
     header("location:thankyou.php"); 
     exit; 
    } 
    else { 
     header("location:error.php"); 
     exit; 
    } 
?> 

Я добавил один флажок в форме и проверил значение на стороне сервера. Попробуйте это. Надеюсь, это поможет

+0

благодарит Muthu :) даст ему уйти – 422

1

Если вы хотите отправить копию почты, то вам необходимо добавить соответствующие заголовки для почты, как:

 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'To: Somename <[email protected]>' . "\r\n"; 
$headers .= 'Cc: '.$yourCopyMail . "\r\n"; // this is for copy 
//then 
if(mail(....)) { 
    echo "sent"; 
} 
else { 
    header("Location: url_to_your_error_page"); 
    exit; 
} 
 
+0

Спасибо Sudhir, я смотрел на другое goto, ... не мог понять это. Приведет, что whirl thankyou – 422

1

Что касается вашего первого вопроса:

This page дает краткое руководство по добавлению флажка в вашу форму и получение значения на следующей странице. Когда вы обрабатываете отправку формы, просто посмотрите на переменную $_POST["checkboxname"] и посмотрите, установлено ли значение, которое вы дали этому флажку (или, если оно вообще установлено). Если это так, то просто повторите команду, чтобы отправить электронное письмо, с электронной почтой пользователя в качестве получателя.

В вашем случае это выглядит так, что бы $send = mail($email, 'Message from your conatct form', $content, $headers);

Я не знаю, как ответить на ваш второй вопрос, потому что «если все идет ужасно неправильно» не является особо значимым условным.

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