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

xoxol4uk22
На сайте с 14.11.2017
Offline
66
352

Помогите, пожалуйста, подправить 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 скрипт (для этого и нужно сообщение ОК), который позволяет странице не перегружаться... А у меня весь день после моих попыток поправить пхп страница перегружается и выводит сообщение ОК на белом фоне((

IL
На сайте с 20.04.2007
Offline
435
#1
xoxol4uk22:
прописывать им почту вручную (в кавычках это делал), но почта не отправляется:

Там, если почта не отправляется должна подсказка вывалиться... По ней определить, что именно не так.. Это если желание разбираться есть.

А если результат нужен - проще "занедорого" обратиться на бирже фриланса, в разделе платных услуг.. или просто к знакомому специалисту..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
samimages
На сайте с 31.05.2009
Offline
427
#2
xoxol4uk22:
А оно не отправляет...

вот ведь

xoxol4uk22, дык а чего происходит то?

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

...ну и дальше в том же духе

Опыт как иммунитет — приобретается в муках! Хостинг: экономия до 1300 руб + домен в подарок ( https://clck.ru/XLscf ) / Аудит семантики от 15К [долго] - ЛС
xoxol4uk22
На сайте с 14.11.2017
Offline
66
#3
samimages:
вот ведь

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

...ну и дальше в том же духе

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

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

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

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

IL
На сайте с 20.04.2007
Offline
435
#4
xoxol4uk22:
А скрипт должен реагировать на этот результат и выводить сообщение на изначальной странице...

Попробуйте F12 - инструменты разработчика включить.

Посмотреть, что падает в консоль и что в результате работы PHP-скрипта выводится на вкладке Network.

Удачи

xoxol4uk22
На сайте с 14.11.2017
Offline
66
#5
ivan-lev:
Попробуйте F12 - инструменты разработчика включить.
Посмотреть, что падает в консоль и что в результате работы PHP-скрипта выводится на вкладке Network.

Удачи

Да, проблему я так и нашел. Спасибо.

Дело в том, что к js приходил ответ "OK ", т.е. с пробелом в конце. Не понятно, откуда там он вообще брался, но функция была настроена на проверку без пробела... Теперь все заработало)

IL
На сайте с 20.04.2007
Offline
435
#6
xoxol4uk22:
с пробелом в конце. Не понятно, откуда там он вообще брался

Отсюда:

ME
На сайте с 03.07.2017
Offline
66
#7

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

Это не просто так прописано в PSR

xoxol4uk22
На сайте с 14.11.2017
Offline
66
#8
ivan-lev:
Отсюда:

Действительно, проблема была в закрывающем теге... Никогда бы не догадался))

Спасибо большое)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий