Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 18.09.2019, 00:03   #1
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

По умолчанию Подправить форму обратной связи, чтобы брало phone, а не email

Помогите, пожалуйста, подправить php скрипт для отправки данных через форму обратной связи. Я ее переделал под форму заказа и сам скрипт не могу довести до ума((
Изначально форма хтмл была вот такой:
Код:
<p><input type="text" name="name" id="author" placeholder="Имя" required> </p>
	<p><input type="email" name="email" id="email" placeholder="E-mail" required> </p>
	<p><input type="text" name="sub" id="url" placeholder="Тема"> <label for="url"></p>
	<p><textarea name="message" cols="1" rows="10" id="comment" placeholder="Текст сообщения" required></textarea></p>
	<p><button type="submit" id="submit" class="go">Отправить сообщение</button></p>
Я сделал из нее такую (вместо email поставил phone, а также выбросил тему сообщения):
Код:
<input type="text" name="name" id="author" placeholder="Ваше Ф.И.О." required>
<input type="phone" name="phone" id="phone" placeholder="Телефон" required>
<textarea rows="2" name="message" id="comment" placeholder="Комментарий к заказу (не обязательно)"></textarea>
<button type="submit" id="submit" class="go">Оформить</button>
Но не могу поправить сам вот этот скрипт обработки. Пробовал выбрасывать переменные с emale, прописывать им почту вручную (в кавычках это делал), но почта не отправляется:
Код:
<?php
$post = (!empty($_POST)) ? true : false;
if($post) {
	$email = $_POST['email'];
	$name = $_POST['name'];
	$email = $_POST['email'];
	$sub = $_POST["sub"];
	$message = $_POST['message'];
	$error = '';
	if(!$name) {$error .= 'Имя. ';}
	if(!$email) {$error .= 'Почта. ';}
	if(!$sub) {$error .= 'Тема. ';}
	if(!$message || strlen($message) < 1) {$error .= 'Текст сообщения. ';}
	if(!$error) {
		$address = "mymail@gmail.com";
		$mes = "Имя: ".$name."\n\nТема: " .$sub."\n\nСообщение: ".$message."\n\n";
		$send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
		if($send) {echo 'OK';}
	}
	else {echo '<div class="err">'.$error.'</div>';}
}
?>
Буквально весь день убил(( А оно не отправляет... У меня есть другой скрипт на пхп, который должен бы работать, но хочу именно этот, так как к нему еще идет js скрипт (для этого и нужно сообщение ОК), который позволяет странице не перегружаться... А у меня весь день после моих попыток поправить пхп страница перегружается и выводит сообщение ОК на белом фоне((
xoxol4uk22 вне форума   Ответить с цитированием

Реклама
Старый 18.09.2019, 00:17   #2
ivan-lev
Академик
 
Регистрация: 20.04.2007
Сообщений: 4,170
Репутация: 910383

По умолчанию Re: Подправить форму обратной связи, чтобы брало phone, а не email

Цитата:
Сообщение от xoxol4uk22 Посмотреть сообщение
прописывать им почту вручную (в кавычках это делал), но почта не отправляется:
Там, если почта не отправляется должна подсказка вывалиться... По ней определить, что именно не так.. Это если желание разбираться есть.

А если результат нужен - проще "занедорого" обратиться на бирже фриланса, в разделе платных услуг.. или просто к знакомому специалисту..
__________________
.. :)
ivan-lev вне форума   Ответить с цитированием
Сказали спасибо:
Старый 18.09.2019, 00:17   #3
samimages
Академик
 
Аватар для samimages
 
Регистрация: 31.05.2009
Адрес: Тверь
Сообщений: 4,919
Репутация: 643522

По умолчанию Re: Подправить форму обратной связи, чтобы брало phone, а не email

Цитата:
Сообщение от xoxol4uk22 Посмотреть сообщение
А оно не отправляет...
вот ведь

xoxol4uk22, дык а чего происходит то?
Вы из формы name="email" удалили, а if(!$email) {$error .= 'Почта. ';} проверку на ошибку оставили, ну и соответственно if(!$error) { фиг вам а не письмо

...ну и дальше в том же духе
__________________
Опыт как иммунитет — приобретается в муках!
Хостинг: 5Гб SSD [Россия] - 118 руб/мес + домен и SSL в подарок
Аудит семантики от 15К [долго] - ЛС
samimages вне форума   Ответить с цитированием
Сказали спасибо:
Старый 18.09.2019, 00:46   #4
xoxol4uk22
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

ТопикСтартер Re: Подправить форму обратной связи, чтобы брало phone, а не email

Цитата:
Сообщение от samimages Посмотреть сообщение
вот ведь

xoxol4uk22, дык а чего происходит то?
Вы из формы name="email" удалили, а if(!$email) {$error .= 'Почта. ';} проверку на ошибку оставили, ну и соответственно if(!$error) { фиг вам а не письмо

...ну и дальше в том же духе
Не-не... Это я привел изначальный вид скрипта (до своих правок). На самом деле все я удалял – проверку на ошибку, вместо переменной email прописывал phone, пытался вручную прописать email без получения с переменной... но видимо что-то делал не так.
Вот не пойму, почему в скрипте дважды получают переменную email одинаковой стройкой (строка 4 и 6)? Это ошибка разработчика или в этом какой-то смысл есть?

---------- Добавлено 17.09.2019 в 23:58 ----------

Все, вроде частично продвинулся. Письма приходят. Теперь только не срабатывает почему-то и дальше js скрипт и страница перезагружается со словом ОК... А скрипт должен реагировать на этот результат и выводить сообщение на изначальной странице... Но этому уже другая история...

Последний раз редактировалось xoxol4uk22; 18.09.2019 в 01:01..
xoxol4uk22 вне форума   Ответить с цитированием
Старый 18.09.2019, 01:06   #5
ivan-lev
Академик
 
Регистрация: 20.04.2007
Сообщений: 4,170
Репутация: 910383

По умолчанию Re: Подправить форму обратной связи, чтобы брало phone, а не email

Цитата:
Сообщение от xoxol4uk22 Посмотреть сообщение
А скрипт должен реагировать на этот результат и выводить сообщение на изначальной странице...
Попробуйте F12 - инструменты разработчика включить.
Посмотреть, что падает в консоль и что в результате работы PHP-скрипта выводится на вкладке Network.

Удачи
ivan-lev вне форума   Ответить с цитированием
Сказали спасибо:
Старый 18.09.2019, 11:48   #6
xoxol4uk22
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

ТопикСтартер Re: Подправить форму обратной связи, чтобы брало phone, а не email

Цитата:
Сообщение от ivan-lev Посмотреть сообщение
Попробуйте F12 - инструменты разработчика включить.
Посмотреть, что падает в консоль и что в результате работы PHP-скрипта выводится на вкладке Network.

Удачи
Да, проблему я так и нашел. Спасибо.
Дело в том, что к js приходил ответ "OK ", т.е. с пробелом в конце. Не понятно, откуда там он вообще брался, но функция была настроена на проверку без пробела... Теперь все заработало)
xoxol4uk22 вне форума   Ответить с цитированием
Старый 18.09.2019, 12:13   #7
ivan-lev
Академик
 
Регистрация: 20.04.2007
Сообщений: 4,170
Репутация: 910383

По умолчанию Re: Подправить форму обратной связи, чтобы брало phone, а не email

Цитата:
Сообщение от xoxol4uk22 Посмотреть сообщение
с пробелом в конце. Не понятно, откуда там он вообще брался
Отсюда:
ivan-lev вне форума   Ответить с цитированием
Сказали спасибо 3 пользователей:
Старый 18.09.2019, 12:31   #8
MkrtElion
Профессор
 
Регистрация: 03.07.2017
Сообщений: 584
Репутация: 35769

По умолчанию Re: Подправить форму обратной связи, чтобы брало phone, а не email

Никогда. Слышите? Никогда не ставите закрывающий php тег (?>) если в файле у вас только php и нет разметки.

Это не просто так прописано в PSR
MkrtElion вне форума   Ответить с цитированием
Сказали спасибо:
Старый 18.09.2019, 13:47   #9
xoxol4uk22
Кандидат наук
 
Аватар для xoxol4uk22
 
Регистрация: 14.11.2017
Сообщений: 374
Репутация: 34464

ТопикСтартер Re: Подправить форму обратной связи, чтобы брало phone, а не email

Цитата:
Сообщение от ivan-lev Посмотреть сообщение
Отсюда:
Действительно, проблема была в закрывающем теге... Никогда бы не догадался))
Спасибо большое)
xoxol4uk22 вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны