контактная форма помощь php - PullRequest
0 голосов
/ 13 января 2012

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

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

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

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

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

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

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

<?php

$youremail = "someonesemail@email.com";

$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";
 }

Я не бриллиант с php, поэтому любая помощь приветствуется

Ответы [ 3 ]

1 голос
/ 13 января 2012

Относительно вашего первого вопроса:

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

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

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

1 голос
/ 13 января 2012
<?php
$youremail  = "someonesemail@email.com";
$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;
    }
?>

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

1 голос
/ 13 января 2012

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


$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: Somename <some_email@example.com>' . "\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;
}

...