Скрипт "Заказать обратный звонок для сайта" | PHP

Пример: .

Здесь сделано модальное окно и реализована простая функция php mail.

На HTML страницу добавляем

<style>
#mail {visibility: hidden;}
#mail:checked ~ #popup form {visibility: visible;}
#mail:checked + label {
  position: fixed;
  top: 0; left: 0; bottom: 0; right: 0;
  z-index: 99;
  color: rgba(0,0,0,0);
  background: rgba(180,180,180,.9);
  cursor: pointer;
}
#popup {
  visibility: hidden;
  position: fixed;
  top: 0; left: 0; bottom: 0; right: 0;
  z-index: 100;
}
#popup form {
  position: absolute;
  top: 50%; left: 50%;
  -ms-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);
  padding: .5% 1% 1%;
  border: 1px solid rgb(100,100,100);
  font-size: 140%;
  font-weight: 600;
  text-align: right;
  text-shadow: -1px -1px #666;
  color: rgb(240,240,240);
  background: rgb(150,150,150) linear-gradient(rgb(100,100,100), rgb(170,170,170));
}
#popup div:nth-of-type(1) {padding-top: 3%;}
#popup div:nth-last-of-type(1) {padding: 1% 0 4%;}
#popup div:after {
  content: attr(data-title);
  display: block;
  font-size: 70%;
  font-weight: normal;
  text-shadow: none;
}
#popup input {font-size: 90%;}
#popup [type='submit'] {cursor: pointer;}
#popup label:hover {
  color: #dbeaf9;
  cursor: pointer;
}
</style>

<input type="checkbox" id="mail"/><label for="mail">заказать звонок</label> <!-- Для того, чтобы label шёл не сразу после input, нужно менять немного селекторы: ссылка1, ссылка2 -->

<div id="popup">
<form method="post" action="mail.php">
<label for="mail" title="Отменить">✕</label>
<div data-title="Например, Мария Петровна">Ваше имя: <input type='text' name='name' required /></div>
<div data-title="Например, 89270000000">Моб. телефон: <input type="tel" name='tel' required maxlength="11" value='8' pattern="8\d{10}"/></div>
<input type='submit' value='Заказать'/>
</form>
</div>

Создаём файл mail.php, куда вставляем

<?
if($_POST['name']){ // заносим в массив значение полей, их может быть больше
  $znach = array(
    1 => $_POST['name'],
    2 => $_POST['tel'],
  );
  mail("name@yandex.ru", "заказ звонка  ".$_SERVER['HTTP_REFERER'], $znach[2]." ".$znach[1]); // письмо на свой электронный ящик, измените на свой email
}
Header("Refresh: 8; URL=".$_SERVER['HTTP_REFERER']); // спустя 8 секунд человек будет возвращён на предыдущий URL
?>

<!DOCTYPE html>
<title><? print "$znach[1], данные успешно отправлены!"; ?></title>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<meta name="robots" content="noindex"/>
<style>
body {background: rgba(180,180,180,.9);}
body > div {
  position: absolute;
  top: 50%; left: 50%;
  -ms-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);
  padding: .5% 1% 1%;
  border: 1px solid rgb(100,100,100);
  font-size: 140%;
  font-weight: 600;
  text-align: right;
  text-shadow: -1px -1px #666;
  color: rgb(240,240,240);
  background: rgb(150,150,150) linear-gradient(rgb(100,100,100), rgb(170,170,170));
}
label:hover {
  color: #dbeaf9;
  cursor: pointer;
}
body > div > div {padding-top: 3%;}
</style>

<div>
<label title="Продолжить">✕</label>
<div><? print "$znach[1]"; ?>, Ваша заявка получена!<br>
Мы позвоним Вам в течении часа.</div>
</div>

<script> // нажав на label посетитель вернётся на предыдущую страницу, где заполнял форму
document.getElementsByTagName('label')[0].onclick = function() {
  window.location.href="<? print $_SERVER['HTTP_REFERER']; ?>"
}
</script>

Я постаралась употребить как можно меньше кода и у меня это получилось. Вам остаётся подогнать форму под свой дизайн.

в f t
наверх ↑

133 комментария:

Космо Мизраил Горыныч
Шаг за шагом - и мы создадим свой блоговый движок хд

К сожалению, не смотря на то, что с HTML знаком аж с 6 лет, в PHP полный нолик. Поводов изучить особо не было.

Советую не делать всё на одном CSS. В целом, тут самые универсальные селекторы, но повесить событие на кнопку всё-таки надо на всякий случай.

Скрыть при щелчке (хтмл атрибут):
onclick="document.getElementById('айдишник элемента').style.display = 'none';"

Показать:
onclick="document.getElementById('айдишник элемента').style.display = 'block';"
NMitra
Движок вряд ли, но визитку сделаем :)

