Подтвердить что ты не робот

Если 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";
}
4b9b3361

Ответ 1

Поэтому $_POST всегда установлен, но его содержимое может быть пустым.

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

if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "N0, mail is not set";
}

Ответ 2

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

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

Ответ 3

От php.net, isset

Возвращает TRUE, если var существует и имеет значение, отличное от NULL, FALSE в противном случае.

пустое пространство считается установленным. Для проверки всех нулевых параметров вам нужно использовать empty().

Ответ 4

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

if(isset($_POST["mail"]) && trim($_POST["mail"]) != "") { .. }

Ответ 5

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

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

<form name="new user" method="post" action="step2_check.php"> 
<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";    
}

Ответ 6

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

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

В качестве альтернативы используйте empty()

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

Ответ 7

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

if (!empty($_POST["mail"])) {
    echo "Yes, mail is entered";    
} else {  
    echo "No, mail is not entered";
}

Ответ 8

Возможно, вы можете попробовать следующее:

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

Ответ 9

<?php
    if(isset($_POST['mail']) && $_POST['mail']!='') {
        echo "Yes, mail is set";
    }else{
        echo "N0, mail is not set";
    }
?>

Ответ 10

Чтобы ответить на поставленный вопрос: isset и empty вместе дают три условия. Это может использоваться Javascript с помощью команды ajax.

$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 null
        $errMess="Empty"; // #1 Nothing in $foo it 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 no foo in request data
  }

echo "Was there a problem: ".$errMess."!";

Ответ 11

Вы можете попробовать следующее:

if (isset($_POST["mail"]) !== false) {
    echo "Yes, mail is set";    
}else{  
    echo "N0, mail is not set";
}

Ответ 12

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

<?php
if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
}else{  
    echo "N0, mail is not set";
}
?>

Ответ 13

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

 <?php

     if (isset($_POST["mail"])) {
            echo "Yes, mail is set";    
        }else{  
            echo "N0, mail is not set";
        }
  ?>

Ответ 14

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

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>

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

step2_check.php

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

Где $ db - это ваше соединение с базой данных.