Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 27
1

Форма отправки сообщения: не срабатывает кнопка "Отправить"

10.10.2013, 21:51. Показов 2794. Ответов 6
Метки нет (Все метки)

привет всем! помогите, пожалуйста, с такой проблемой:
есть код формы для отправки данных, при нажатии кнопки "отправить" письмо не отправляется.
в чем ошибка?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
if(trim($_POST['p1']) == ''){
$hasError = true;
} else {
$name = trim($_POST['p1']);
}
if(trim($_POST['p2']) == ''){
$hasError = true;
} else if (!preg_match("/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i",
trim($_POST['p2']))){
$hasError = true;
} else{
$email = trim($_POST['p2']);
}
if (trim($_POST['massage']) == ''){
$hasError = true;
} else{
if(function_exists('stripslashes')){
$comments = stripslashes(trim($_POST['message']));
} else{
$comments = trim($_POST['message']);
}
}
 
if(!isset($hasError)){
$emailTo = 'h2o.vmv@ya.ru';
$body = "Name: $name \n\nEmail: $email
\n\nSubject: $subject \n\nComments:\n $comments";
$headers = 'From: My Site <'.$emailTo.'>' . 
"\r\n" . 'Reply-To: ' . $email;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}
 
if(isset($hasError)){
echo "<script type=\"text/javascript\">";
echo "window.alert(\"Пожалуйста, заполните все поля и введите корректные данные.\")";
echo "</script>";
echo "Пожалуйста, заполните все поля и введите корректные данные.";
}
 
if($emailSent == true){
echo "<script type=\"text/javascript\">";
echo "window.alert(\"Письмо успешно отправлено!\")";
echo "</script>";
 
echo "<p><strong>Письмо успешно отправлено!</strong></p>";
echo "<p>Спасибо <strong> ".$name." </strong>";
echo "за использование контактной формы. Ваше письмо успешно отправлено";
echo "и мы вскоре с вами свяжемся.</p>";
}
 
echo "<a href = \"contacts.html\"> Вернуться на страницу контактов</a>";
 
echo "<script type=\"text/javascript\">";
echo "window.location = \"contacts.html\"";
echo "</script>";
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2013, 21:51
Ответы с готовыми решениями:

Из формы отправки сообщения на e-mail приходят "иероглифы"
Добрый день. Отправляя письмо из формы отправки со своего сайта, на e-mail адресату приходят...

Кнопка "назад" после отправки формы
Здравствуйте! Скажите пожалуйста, можно ли как-то после отправки формы 'вернуться' на две страницы...

скопировал себе на сайт форму отправки сообщений, она работает, но при нажатии "отправить" не появляется окно
Сделал себе на сайт форму отправки сообщений, она работает, но при нажатии &quot;отправить&quot; не...

Не работает форма отправки сообщений form method="POST"
Подскажите пожалуйста, появилась проблема в коде, - отправки формы обратной связи, После...

6
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
10.10.2013, 23:41 2
а где форма?
0
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 27
11.10.2013, 06:10  [ТС] 3
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="p3">
        <form id="contact-form" action="form.php" method="post" enctype="multipart/form-data"><!--обработка и отправка данных-->
        <fieldset><!--для группирования элементов формы-->
        <label><span class="text-form">Имя:</span>
            <input name="p1" type="text" />
        </label>
        <label><span class="text-form">E-mail:</span>
            <input name="p2" type="text" />
        </label>
        <div class="text-form">Сообщение:</div>
    <textarea name="message"></textarea>
    <div id="clear"></div>
    <br>
    <div id="buttons">
        <a class="button" href="#" onClick="document.getElementById('contact-form').reset()">Очистить</a>
        <a class="button" href="#"onClick="document.getElementById('contact-form').submit()">Отправить</a></div>
        </fieldset>
    </form>
</div>
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
11.10.2013, 10:12 4
NAVAHO, такой код и проверять не хочется.
Держи отформатированый:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
if(trim($_POST['p1']) == ''){
  $hasError = true;
} else {
  $name = trim($_POST['p1']);
}
if(trim($_POST['p2']) == ''){
  $hasError = true;
} else if (!preg_match("/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i", trim($_POST['p2']))){
  $hasError = true;
} else{
  $email = trim($_POST['p2']);
}
if (trim($_POST['massage']) == ''){
  $hasError = true;
} else{
  if(function_exists('stripslashes')){
    $comments = stripslashes(trim($_POST['message']));
  } else{
    $comments = trim($_POST['message']);
  }
}
 
if(!isset($hasError)){
  $emailTo = 'h2o.vmv@ya.ru';
  $body = "Name: $name \n\nEmail: $email \n\nSubject: $subject \n\nComments:\n $comments";
  $headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
  mail($emailTo, $subject, $body, $headers);
  $emailSent = true;
}
 
if(isset($hasError)){
  echo "<script type=\"text/javascript\">";
  echo "window.alert(\"Пожалуйста, заполните все поля и введите корректные данные.\")";
  echo "</script>";
  echo "Пожалуйста, заполните все поля и введите корректные данные.";
}
 
