С нами с 24.01.13
Сообщения: 109
Рейтинг: 73
|
Добавлено: 01/06/13 в 14:53 |
Помогите плз ламеру
Не отправляет имейл, хотя пишет что отправила. Знания php очень базовые.
Часть html
Код: [развернуть] | <p id="hireus">
<div class="hire-us">
<div class="container">
<div class="area_title">
Free Consultation
<div id="subtitle">
Send us your info, and we'll get in touch!
</div>
</div>
<div class="hireform">
<form method="POST" name="contactform" class="form" action="form.php">
<input class="input" type="text" name="name" placeholder="Your Name"/>
<input class="input" type="text" name="email" placeholder="Email Address"/>
<input type="submit" value="Submit" class="submit"/>
</form>
</div>
</div>
</div>
</p>
|
часть php
Код: [развернуть] |
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "videoeditor2005@gmail.com";
$email_subject = "Your email subject line";
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['email'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
Thank you for contacting us. We will be in touch with you very soon.
<?php
}
?> |
|
|
|
|
С нами с 25.03.04
Сообщения: 1284
Рейтинг: 411
|
Добавлено: 01/06/13 в 15:38 |
1) убери @ перед @mail($email_to, $email_subject, $email_message, $headers);
что говорит?
2) попробуй простой скрипт сделать и запустить:
mail("videoeditor2005@gmail.com","sub","text");
что скажет? если ничего то глючит сендмайл на хостинге а не скрипт.
|
|
|
|
С нами с 24.01.13
Сообщения: 109
Рейтинг: 73
|
Добавлено: 01/06/13 в 15:54 |
убрал все также говорит что все ок, а письмо не приходит
скрипт письмо отослал
я подозреваю что там что-то с передачей данных от хтмл формы
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 01/06/13 в 16:17 |
Скорей всего там проблема не в пхп, а в самой доставке почты с сервера. Надо /var/log/maillog смотреть.
|
|
|
|
С нами с 24.01.13
Сообщения: 109
Рейтинг: 73
|
Добавлено: 01/06/13 в 16:40 |
да я же говорю что скрипт mail("videoeditor2005@gmail.com","sub","text");
отправил без проблем
|
|
|
|
С нами с 22.05.09
Сообщения: 639
Рейтинг: 1087
|
Добавлено: 01/06/13 в 18:05 |
вот здесь не правильно
$first_name = $_POST['name']; // required
нужно
$name = $_POST['name']; // required
А в остальном все работает. Скорей всего у тебя на сервере какие-то специфичные настройки. Проверил с обычным сендмейлом - отправляет.
|
|
|
|
С нами с 24.01.13
Сообщения: 109
Рейтинг: 73
|
Добавлено: 01/06/13 в 19:35 |
Не знаю чего там было, но я решил пойти путем упрощения и оно заработало. Правда от кода ничего не осталось)
Код: [развернуть] | <?php
$email_to = "videoeditor2005@gmail.com";
$email_subject = "NEW CLIENT";
$name = $_POST['name']; // required
$email_from = $_POST['email']; // required
mail($email_to, $email_subject,$name, $email_from);
?>
Thank you for contacting us. We will be in touch with you very soon.
<?php
?> |
А как сделать что-бы форма не перекидывала на новую страницу, а как-то более спокойно сообщала об успехе?
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 01/06/13 в 20:20 |
Ajax, jquery
|
|
|
|
С нами с 22.05.09
Сообщения: 639
Рейтинг: 1087
|
Добавлено: 02/06/13 в 01:04 |
Попробуй так, а то нехорошо без проверки поля принимать
Код: [развернуть] | <?php
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "videoeditor2005@gmail.com";
$email_subject = "Your email subject line";
$email_message = "Form details below.\n\n";
function died($error)
{
$mess = "We are very sorry, but there were error(s) found with the form you submitted. These errors appear below.<br /><br />".
$error."<br /><br />Please go back and fix these errors.<br /><br />";
echo $mess;
}
function clean_string($string)
{
$bad = array("content-type","bcc:","to:","cc:","href","'","\"");
$str = str_replace($bad,"",$string);
return strip_tags($str);
}
if(isset($_POST['email']))
{
if(empty($_POST['email']))
{
died('We are sorry, but email is require.');
return false;
}
else
{
$name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from))
{
died('The Email Address you entered does not appear to be valid.<br />');
return false;
}
}
$email_message .= "First Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$headers = 'From: '.$email_from."\r\n";
mail($email_to, $email_subject, $email_message, $headers);
?>
Thank you for contacting us. We will be in touch with you very soon.
<?php
}
?> |
|
|
|
|
+ +
WP-Master
С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123
|
Добавлено: 02/06/13 в 10:04 |
по моему и так все понятно, гугл фильтрует письма когда домен !=IP(куда сложнее объяснить это я для примера)
|
|
|
|