Можно, но мне лень заниматься тем, что уже через пару лет неактуально будет. :checked понимают даже мобильные сайты
Космо Мизраил Горыныч
Наташа, скрипты изучай!!! А лень - самый страшный порок! Ну, после само- и просто убийства.
Ну и что, что с CSS можно сделать вариант модального окна без скриптов, всё равно это останется на уровне велосипедов, и функционал минимальный.

- - - - - - - - - - - - - - - - - - - - - -

Ко всем кнопкам вешай свойство cursor: pointer; , так курсор будет меняться при наведении и будет лучше ясно, что это кнопка, а не декорация. Поведенческий фактор х)

- - - - - - - - - - - - - - - - - - - - - -

А движок блога и просто CMS нетрудно будет сделать =.= придётся немного mySQL изучить, но человеческие мозги - понятие растяжимое.
Давай ты сделаешь техническую начинку, а я сделаю лучшую скриптовую часть админки и виджетов с визуальными редакторами и асинхронностью?) Оформление пополам XD
NMitra
Конечно, что не могу сделать с помощью CSS, я иду искать в JavaScript. Что не могу в JavaScript - в PHP. Я тогда удивлена, почему зная JavaScript, ты не разбираешься в PHP. Там почти всё аналогично.

Таких движков достаточно :) Да, для конкретного сайта это имеет место быть, а для массы не вижу смысла.
Михаил70
Большой код очень. Это проблема для не спецов, вставить такой код. А зачем этот обратный звонок. Не проще ли просто указать номер телефона, а заказать услугу по mailto:, через обратную почтовую связь, на ящик. Я видел множество этих обратных звонков на визитках для бизнеса, они вообще то не работают, то есть проще написать на ящик или просто позвонить по указанному номеру. Но это всего лишь мое мнение.
Михаил70
Проще указать mailto: с краткой рекомендацией по поводу вопроса. Клиент напишет и укажет свой номер телефонный, если захочет.
NMitra
Это для коммерческих сайтов. Человек не очень охотно выдает свои личные данные, а тут всего два поля нужно заполнить. Во-вторых, звонок на сотовый у многих компаний бесплатен. Пусть минимальная, но выгода.
Анонимный
123
Анонимный
Все работает отлично, но проблема с кодировкой. Русский текст приходит на почту в таком виде: п÷п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▄.
На почту яндекса в нормальном виде.
NMitra
Пришли к такому варианту

<?
 if($_POST['name']){
  $znach = array(
    1 => $_POST['name'],
    2 => $_POST['tel'],
  );
    $to = "name@mail.ru";
    $subject = "=?utf-8?B?".base64_encode("заказ звонка ".$_SERVER['HTTP_REFERER'])."?=";
    $headers = "Content-type: text/html; charset=utf-8 \r\n";
    $message = $znach[2]." ".$znach[1];
    mail($to, $subject, $message, $headers);
 }
 Header("Refresh: 8; URL=".$_SERVER['HTTP_REFERER']);
?>
Анонимный
Спасибо большое! Осилил))) Теперь красуется на сайте. Кому интересно, милости прошу ) www.enoantlife.ru
По началу не хотел отображать кнопку ЗАКАЗАТЬ. Вместо неё была тонкая короткая полоска.
Решил так:
Заменил < input type='submit' value='Заказать'/> на
< buttоn type='submit'>< H3 >Заказать

И еще попутно вопрос. Может кто знает в чем проблема. На моем втором сайте (клоне) эноант.рф этот скрипт не работает. Т.е все как положено появляется, форму заполняю, жму ЗАКАЗАТЬ - сообщение о том что перезвоним появляется. НО письма не долетают. Хостинг один и тот же на обоих сайтах.
NMitra
Хорошо получилось. В самом простом наверно опечатались, например, свой адрес эл. почты проверьте.
Анонимный
В том то и дело, что оба сайта являются зеркалами друг друга и хостятся в одном хостинге , зарегистрированы в одном профиле. Я нашел в mail.php строчку, где прописывается ящик получателя. Он остался таким же, как и ящик на который приходят письма с первого сайта. Может дело в том, что домен на русском языке?
NMitra
Я тестировала на рф домене, было без проволочек.
Анонимный
Наташа, пожалуйста подскажите. Можно ли на одной странице в трех местах поместить "обратный звонок"?. Вверху в виде кнопки а в двух других местах в виде форм данных. Буду ждать ответа....
NMitra
Можно. Размещайте несколько <label for="mail">заказать звонок</label>
NMitra
Вместо
#mail:checked + label {
нужно
#mail:checked ~ label {

