Форма для отправки почты не отправка - PullRequest
0 голосов
/ 12 мая 2011

У меня есть всплывающая форма электронной почты "Расскажи другу", которая позволяет пользователям делиться моей страницей с адресом электронной почты, который они вводят.Он всплывает нормально, но я не могу получить форму для отправки электронного письма.

html:

<div id="tellfriend">
      <a href="#close">Close</a>

      <form id='tellafriend_form' method="post" action="#sendMessage" name="tellafriend_form">

        <label for="name">Your Name:</label>
        <input type="text" id="name" name="name" />

        <label for="to">Friend's email:</label> 
        <input type="text" id="to" name="to" /> 

        <label for="subject">Subject:</label>
        <input type="text" id="subject" name="subject" /> 

        <label for="message">Message:</label> 
        <textarea id="message" name="message"></textarea>
        <input type="submit" name="submit" value="Submit">

      </form>

</div><!-- #tellfriend -->

javascript, который обрабатывает всплывающее окно:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> 
<script>
$(function() {
    $('#tellfriend').hide();
    $('#sendMessage').click(function(e) {
        $("#tellfriend").fadeToggle('fast');
    });

});
</script>

php, который должен отправить письмо:

<?
if (isset($_POST['Submit'])) {
// This will check to see if the form has been submitted
$senders_name = $_POST['name'];
// The person who is submitting the form
$recipient_friend = $_POST['to'];
// The forms recipient
$subject = $_POST['subject'];
// The subject line
$message = $_POST['message'];
// The message being sent
mail($recipient_friend, "From $senders_name", $subject, $message);

if (isset($_POST['your_email'])) {
echo "<br>Your friend has been contacted <br><br>Thank you $senders_name";
}}
?>

Отказ от ответственности: PHP новичок, надеясь узнать.Спасибо!

Ответы [ 3 ]

1 голос
/ 12 мая 2011

Порядок ваших параметров в функции почты не верен. см это

должно быть

mail($recipient_friend, $subject, $message);

если вы хотите использовать заголовки, сделайте это

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";    
$headers .= 'To: '.$recipient_friend.' <'.$recipient_friend.'>' . "\r\n";    
$headers .= 'From: '.$sender.' <'.$senderEM.'>' . "\r\n";    

Тогда звоните почте вот так

mail($recipient_friend, $subject, $message, $headers);
0 голосов
/ 25 сентября 2012

У вас есть 2 ошибки

  1. первый:

    if (isset($_POST['submit']))
    // $_POST is case sensitive
    
  2. второй:

    if (isset($_POST['your_email']))
    // you dont have an inout named 'your_email'
    
0 голосов
/ 12 мая 2011

В вашем коде PHP есть одна ошибка:

if (isset($_POST['Submit'])) {

должно быть:

if (isset($_POST['submit'])) {

со строчными буквами "s".

Действительно имяВы отправляете кнопку «Отправить», но значение «Отправить».В конечном итоге вы можете сделать это:

if (isset($_POST['submit']) &&  $_POST['submit'] == 'Submit') {

И ваши почтовые параметры неверны, как сказал буг.

...