Электронная почта php проверки javascript с использованием информации, добавленной в поля

я в настоящее время делаю веб-сайт, и я застрял у меня есть форма

    <form name="inputForm" onSubmit="return validateForm();" action="#">
<fieldset>
    <p>
      <label>First Name:</label>
      <input type="text" name="first_name"/><br />
      <label>Surname:</label>
      <input type="text" name="surname"/><br />
      <label>Address number:</label>
      <input type="text" name="address_number"/><br />
      <label>Address name:</label>
      <input type="text" name="address_name"/><br />
      <label>Suburb:</label>
      <input type="text" name="suburb"/><br />
      <label>Postcode:</label>
      <input type="text" name="postcode"/><br />      
      <label>State:</label>
      <select name="state">
            <option value="nsw">NSW
            <option value="qld">QLD
            <option value="act">ACT
            <option value="vic">VIC
            <option value="sa">SA
            <option value="tas">TAS
            <option value="nt">NT
            <option value="wa">WA
          </SELECT><br />
      <label>Email:</label>
      <input type="text" name="email"/><br />
      <label>Phone Number:</label>
      <input type="text" name="phone"/><br />
      <input type="submit" name="submit" value="Send form" />
      <input type="reset" name="reset" value="reset" />
      </p>
</fieldset>
</form>

который затем проверяется javascript

function validateForm()
{
    var form = document.forms['inputForm'];
    var formats = 
        {
            first_name: /^[a-zA-Z]+[\-'\s]?[a-zA-Z]+$/,                             /*works for a-Z allows - and '*/
            surname: /^[a-zA-Z]+[\-'\s]?[a-zA-z]+$/,                                /*works for a-Z allows - and '*/
            postcode: /^\d{4}$/,                                                    /*4digit post code australia wide*/
            email: /^\w+([\.-]w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/,                   /*allows all word characters and normal email formats*/
            address_number: /^\d[0-9]$/,                                                    /*allows any number of digits*/
            address_name: /^\w?\s?[a-zA-Z]+(,?\s([a-zA-Z])*)*$/,            /*allows numbers space capital letters and other word characters*/
            suburb: /^\w?\s?[a-zA-Z]+(,?\s([a-zA-Z])*)*$/,          /*allows numbers space capital letters and other word characters*/
            phone: /^\d{8}$/,                                                       /*8 number phone number*/
        };
        var elCount = form.elements.length;
        for(var i = 0; i<elCount; i++)
        {
            var field = form.elements[i];
            if(field.type == 'text')
            {
                if(!formats[field.name].test(field.value))
                {
                    alert('invalid '+ field.name.replace('_',' ')+'.');             /*alerts the name of the area not filled right in a pop up box*/
                    field.focus();
                    return false;
                }
            }
        }
        alert('All fields correct, the form will now submit.')
}

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

<?php
if( isset( $_POST['submit'] ) || isset( $_POST['submit_x']))
{
    $to = "[email protected]";
      $subject = 'subject';
      $message = 'testing the php mail() function';
      $headers = "from: email\r\n";


        $body=" 
        Name: $name\n
        Email: $email\n
";
echo "the information has been sent we will be in contact with you shortly";
mail($to, $subject, $message, $headers);    
}
else
{
    echo "The informations has not been sent";
}
?>

теперь я ломал голову над этим пару дней, искал его, не могу найти ничего, я все еще изучаю php и javascript

javascript и HTML работают нормально, это просто почтовая функция, пожалуйста, помогите


person minixe    schedule 10.04.2012    source источник
comment
В чем проблема? Пожалуйста, задайте вопрос.   -  person Bergi    schedule 10.04.2012
comment
Убедитесь, что ваш сервер может использовать функцию mail(). Если разрешено, убедитесь, что вы поддерживаете функцию.   -  person Lobo    schedule 10.04.2012
comment
Попробуйте вызвать почтовую функцию без каких-либо зависимостей, просто в простом PHP-скрипте. Думаю, это тоже не сработает, потому что у вас не настроен пишите правильно.   -  person fragmentedreality    schedule 10.04.2012


Ответы (3)


во-первых, добавьте в форму method="post", чтобы она выглядела так:

Next

 $headers = "from: email\r\n";

to

 $headers = "from: {$_POST['email']}\r\n";
person Thomas    schedule 10.04.2012

Вам нужно указать метод ..

form method="post"

И я не уверен, правильно ли использовать action="#"

person Artjom Kurapov    schedule 10.04.2012
comment
если вы не используете html-тег <base>, который указывает на немного другое место, он будет публиковаться на другой странице... что может вызвать проблемы - person Artjom Kurapov; 10.04.2012

Попробуйте isemail для проверки электронной почты в PHP. Это самый полный скрипт проверки электронной почты. Это соответствует всем RFC об электронной почте.

person web-nomad    schedule 10.04.2012