И смотреть весь код на странице. Теория
http://shpargalkablog.ru/2011/10/css-selectors.html
http://shpargalkablog.ru/2013/08/checked.html
http://shpargalkablog.ru/2011/08/kak-ispolzovat-css.html
Анонимный
Благодарю Вас.Пошла внедрять....
Анонимный
Почему то ругается на формат телефона....
NMitra
Уберите maxlength="11" и pattern="8\d{10}" или укажите свой формат
Анонимный
Спасибо
Анонимный
Пользуюсь отличным бесплатным скриптом обратного звонка от http://consultant-web.ru/callme/
Анонимный
Здравствуйте, Наталья!
Подскажите, пожалуйста, где создать и куда разместить файл mail.php?
Огромное спасибо за Ваш блог и массу полезной информации!!!
Татьяна
NMitra
Здравствуйте, эммм... Даже не знаю как и пояснить. На хостинг, на котором находится сайт,
Анонимный
Наталья, спасибо за ответ.
Мой блог на гугл блоггер и к личному домену пока не подключен. Но блоггер же не поддерживает php? Будет работать, если файл загрузить на Google Disc?
Извините за большое количество вопросов. Заранее спасибо.
Татьяна
NMitra
Нет, Blogger не поддерживает PHP. Говорят, что скоро будет похожий гаджет.
Tania Fujinaga
Спасибо, Наталья!
Анонимный
А где создавать файл mail.php на сайте не пойму, везде кидаю
NMitra
Туда где файл index.php и htaccess
Анонимный
Большое спасибо за скрипт! Отлично работает на хостинге
NMitra
Благодарствую за комментарий
Марина
Доброй ночи Наташа! Спасибо за ваш труд.
Все сделала как описано
Создала файл mail.php - залила его в корневую папку на хостинг
Все отлично открывается и проявлется
НО! Письма на почту ( с указанныи E-mail) Не приходят. Перебрасывает на страницу с надписью "Запрошенный ресурс не доступен"
Подскажите пожалуйста в чем может быть проблема?
Спасибо!
NMitra
Марина, здравствуйте. Можно узнать адрес вашего сайта?
Марина
Добрый день!
Наташа, с ( давнего) вашего позволения написала на вашу почту личку.
Очень надеюсь на ответ. Спасибо большое, что как всегда не отказали в помощи.
Марина
Наташа! Вы гений))))))))))))
Все получилось, добавила по совету driver http://dbmast.ru/
полный адрес mail.php
Огромное Вам Спасибо за помощь, советы и ваш труд!!!

Марина.
Марина
Добрый день Наташа!
Все проблемы с отправкой и кодировкой - РЕШЕНЫ!
Проблема была у хостинга ( их настойки)
СПАСИБО большое за вашу помощь и ваш труд! Вы делаете неоценимое дело для людей, которые еще не все знают о создании сайтов и всех примыкающих к этому функций!
С Уважением, Марина.
Марина
Доброй ночи! Наташа, в письме админу данные из письма (заказать звонок) проявляются вот так
81111111111sa@yandex.ru Администратор ( т е в одну строчку слитно)
Подскажите пожалуйста, как сделать, чтобы данные выводились каждая на новой строке
81111111111
sa@yandex.ru
Администратор
Я искала по учебникам знак пробела в php, но ничего не проходит
Спасибо!
NMitra
Перенос строки - это \n
То есть вместо
$znach[2]." ".$znach[1]
нужно
$znach[2]."\n".$znach[1]
NMitra
В php соединение переменных с текстом происходит с помощью точки. То есть можно написать и так
$znach[2]."\nФИО: ".$znach[1]
Марина
Доброе утро! Спасибо за ответ. Наташа, не проходит
сделала вот так $message = $znach[2]."\n".$znach[3]."\n".$znach[1];
в письме отобразилось с пробелами, но не на отдельной сточке
sa@yandex.ru 89999999999 Администратор Ирина
В чем может быть ошибка?
И еще
В строчке < title >< /title > выдает ошибку, через перевод пишет, что PHP Предупреждение: Не удается изменить информацию в заголовке - заголовки уже прислал (выход начался в / главная / м /
xxxx / xxxxx.ru / public_html / почты / почте. PHP: 1) в / главная / м / xxxx /xxxxx.ru / public_html / почты / mail.php в строке 14
Спасибо!
Марина
Блин, скрипт не выводится у вас
В строчке после DOCTYPE html (наверное вам понятно про что я говорю)
NMitra
Код сначала преобразуйте http://shpargalkablog.ru/2010/12/napisat-kod-tekstom.html

Попробуйте вместо "\n" использовать
<br>

"Не удается изменить информацию в заголовке - заголовки уже прислал" - эх, не понимаю что это и как исправить
NMitra
<br> тоже в кавычках "<br>"
Марина
Ой Спасибо Наташа!!!
Про заголовки напишу на почту, может и вам это пригодится.
))))))))))) Еще вопрос.
Хочу добавить доп поле в форму и нужно позицию Название (товара например)
сделала name и ))))) выдало и имя и название одинаково. Подскажите пожалуйста как правильно прописать
в 1 => $_POST['name'],

а может у вас ссылочка есть на этот материал ( именно как прописывать позиции )
СПАСИБО!!!











NMitra
<div data-title="Например, Мария Петровна">Ваше имя: <input type='text' name='name' required /></div>
заменить на
<div data-title="Например, Мария Петровна">Ваше имя: <input type='text' name='name' required /></div>
<div data-title="Например, самовар">Название товара: <input type='text' name='catalog' required /></div>