if($emailSent == true){
  echo "<script type=\"text/javascript\">";
  echo "window.alert(\"Письмо успешно отправлено!\")";
  echo "</script>";
 
  echo "<p><strong>Письмо успешно отправлено!</strong></p>";
  echo "<p>Спасибо <strong> ".$name." </strong>";
  echo "за использование контактной формы. Ваше письмо успешно отправлено";
  echo "и мы вскоре с вами свяжемся.</p>";
}
 
echo "<a href = \"contacts.html\"> Вернуться на страницу контактов</a>";
 
echo "<script type=\"text/javascript\">";
echo "window.location = \"contacts.html\"";
echo "</script>";
?>
0
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 27
11.10.2013, 10:22  [ТС] 5
спасибо! но как мне понять что не так?

Добавлено через 4 минуты
проверил - не работает. при корректно заполненных полях, пишет: "Пожалуйста, заполните все поля и введите корректные данные.".
не понимаю
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
11.10.2013, 11:19 6
где объявление $subject? (ошибка не в этом, но его я не увидел)

Добавлено через 38 минут
попробуй так и посмотри результат:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
if(isset($hasError)) echo 'удали переменную в начале' // test
 
if(trim($_POST['p1']) == ''){
    $hasError = true;
} else {
    $name = trim($_POST['p1']);
}
 
if(isset($hasError)) echo 'ошибка при проверке р1' // test
 
if(trim($_POST['p2']) == ''){
    $hasError = true;
} else if (!preg_match("/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i", trim($_POST['p2']))){
    $hasError = true;
} else{
    $email = trim($_POST['p2']);
}
 
if(isset($hasError)) echo 'ошибка при проверке р2' // test
 
if (trim($_POST['massage']) == ''){
    $hasError = true;
} else{
    if(function_exists('stripslashes')){
        $comments = stripslashes(trim($_POST['message']));
    } else{
        $comments = trim($_POST['message']);
    }
}
 
if(isset($hasError)) echo 'ошибка при проверке message' // test
 
if(!isset($hasError)){
    $emailTo = 'h2o.vmv@ya.ru';
    $body = "Name: $name \n\nEmail: $email \n\nSubject: $subject \n\nComments:\n $comments";
    $headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
    mail($emailTo, $subject, $body, $headers);
    $emailSent = true;
}
 
if(isset($hasError)){
    echo "<script type=\"text/javascript\">";
    echo "window.alert(\"Пожалуйста, заполните все поля и введите корректные данные.\")";
    echo "</script>";
    echo "Пожалуйста, заполните все поля и введите корректные данные.";
}
 
if($emailSent == true){
    echo "<script type=\"text/javascript\">";
    echo "window.alert(\"Письмо успешно отправлено!\")";
    echo "</script>";
 
    echo "<p><strong>Письмо успешно отправлено!</strong></p>";
    echo "<p>Спасибо <strong> ".$name." </strong>";
    echo "за использование контактной формы. Ваше письмо успешно отправлено";
    echo "и мы вскоре с вами свяжемся.</p>";
}
 
echo "<a href = \"contacts.html\"> Вернуться на страницу контактов</a>";
 
echo "<script type=\"text/javascript\">";
echo "window.location = \"contacts.html\"";
echo "</script>";
?>
0
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 727
11.10.2013, 12:03 7
Цитата Сообщение от NAVAHO Посмотреть сообщение
спасибо! но как мне понять что не так?

Добавлено через 4 минуты
проверил - не работает. при корректно заполненных полях, пишет: "Пожалуйста, заполните все поля и введите корректные данные.".
не понимаю
16 строка. Массаж, это хорошо, но вряд ли поможет

Добавлено через 4 минуты
Вообще, неплохо бы детализировать сообщения об ошибках наподобие:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$hasError = '';
if(trim($_POST['p1']) == ''){
    $hasError = $hasError . "Не задано имя. " ;
} else {
    $name = trim($_POST['p1']);
}
...
if(strlen($hasError)>0){
echo "<script type=\"text/javascript\">";
echo "window.alert(\"Пожалуйста, заполните все поля и введите корректные данные.\")";
echo "</script>";
echo "Возникли ошибки при заполнении формы." . $hasError;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2013, 12:03

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Поэтапно: "Конструктор - форма на ajax с валидацией для отправки письма."
Пожалуйста, помогите! Мучаюсь уже пятый день (( Как-то не стоял раньше вопрос с внесением на сайт...

Форма обратной связи, при нажатии "Отправить" качает PHP файл
Сделал форму обратной связи и при нажатии &quot;Отправить&quot; качает PHP файл, в чем загвоздка??? ...

форма "отправить заявку"
Здравствуйте. На сайте нужно сделать форму &quot;отправить заявку&quot;, нашёл шаблон, отдельно нашёл...

Не срабатывает скрипт при нажатии "Отправить"
Приветствую! Помогите пожлауйста разобраться! Есть сайт, на нём форма контактов. Вот код: &lt;html&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.