Если 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
Поэтому $_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 - это ваше соединение с базой данных.