В скрипте
$znach = array(
1 => $_POST['name'],
2 => $_POST['tel'],
);
mail("name@yandex.ru", "заказ звонка ".$_SERVER['HTTP_REFERER'], $znach[2]." ".$znach[1]); // письмо на свой электронный ящик, измените на свой email
}

заменить на

$znach = array(
1 => $_POST['name'],
2 => $_POST['tel'],
3 => $_POST['catalog'],
);
mail("name@yandex.ru", "заказ звонка ".$_SERVER['HTTP_REFERER'], $znach[2]." ".$znach[1]." ".$znach[3]);
}
NMitra
По хорошему, форма заказать звонок должна быть как можно проще. В заголовке письма указывается на URL страницы сайта, где человек воспользовался формой. С большой долей вероятности, что ему нужен будет именно этот товар.
Марина
Я у вас способная ученица)))
было два поля ( до моего сообщения вам) 1 => $_POST['name'], 2 => $_POST['tel'],
я сделала четыре 1 => $_POST['name'], 2 => $_POST['Email'], 3 => $_POST['tel'], 4 => $_POST['name'],
ведь правильно?! )))
Но не знала как прописать там, где name, Email и т д . Как прописывать значения . Вот теперь понятно - catalog
По второму совету, все правильно, именно со страницы нужного ему товара человек и будет нажимать эту ссылку
Я вашу форму немного расширила именно для использования как обратная связь. ВСЕ РАБОТАЕТ! )))
Если б вы знали, СКОЛЬКО я перелопатила информации, чтобы сделать независимую форму обратной связи. Вы ГЕНИЙ!
Минимум скрипта и стилей вашего кода и стильная форма готова.
Спасибо еще раз Наташа!
NMitra
Смотрите, каждому input присваиваем свой индивидуальный name, например, name, Email, tel. Тогда получается неправильно
1 => $_POST['name'], 2 => $_POST['Email'], 3 => $_POST['tel'], 4 => $_POST['name'],
Зачем два раза использовать одинаковый name?

Те, у кого был блог на Blogger легко осваивают код ))
Марина
А я про это и спрашивала вас, что и какие значения обозначают и как их правильно вписывать)))
Вы ответили и суть я поняла (можно устанавливать любые значения) , а здесь забыла исправить - конечно в п4 catalog как вы и сказали. Нашла в инете значения такие
Time, datetime, number, address, City, fullname, head, Region day ну и т д .
Блог на Blogger есть (неплохой), но пока сейчас в замороженном виде, так как море интересного по созданию именно сайтов. Вот сейчас осваиваю webasyst и джумлу ))) Жутко интересно, особенно когда получается)))
Сейчас пытаюсь встроить позицию с выпадающим списком (очень нужно для выбора времени заказа авто)
HtML понимаю как сделать (
<s e l e ct name=day size=1> clas s="???"> (это должен быть выпадающий список или с прокруткой)
<option value=1>10.00</option>
<option value=2>11.00</option>....</s e lect>.)
А вот как в скрипт mail добавить, чтобы список отображался, никак не доходит. Тут у меня просто заело, я должна это освоить раз саму суть понимаю.
Спасибо.
Анонимный
Наташа, доброе время суток, и спасибо Вам за такой трудный труд)
Вопрос от новичков, если терпения на них хватит) Не могу разобраться, если можно пошагово:
1) Беру любую HTML страницу со своего сайта, называю ее zvonok.html, выкидываю все из body и заливаю туда Ваш код.
2) Создаю страницу mail.php, заливаю обе страницы в корень сайта.
3) Вставляю в нужное место на сайте заказать звонок.
А как мне связать zvonok.html и mail.php? а то у меня без содержания модальное окно получается)
(на label слитно комметарий ругается))
Dmitry M
Вставляю в нужно место на сайте < label for="mail ">заказать звонок< /label >
NMitra
Марина, всё тоже самое, в скрипт включаете новую переменную
5 => $_POST['day'],

Дмитрий, доброе время суток. zvonok.html с mail.php связывается с помощью action в форме. Путь может быть прописан как абсолютный, так и относительный
<form method="post" action="mail.php">
<form method="post" action="http://shpargalkablog.ru/mail.php">

Код в комментариях пишите через форму http://shpargalkablog.ru/2010/12/napisat-kod-tekstom.html
Marina Danil
Добрый вечер Наташа! УРА! Все получилось и все работает)))
Подробности всех исправлений я вам написала на почту, надеюсь вам это пригодится для статей. Понимаю теперь очень какой это труд!
Наташенька!!! Огромное вам Спасибо за вашу помощь и ваш ТРУД!
Marina Danil
Добрый день! Наташа, это еще не все))) Одна CMS Джумла, на одном сайте проявляется форма связи на экране, а на другом, только body. Вот загадка-то, бьюсь уже вторые сутки.
??????????
NMitra
Марина, добрый день! Для того, чтобы мне понять причину, нужно загрузить эту самую CMS и смотреть что с ней не так. Для меня это просто нереально и займёт неимоверное количество времени. Попробуйте обратиться к её службе помощи или на её форум.

