- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
RENT2016, ну проверьте 101 раз, posName из формы передается вернее должна передаваться...
добавьте перед if(empty($_POST['js'])){
print_r($_POST);
и проверьте все данные есть?
RENT2016
добавьте перед if(empty($_POST['js'])){
print_r($_POST);
Не сработало.
Данные есть. Вот HTML, если интересно:
<h1>Отправить сообщение</h1>
<method="post"><div class="input"><input type="text" id="posName" placeholder="Имя ..." /></div>
<div class="input"><input type="text" id="posEmail" placeholder="Электронный адрес ..." /></div>
<div class="input"><input type="text" id="posTell" placeholder="Телефон ..." /></div>
<div class="textField"><div class="textarea"><textarea id="posText" placeholder="Сообщение ..."><textarea></div>
<br><class="button " id="send"><span>Отправить</span></br>
1) У вас начинается код с: if(empty($_POST['js']));
то есть вы спрашиваете: если в массиве $_POST['js'] пусто, то выполнить код..
В $_POST вам нужно передать данные из формы,
поэтому лучше использовать if(isset($_POST['js']));
2) Уберите проверку email и просто поставьте required;
3) Используйте $error как массив, а не переопределяйте переменную.
P.S В форме у вас нету action, проверьте, весь код на одной странице или нет.
В send.php надо дописать var_export($_POST); отправить форму и посмотреть что вернётся.
У google chrome по F12 есть инструменты для разработчиков, там на вкладке network будет результат send.php если эти инструменты открыты до отправки формы.
Если кликнуть в network на send.php и потом на вкладку response, то можно будет посмотреть что возвращает send.php в ответ на отправку формы.
---------- Добавлено 01.06.2016 в 19:56 ----------
Leonid H, отправка формы идёт по ajax.
В send.php надо дописать var_export($_POST)
Письмо не отправлено. Ответ на вкладке network: "не получены данные".
Интересно, что в обычной конфигурации скрипт письма отправляет, но почему-то упорно на видит posName. И как только пытаешься что-то заменить - виснет потому что как и этом случае "нет данных". Загадка.
Имя, мыло, телефон, текст.
Если правильно вас понял, эта строчка должна выглядеть так?
if(empty($_POST["posName", "posEmail", "posTell", "posText"])){
В это строке, если уж она есть, надо проверять наличие чего нибудь, но никак не отсутствие.
По сути строка звучит так - если переменная $_POST['js'] отсутствует или ей не присвоено значение, то выполняем нижеследующий код.
Как следствие наоборот, если из формы эта переменная передается, то код не выполняется и никаких проверок не производится.
А сам код, хоть и кривой, работает.
Только вот это нахрена в нем: sleep(2); ?Чтоб создать видимость глубокой умственной работы скрипта?
Придется, видимо, полностью переделывать.
Всем спасибо за помощь!
Попробуйте во всех htmlspecialchars явно указать кодировку, бывает из-за этого глюки.