У меня есть эта форма и возникают проблемы с моими данными $ _POST, которые не проходят:
Форма:
<form action="" id="contact-form" method="post"> <input id="nombre" size="16" type="text" placeholder="Nombre"> <input id="email" size="16" type="text" placeholder="Email"> <textarea id="texto"></textarea> <input type="submit" value="Enviar">
PHP:
<?php if(!empty($_POST) { echo "YES"; } else { echo "NO"; } ?>
Он всегда перекликается с «НЕТ», когда я заполняю и отправляю все поля.
Вы пропустили атрибут имени полей ввода. Измените свой html и добавьте их:
<form action="" id="contact-form" method="post"> <input id="nombre" name="nombre" size="16" type="text" placeholder="Nombre"> <input id="email" name="email" size="16" type="text" placeholder="Email"> <textarea id="texto" name="texto"></textarea> <input type="submit" value="Enviar">
Обратите внимание, что атрибут id
не требуется. Вы можете опустить его, если вам не нужно его для других целей, например, для его использования в таблице стилей или в javascript. Для простоты отправки формы требуется только атрибут name
если вы хотите определенное поле, попробуйте:
if(isset($_POST['field']{0})){
Если вы хотите проверить несколько полей POST, попробуйте:
if(count($_POST)>0){
Ваш вход должен иметь набор атрибутов name
, который устанавливает их в массив $ _POST. id
игнорируется при отправке форм!
<input id="nombre" size="16" type="text" placeholder="Nombre" name="nombre">
и вы получите его в $ _POST ['nombre']
Это альтернативное решение, если вы добавляете атрибут «name» к своим входам, он должен работать:
if (count($_POST) == 0) { echo "YES"; } else { echo "NO"; }
Вам нужно указать переменную, например $_POST['email']
. Для всех полей старайтесь;
if(!empty($_POST['Nombre']) && !empty( $_POST['email']) && !empty ( $_POST['texto'])) { ...
Извините, я нахожусь на мобильном устройстве, такая боль, чтобы правильно набрать орфографию.