К слову, даже у браузеров косяков много, что говорить об CMS.
Marina Danil
Наташа! Вы опять правы! Самое главное - ВНИМАНИЕ и НАСТРОЙКИ!
Подробности на почту. Спасибо еще раз!
С Уважением, Марина.
Marina Danil
Доброе утро! Ай нет! Не виноватая я))) Жесть! Моей ошибки не оказалось, вносила в окно редактора я все верно, оказалась на хостинге был не включен какой-то опен...Я так и не поняла, что за зверь такой. А вот редактор JCE - гадит постоянно. То теги режет, то символы переводит в козябры или буквы, то вообще переставляет местами теги...
Так что, Наташа, вот такой опыт)))
NMitra
Привет! Нормальный опыт. А я вот никак не одолею Opera Mini. Никак тот по моим правилам да и по правилам w3.org играть не хочет :((
Marina Danil
Вечер добрый! Обидно конечно. А я вот тоже столкнулась сейчас с Оперой, Мазилой (именно Мазилой) и IE. Эти черти тоже никак не хотят правильно отображать градиентный фон на css. Добавила filter: progid:DXImageTransform.Microsoft.gradient --- в IE отображается, но не так как надо ( цветовая палитра), а в Мазиле вообще ноль, прозрачный фон. Вот сижу и бьюсь)))
Marina Danil
Добрый день Наташа! Наверное без вашей помощи не обойтись)))
Пошла дальше с почтой. Хочу, чтобы в обратном письме админу данные приходили в виде таблицы (css не проблема, настрою).
-----------начало-------------
12 => $_POST['time_to'],
13 => $_POST['min_to'],
);

$to = "xxxxxx8@mail.ru";
$subject = "=?utf-8?B?".base64_encode("Заказ звонка".$_SERVER['HTTP_REFERER'])."?=";
$headers = "Content-type: text/html; charset=utf-8 \r\n";
$message = $znach[1]. $znach[2]. $znach[3]. $znach[4]. $znach[5]. $znach[6]. $znach[7]. $znach[8]. $znach[9]. $znach[10]. $znach[11]. $znach[12]. $znach[13];
$subject = "Заказ звонка";

<table width='600' border='1' cellpadding='1' cellspacing='0'>
<tr>
<td>Имя заказчика</td><td>$name</td>
</tr><tr>
<td>Почтовый адрес</td><td>$Email</td>
</tr><tr>
--------------------тут код --------------------------
</tr><tr>
<td>Окончание аренды час:</td><td>$time_to</td>
</tr><tr>
<td>Окончание аренды минут:</td><td>$min_to</td>
</tr>
</table>";

mail($to, $subject, $message, $headers);
}
Header("Refresh: 8; URL=".$_SERVER['HTTP_REFERER']);
?>
Не проходит, белая страница. Перепробовала все. Никак Не подскажите где может быть ошибка? Спасибо!
NMitra
Код и текст от скрипта нужно отделять кавычками и точкой

