- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
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 явно указать кодировку, бывает из-за этого глюки.