Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
#1

Форма отправки почты без перезагрузки страницы - PHP

22.12.2017, 12:49. Просмотров 377. Ответов 19
Метки нет (Все метки)

Помогите сделать так, чтоб моя форма обрабатывалась безе перезагрузки странички. Заранее благодарен. Вот мои коды из штмл и пшп

PHPHTML
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<form action="" method="post">
<p>Введіть своє ім'я:<br>
<input type="text" name="name"></p>
<p>Введіть свій email:<br>
<input type="text" name="email"></p>
<p>Введіть текст повідомлення:<br>
<textarea name="message" cols="40" rows="5" ></textarea>
</p>
<p>Введіть числа: <br>
<?php 
$i=1;
do
{
$num[$i] = mt_rand(0,9);
echo "<img src='img/".$num[$i].".gif' border='0' align='bottom' vspace='5px'>";
$i++;
}
while ($i<5);
$captcha = $num[1].$num[2].$num[3].$num[4];
?>
<input name="captcha" type="hidden" value="<?php echo $captcha ;?>">
<input name="pr" style=" margin-bottom:11px" type="text" size="6" maxlength="4"></p>
<p><input type="submit" class="bt1" value="Відправити повідомлення"></p>
 
 
<?php
/* Проверяем существуют ли переменные, которые передала форма обратной связи. 
Если не существуют, то мы их создаем.
Если форма передала пустые значения мы их удаляем */
if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') {unset($email);}}
if (isset($_POST['message'])) {$message = $_POST['message']; if ($message == '') {unset($message);}}
if (isset($_POST['pr'])){$pr = $_POST['pr']; if ($pr == '') {unset($pr);}}
if (isset($_POST['captcha'])){$captcha = $_POST['captcha'];}
 
 
 
/* Проверяем заполнены ли все поля */
if (isset($name) && isset($email) && isset($message) && isset($pr))
{
 
/* Убираем все лишние пробелы, а также преобразуем все теги HTML в символы*/
$name = htmlspecialchars(trim($name));
$email = htmlspecialchars(trim($email));
$message = htmlspecialchars(trim($message));
 
/* Проверяем правильность ввода email-адреса */
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{
echo "<p>Невірний формат e-mail адреси!</p>";
}
 
/* Проверяем правильность ввода капчи */
if ($captcha == $pr)
{
/* Формируем сообщение */
$address = "maxwellpost82@gmail.com";
$sub = "Повідомлення з xlib.vn.ua!!!";
$mes = "Автор: $name \nE-mail відправника: $email \nТекст листа: \n$message";
 
/* Отправка сообщения */
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");
if ($verify == 'true')
{
echo "Дякуємо! Ваше повідомлення відправлено";
}
else 
{
echo "Ваше повідомлення не відправлено!";
}
}
else
{
echo "Ви не вірно ввели числа";
}
}
else
 
?>
 
</form>

http://www.cyberforum.ru/php/thread809944.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2017, 12:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Форма отправки почты без перезагрузки страницы (PHP):

Обновление select без перезагрузки страницы
Здравствуйте. Подскажите что дописать на js что бы обновление данных из php...

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

Отправка данных без перезагрузки страницы
как сделать отправку данных с формы ,без перезагрузки страницы,знаю это...

Процесс загрузки цикла без перезагрузки страницы
В общем, написал Mail Bomber. index.php: &lt;html&gt; &lt;head&gt; &lt;title&gt;Online Mail...

Как поменять текст без перезагрузки всей страницы?
Как при нажатии на строку ссылки прочитать из базы mysql ее цвет и поменять...

19
Jodah
Эксперт PHP
2704 / 2376 / 1013
Регистрация: 01.08.2012
Сообщений: 8,405
22.12.2017, 13:17 #2
https://ruseller.com/lessons.php?id=1452&rub=32
0
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
27.12.2017, 16:53  [ТС] #3
Я мало что понимаю в пшп и джава. Можете помочь написать код?
0
atanov
174 / 173 / 71
Регистрация: 26.05.2016
Сообщений: 1,123
27.12.2017, 17:36 #4
а чем Вам не нравиться существующий вариант? Чем вызвана необходимость оставаться без перезагрузки?
0
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
04.01.2018, 09:41  [ТС] #5
В таком случае бросает на шапку сайта и не понятно что произошло. Отправилось сообщение или нет и т.д.
0
atanov
174 / 173 / 71
Регистрация: 26.05.2016
Сообщений: 1,123
04.01.2018, 12:11 #6
Сомнения у меня в Вашем скрипте. Капча какая-то ... не такая. Для чего этот скипт предназначен?
0
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
05.01.2018, 12:02  [ТС] #7
Для защиты от спамеров. Все устраивает в этой форме, вот бы только без перезагрузки
0
atanov
174 / 173 / 71
Регистрация: 26.05.2016
Сообщений: 1,123
05.01.2018, 12:48 #8
Дело в том, что все, что должно передаваться на сервер, проверяется на сервере. Это наверное лучше, нежели проверять на клиенте, где у продвинутого пользователя с нехорошими намерениями, появляется возможность манипулирования.