"текст, текст, <table><tr><td>Имя заказчика<td>".$znach[1]."<tr><td>Почтовый адрес..."
Marina Danil
Спасибо Наташ, это тоже проверю, но в моем вопросе была моя ошибка, я к таблице не добавила $message
Тороплюсь, чтобы скорей получилось вот иневнимательно написала в скрипте.
Сейчас попробую как вы сказали сделать. Вы как спасательный круг))), чуть что, стразу к вам))).
Спасибо. О результатах обязательно отпишусь)))
Marina Danil
Ура! Все получилось))) Ошибки: правильно заполнять html тела письма для php (http://php.net), правильно заполнять mail.php, не торопиться )))
Ваши пояснения все учла и все получилось))) Еще раз Большое спасибо))) Марина.
Runbo
Доброго времени суток!
Подскажите пожалуйста, как заменить текст на кнопку?
NMitra
label нужно задать стили. Примерно так http://shpargalkablog.ru/2012/04/css-knopki.html Там стили преимущественно для тега a. Поэтому вместо
a.knopka {
пишите
.knopka {
Marina Danil
Доброй ночи! Наташ, увлеклась и прозевала. Теперь уже вдогонку)))
Поздравляю вас с 8 марта! С нашим, законным праздничком))) Здоровья вам и успехов. Пусть все будет и будет - ВСЕ!
Марина.
NMitra
Марин, вас тоже с праздником! Творческого полёта и всевозможных достижений, особенно на личном фронте!
Marina Danil
Наташенька))) Прям в десятку))) Спасибо большое!
Marina Danil
Добрый день Наташа! Очень нужна ваша помощь. Как можно сделать, чтобы запретить в текстовое сообщение message вставлять ссылки? Нас заспамили, а как сделать не знаю.
вот так примерно приходят сообщения каждый день
Имя заказчика StevenHak
Почтовый адрес vgqyhdy@fremails.com
Номер телефона 123456
На какой день аренда
Время начала аренды: 21
Сообщение: По моему мнению Вы не правы. Я уверен. Могу отстоять свою позицию. Пишите мне в PM, поговорим. сайт http://balsharov.ru This situation is familiar to me. Let's discuss. Википедию как показатель гуманитарной креативности нации | Блог недовольный контентом украинских новостей блог
Спасибо.
NMitra
Привет, Марин. Можно блокировать ip или email. Можно сделать поле типа 2+2=. А в php коде дать условие, что если поле равно 4, то тогда добро на отправку. То есть капчу.
Marina Danil
Спасибо большое за ответ! Но....увы, без конкретного примера я не смогу такое сделать.
Наташ, напишу в личку.
Спасибо. Марина.
Marina Danil
Наташа, добрый вечер! Вопрос решен и не только с http. Пример работы формы на тестовой странице http://tmlcompany/ru/ek
Любая из кнопок. Но вопрос остался теперь только в выводом времени аренды в более достойном виде. А так, все на ура работает.
Спасибо, что как всегда не отказали в помощи)))
Марина.
NMitra
У меня страница не загрузилась. Что в итоге сделали?
Анонимный
Зачем велосипеды изобретать, поставил бесплатный скрипт от http://consultant-web.ru/callme/
Анонимный
Наташа,помогите,пожалуйста.пытаюсь установить Обратный звонок.На страницу всё встало хорошо.НО после заполнения формы вместо "Мы Вам ответим и т.д......" На странице появляются знаки вопроса. Как с этим справиться? Спасибо заранее,Елена
NMitra
Замените символ ✕ на маленькое изображение. ✕ - это символ, который может поддерживаться не всеми браузерами http://shpargalkablog.ru/2011/03/spetsyalnye-simvoly-html.html
Алексей Савин
После нажатия кнопки зак. звонок выдаётся Ошибка 404 Страница не найдена. Что делать?
NMitra
Не может найти файл mail.php, пропишите полный путь см. http://shpargalkablog.ru/2013/01/absolute-relative-links.html
Алексей Савин
ftp://0vodada@s2000.ucoz.net/scripts/mail.php Такой путь может быть?
Алексей Савин
Такой путь ( ftp://0vodada@s2000.ucoz.net/scripts/mail.php) может быть?
Алексей Савин
Разобрался,кнопка работает, только на почту не чего не приходит(
NMitra
Смотрите комментарий 21,22 http://shpargalkablog.ru/2013/05/reviews-php.html#c7325007653763434309 , попробуйте написать службе поддержки хостера
Андрей Душенко
А у меня сначала всё ок. Потом при нажатии кнопки Заказать. Происходит такое! На самом верху с лева выходит часть PHP кода и такая надпись " ,Ваша заявка получена!
Мы позвоним Вам в течении часа." Без имени! И на почту тоже не чего не пришло. А сделал я всё во инструкции. Помогите пожалуйста срочно! Кстате вот какой код выходит. $_POST['name'], 2 => $_POST['tel'], ); mail("vlad20032003@yandex.ru", "заказ звонка ".$_SERVER['HTTP_REFERER'], $znach[2]." ".$znach[1]); // письмо на свой электронный ящик, измените на свой email } Header("Refresh: 8; URL=".$_SERVER['HTTP_REFERER']); // спустя 8 секунд человек будет возвращён на предыдущий URL ?>
Ссылка на сайт с этим вот: http://sch597dopobr.ru/p18.html
NMitra
Попробуйте написать службе поддержки хостера. Также см. комментарий 21,22 http://shpargalkablog.ru/2013/05/reviews-php.html#c7325007653763434309 и http://shpargalkablog.ru/2013/08/bell-site.html#c5279729162631215872
Андрей Душенко
Извините я вас не понел
NMitra
По-видимому, есть проблемы работы php совместно с html
Андрей Душенко
Наверное
Андрей Душенко
и что же делать?
NMitra
См. комментарии 21,22 http://shpargalkablog.ru/2013/05/reviews-php.html#c7325007653763434309 и http://shpargalkablog.ru/2013/08/bell-site.html#c5279729162631215872 или напишите своему хостеру в службу поддержки.
Андрей Душенко
В общем не и то и то не помогло
NMitra
Извините, не знаю что вам посоветовать, тут нужно решать вопрос на месте, проблема не в скрипте.
Анонимный
не уходит почта с таким оьработчиком mail("name@yandex.ru", "заказ звонка ".$_SERVER['HTTP_REFERER'], $znach[2]." ".$znach[1]); // письмо на свой электронный ящик, измените на свой email
Диана Приступа
Не приходят письма на yandex.ru
Марина
Здравствуйте Наташа ))) Простите за очень долгое молчание, но много чего было. Осталась без работы, мама попала в больницу, ну и еще и еще...
У меня к вам вопросик.
ЕСТЬ <input type="checkbox" id="mail"/><label for="mail">заказать звонок</label>
Но без самих данных
<div id="popup">
<form method="post" action="mail.php">
<label for="mail" title="Отменить">?</label>
<div data-title="Например, Мария Петровна">Ваше имя: <input type='text' name='name' required /></div>
<div data-title="Например, 89270000000">Моб. телефон: <input type="tel" name='tel' required maxlength="11" value='8' pattern="8\d{10}"/></div>
<input type='submit' value='Заказать'/>
</form>
</div>
У меня ничего не получается. Т Е Я хочу на главную поставить ТОЛЬКО кнопку Заказать звонок ( без самого кода)
Но если убираю код, то окно с формой не проявляется. Сайт в разработке, но если нужно я его для вас открою.
Что я хочу - вставить только кнопку Заказать звонок на главную стр.
Как и куда нужно залить сам код??? Или по другому - как привязать к ссылке Заказать звонок сам код?
Спасибо !!! Марина.
NMitra
Диана, всё должно работать, попробуйте прописать полный путь к файлу mail.php

