Если isset $_POST

У меня есть форма на одной странице, которая отправляется на другую страницу. Там она проверяет, заполнена ли входная почта. Если да, то делает что-то, а если не заполнен, то делает что-то еще. Я не понимаю, почему он всегда говорит, что он установлен, даже если я отправляю пустую форму. Чего не хватает или что не так?

step2.php:

<form name="new user" method="post" action="step2_check.php"> 
    <input type="text" name="mail"/> <br />
    <input type="password" name="password"/><br />
    <input type="submit"  value="continue"/>
</form>

step2_check:

if (isset($_POST["mail"])) {
    echo "Yes, mail is set";  
} else {    
    echo "N0, mail is not set";
}
Комментарии к вопросу (1)
Решение

Большинство вводимых данных в форме всегда заданы, даже если они не заполнены, поэтому необходимо проверять и пустоту.

Поскольку !empty() уже проверяет и то, и другое, вы можете использовать эту функцию:

if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "No, mail is not set";
}
Комментарии (2)

Используйте !empty вместо isset. isset возвращает true для $_POST, потому что массив $_POST является суперглобальным и всегда существует (множество).

Или лучше использовать $_SERVER['REQUEST_METHOD'] == 'POST'.

Комментарии (5)

От php.net, задается

возвращает true, если var существует и имеет значение, отличное от null, и false в противном случае.

пустое пространство рассматривается как совокупность. Вам нужно использовать функцию empty() для проверки все нулевые варианты.

Комментарии (0)

Вы можете просто использовать:

if($_POST['username'] and $_POST['password']){
  $username = $_POST['username'];
  $password = $_POST['password'];
}

Кроме того, с помощью пустых()

if(!empty($_POST['username']) and !empty($_POST['password'])){
  $username = $_POST['username'];
  $password = $_POST['password'];
}
Комментарии (3)

Если вы отправите форму пустой, $_POST['mail'] все равно будет отправлен, но его значение будет пустым. Чтобы проверить, пусто ли поле, нужно проверить

if(isset($_POST["mail"]) && trim($_POST["mail"]) != "") { .. }
Комментарии (1)

Добавьте следующий атрибут для ввода текста форма: требуется="не требуется"в. Если форма не заполнена, она не позволит пользователю отправить форму.

Ваш новый код будет:


<input type="text" name="mail" required="required"/> <br />
<input type="password" name="password" required="required"/><br />
<input type="submit"  value="continue"/>
if (isset($_POST["mail"])) {
    echo "Yes, mail is set";    
}
Комментарии (0)

Используйте !пустой() вместо isset () и. Потому что isset () и всегда будет возвращать true в вашем случае.

if (!empty($_POST["mail"])) {
    echo "Yes, mail is entered";    
} else {  
    echo "No, mail is not entered";
}
Комментарии (0)
<?php
    if(isset($_POST['mail']) && $_POST['mail']!='') {
        echo "Yes, mail is set";
    }else{
        echo "N0, mail is not set";
    }
?>
Комментарии (1)

Может быть, вы можете попробовать это:

if (isset($_POST['mail']) && ($_POST['mail'] !=0)) { echo "Yes, mail is set"; } else { echo "No, mail is not set"; }

Комментарии (0)

  <input type="text" name="mail" required="required"/> <br />
  <input type="password" name="password" required="required"/><br />
  <input type="submit"  value="continue"/>


<?php
if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
}else{  
    echo "N0, mail is not set";
}
?>
Комментарии (0)

Вы можете попробовать,

 <?php

     if (isset($_POST["mail"])) {
            echo "Yes, mail is set";    
        }else{  
            echo "N0, mail is not set";
        }
  ?>
Комментарии (0)

Проверить, если форма была отправлена, во-первых, поле. Вы также должны очистить поле, чтобы помешать хакерам.

форма название=на"новый пользователь" и метод=то"Пост" действие="и step2_check.на PHP" и> в <тип входного=и"текст" имя="по почте" и/> <БР /> в <тип входного=на"пароль" имя=на"пароль" и/><БР /> в <тип входного=на"Отправить" и код="в SubmitForm" имя= "в SubmitForm на" значение"и далее" и/> </форма>

step2_check:

``

если (использования isset($_POST, где не SubmitForm на"])) { $Написать = sanitize_text_field(stripslashes($_POST, где не SubmitForm на"])); если(!пустой($электронной почты)) Эхо "Да, почта находится на"; еще Эхо "ч0, почты не установлен и"; } }

``

Комментарии (0)

Давайте думаю, что это HTML-форму step2.php

step2.php


    <input type="text" name="mail"/> <br />
    <input type="password" name="password"/><br />
    <input type="submit"  value="continue"/>

Я думаю, что вам это нужно для вашей базы данных, так что вы можете назначить вашу HTML форму в PHP переменную, теперь вы можете использовать реальные строку и ниже должен быть ваш

step2_check.php

if(isset($_POST['mail']) && !empty($_POST['mail']))
{
$mail = mysqli_real_escape_string($db, $_POST['mail']);
}

Где $DB-это подключение к базе данных.

Комментарии (0)

Ответить на вопрос: составляетсовокупность и пустые вместе дает три условия. Это может быть использовано в JavaScript с помощью команды "Аякса", а также.

$errMess="Didn't test";   // This message should not show
if(isset($_POST["foo"])){ // does it exist or not
    $foo = $_POST["foo"]; // save $foo from POST made by HTTP request
    if(empty($foo)){      // exist but it's null
        $errMess="Empty"; // #1 Nothing in $foo it's emtpy

    } else {              // exist and has data
        $errMess="None";  // #2 Something in $foo use it now
      }
} else {                  // couldn't find ?foo=dataHere
     $errMess="Missing";  // #3 There's no foo in request data
  }

echo "Was there a problem: ".$errMess."!";
Комментарии (0)

Вы можете попробовать это:

if (isset($_POST["mail"]) !== false) {
    echo "Yes, mail is set";    
}else{  
    echo "N0, mail is not set";
}
Комментарии (1)