В любом случае Ваш скрипт ведь для авторизации на сервере, проверочная часть скрипта начинается со строки 26. В первой строке form action="" пусто, здесь должно быть имя файла ***.php, куда надо поместить часть скрипта со строки 26.
0
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
05.01.2018, 13:25  [ТС] #9
Если я вынесу пшп код в отдельный файл, то страничка сайта перезагружаться не будет?
0
BuPy7
Нет ТЗ - давай досвидания
741 / 371 / 64
Регистрация: 01.12.2011
Сообщений: 2,245
05.01.2018, 14:29 #10
trostyanets, почитайте про сессии. В хранилище сессии можно добавить значение и через него проверять было ли отправлено сообщение. Если было, то отобразить сообщение для пользователя.
0
atanov
174 / 173 / 71
Регистрация: 26.05.2016
Сообщений: 1,123
05.01.2018, 14:30 #11
Будет. Вы отправляете на сервер данные формы. Скрипт на сервере обрабатывает эти данные и в том числе проверяет. Что должно дальше делаться зависит от необходимости и фантазии разработчика. Вам что нужно, чтобы делал скрипт?
0
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
05.01.2018, 15:15  [ТС] #12
Мне нужно чтоб скрип делал то что и сейчас. Мне нужно чтоб после работы скрипта страничка не перезагружалась. Так как перезагрузка меня бросает в самый верх сайта и я не вижу сообщений, которые выводятся после удачной или неудачной операции скрипта.
0
BuPy7
Нет ТЗ - давай досвидания
741 / 371 / 64
Регистрация: 01.12.2011
Сообщений: 2,245
05.01.2018, 15:16 #13
trostyanets, ну дык перемести обратно через якорь.
0
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
05.01.2018, 15:18  [ТС] #14
Как? Я ноль в пшп, можете написать пример вставки якоря в код?
0
BuPy7
Нет ТЗ - давай досвидания
741 / 371 / 64
Регистрация: 01.12.2011
Сообщений: 2,245
05.01.2018, 15:19 #15
trostyanets, это html. Гугли: якорь html.
0
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
05.01.2018, 15:22  [ТС] #16
как в штмл ставить якорь я знаю, а ставить этот якорь куда?
0
BuPy7
Нет ТЗ - давай досвидания
741 / 371 / 64
Регистрация: 01.12.2011
Сообщений: 2,245
05.01.2018, 15:25 #17
trostyanets, в фрагмент реквеста. Например:
Код
example.php#my-anchor
1
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
09.01.2018, 09:53  [ТС] #18
Спасибо! Попробовал, уже лучше. А как сделать чтоб переход на анкор был почти мгновенный, чтоб не очень было бы заметно глазу что страничка перегружалась?
0
jasper-blondin
26 / 26 / 10
Регистрация: 19.06.2014
Сообщений: 153
10.01.2018, 14:22 #19
Первую строку скрипта замените на:
HTML5
1
<form action="index.php#aform" method="post" id="aform">
Здесь index.php -- это название файла страницы. Если у Вас другое название, подставьте свое.
1
trostyanets
0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 10
11.01.2018, 09:52  [ТС] #20
Спасибо, вроде немного быстрее чем было
0
11.01.2018, 09:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2018, 09:52
Привет! Вот еще темы с решениями:

Пересчет корзины с товарами без перезагрузки страницы, используя AJAX
Читаю, читаю, читаю об этом - честно, не понимаю. Спрошу на конкретном примере:...

Не получается сделать подгрузку без перезагрузки страницы. Ошибка: Fatal error: Call to undefined function
Всем привет. Ни как не получается разобраться. Всё пытаюсь сделать обновление...

PHP Скрипт для отправки почты
Админ ПОМОГИ У меня PHP скрипт для отправки письма на почту заборохлил Он...

PHP Скрипты для отправки почты с вложением
ПРИВЕТ! мне очень нужен скрипт для отправки почты на несколько адресов с...


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

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

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