Здравствуйте, Марина. Два варианта: или form иметь в теле страницы или другую страницу с формой вызывать с помощью window.open ( http://shpargalkablog.ru/2014/10/window-open-javascript.html - только начала писать ).
Марина
Спасибо Наташа! Но window.open я знаю и умею. А хочется именно со стилями. А вот сюда - <input type="checkbox" id="mail"/><label for="mail">заказать звонок</label>
никак нельзя, ну например при помощи id или action или еще как как-то привязать именно ваше окно? Ведь я скрипт добила и все теперь отлично, но вот хочется не window.open
Спасибо!
NMitra
Можно попробовать через iframe, когда ссылка загружается не в окне или вкладке, а в фрейме.
Администратор
почему не работает на http://xn--80aacdm3bhobxp.com.ua/
Администратор
почему не работает на автоломбард.com.ua ???
NMitra
Что именно не работает? Всплывающая форма или письма не приходят? Пропишите полный путь к mail.php
Марина
Наташа))) Добрый вечер! Спасибо за ваш труд. На джумле, сама CMS режет коды стилей линков и тд. Пытаюсь найти решение.
С последним вопросом так пока ничего вышло. Но уж очень хочется сделать например на отдельной странице ( и в скрытом меню) саму форму ВАШУ))) а выводить ее на страницах только с помощью одной кнопки ( не нагружая страницу). А то у меня сейчас вот на этом сайте http://libostrov.ru на Главной справа наверху красная кнопка. А если посмотреть код страницы, то просто жуть.Вся форма на главной, а там и так много чего))) Сайт еще в яндекс не отдала, поэтому очень жду вашего ответа.
Может кроме iframe что-то придумаете)))))) Посмотрите пожалуйста на сайте. Очень хочется компактнее сделать на главной.Спасибо большое!
NMitra
Добрый вечер! Ай-ай, не следите за публикациями :)) Специально для вашей ситуации написала http://shpargalkablog.ru/2014/10/window-open-javascript.html#popup
Марина
Наташечка))) Спасибо большое))) Бегу!
Марина
Ничего у меня не вышло((( Добрый день Наташа!
Буду использовать как есть. Спасибо большое!
Даниил
Подскажите как вызвать форму с помощью button а не checkbox и как закрыть форму кнопкой Esc
NMitra
Даниил, нужно скрипт подключать http://jsfiddle.net/NMitra/33fy8nk0/
Андрей
Здравствуйте, а можно файл mail.php залить не в корень сайта, а в какую нибудь другую папку сайта? просто на облочных сайтах umi.cms нет доступа к корню сайта. И где в коде поменять путь к этому файлу? простите я в этом деле не особо знаю.
NMitra
Здравствуйте, в action пропишите полный путь

form method="post" action="mail.php"
Анонимный
Большое спасибо за скрипт! Разобрался, интегрировал, настроил стили - все работает! + сделал из него еще форму онлайн-заказа) Кому интересно: ice2015.by ) Один вопрос: как заставить скрипт отправлять на почту выбранный человеком option из select ?? путем подставления в селект - нэйм - "tour" и ссылку на него в пхп 1 => $_POST['tour'], не отправляет..
NMitra
Это в HTML

<select name="spisok">
<option value="здесь значение, которое придёт на почту">раз</option>
<option value="здесь значение, которое придёт на почту">два</option>
</select>

Это в PHP

if($_POST['name']){
$znach = array(
1 => $_POST['name'],
2 => $_POST['tel'],
3 => $_POST['spisok']
);
mail("name@yandex.ru", "заказ звонка ".$_SERVER['HTTP_REFERER'], $znach[2]." ".$znach[1]." ".$znach[3]);
Арина Рудакова
Добрый день!
Никак не пойм, что я делаю не так...
Сейчас стоит http://redconnect.ru/ - когда ставила, оказалось всё очень просто, да и специалист их помогал.
Пробую поставить Ваш, постоянно выдаёт какую-то ошибку и не работает. Как исправить?
arinarudakova86@gmail.com
NMitra
Добрый день, извините, скрипт бесплатный, поэтому не могу выделить отдельного специалиста.
Наиболее частые проблемы вызывает: в action укажите полный адрес, где лежит mail.ru, например, site.ru/papka/mail.ru

<form method="post" action="mail.php">
Дмитрий Давыдов
задал стили для кнопки, теперь при открытие формы - кнопка не исчезает
что сделать?
NMitra
Обнулять добавленные стили в
#mail:checked + label {}
Юлия
Это тихий кошмар какой то. у меня ничего не выходит.
Вроде попап окно должно появиться, а она не появляется. экран сереет а формы заказа звонка нет! Не пойму в чем ошибка.
Все вроде сделала как в статье...
Юлия
За панику меня простите:)
Короче установить заказ звонка получилось. Но есть пару косяков. если не сложно гляньте в чем проблема.
Во первых посл отправки данных отображаются кракозяблили вместо "Ваша заявка...."
Во вторых. Хотелось бы все же сделать кнопкой а не словом с ссылкой.
Но я не совсем понимаю как это сделать. Вы даете ссылку http://jsfiddle.net/NMitra/33fy8nk0/
Но я не пойму как подключить скрипт.
Может где то писали уже об этом. поделитесь.

Спасибо заранее.
NMitra
Юлия, Дмитрий, два варианта обнуления стилей кнопки

1) http://jsfiddle.net/NMitra/da29dmct/

#mail:checked + label {
all: initial;
}

2) http://jsfiddle.net/NMitra/da29dmct/1/

#mail:checked + label {
width: 100%;
height: 100%;
text-shadow: none;
border: none;
border-radius: 0;
box-shadow: none;
}
Юлия
Наталья, огромное спасибо! Вы очень помогли! Все работает! Спасибо что не оставляете один на один с трудностями!
Станислав Стасюкевич
А как вместо lable cделать картинку с ссылкой на форму?
NMitra
Замените слова "заказать звонок" на код картинки ( http://shpargalkablog.ru/2013/12/image-optimization.html ), например,

<label for="mail"><img src="http://4.bp.blogspot.com/-eJraU5lCufs/UFa8PpMUv8I/AAAAAAAADLQ/Y5SGHBd91-Q/s1600/smail-bolshoi-palets-vverh.gif" alt="Смайлик большой палец вверх" height="104" width="147" title="Отлично!"/></label>

И добавьте CSS

#mail:checked + label img {
visibility: hidden;
}
Станислав Стасюкевич
Спасибо, работает!
Ольга Карамова
Друзья привет!
Подскажите пож-та как сделать чтобы форма выскакивала автоматически через заданное время как тут: http://shpargalkablog.ru/2013/06/popup.html

А то попробывала объеденить, не помогает :(
NMitra
Привет! Самый простой таймер (замените 1000 секунд на своё значение):

<script>
setTimeout(function() {document.getElementById('mail').checked = 'true'}, 1000);
</script>
Ольга Карамова
Большое спасибо! Очень многое подчерпнула )
Иван
вот мой сайт http://www.latela.biz/ уже реализовал feedback-form в разделе контакты, но хоть убей не могу заставить работать сквозную кнопку обратного звонка (заказать звонок)!!! Кто поможет найти ошибку!? кто мешает выполнению скрипта!? С кнопки он его не запускает даже! 3 дня убил ужжже... так то дилетант в этом
NMitra
Вах, эту постоянную прокрутку нужно остановить, хотя бы когда окна всплывают.
Сделайте тот же feedback-form, только уберите лишние поля и смените id. Обратите тут http://css.shpargalkablog.ru/2015/12/httpshpargalkablogru201401feedback.html внимание на

if (array_key_exists('nameFF', $_POST)) {
Николай
У меня серая страница и все! И путь полный уже прописал все равно пусто! ((
NMitra
Попробуйте этот вариант http://shpargalkablog.ru/2014/01/feedback-form.html Тоже самое, если убрать текстовое поле, только реализация другая
Анонимный
Привет. спасибо за статью.
сделали кнопку. все бы хорошо gamenn.ru НО
в dweaver все отобр хорошо. а по факту глюк...все выводится сразу и вместе?
что-то не подключилось?
NMitra
Здравствуйте, "все выводится сразу и вместе" - это как?
Анонимный
в итоге стили не подключились(кнопка и поле выводились вместе)
подключил)
вопрос другой есть. не меняется цвет текста в кнопке(
#mail:checked + label {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 99;
color: rgba(255,255,255,1.00);
background: rgba(180,180,180,.9);
cursor: pointer;}
белым не становится текст(((
NMitra
#mail + label {
color: red;
}
Анонимный
спасибо!
по напрямую реализовал. к label цвет применил.