Si isset $ _POST

Tengo un formulario en una página que se envía a otra página. Allí, verifica si el correo de entrada está lleno. Si es así, haz algo y, si no está lleno, haz otra cosa. No entiendo por qué siempre dice que está configurado, incluso si envío un formulario vacío. ¿Qué falta o qué está mal?

step2.php:



step2_check:

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

Cambiarlo a esto:

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

Entonces $ _POST siempre está configurado, pero su contenido puede estar vacío.

Dado que! Empty () ya verifica si el valor está establecido, también puede usar esta versión:

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

Use !empty isset lugar de isset . isset return true para $_POST porque $_POST array es superglobal y siempre existe (set).

O mejor use $_SERVER['REQUEST_METHOD'] == 'POST'

Desde php.net , isset

Devuelve TRUE si var existe y tiene un valor distinto de NULL, FALSE de lo contrario.

el espacio vacío se considera como conjunto. Debe usar empty () para verificar todas las opciones nulas.

Si envía el formulario en blanco, aún se enviará $ _POST [‘mail’], pero el valor está vacío. Para verificar si el campo está vacío, debe verificar

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

Agregue el siguiente atributo al formulario de entrada de texto: required="required" . Si el formulario no está completo, no permitirá que el usuario envíe el formulario.

Su nuevo código será:

 


 if (isset($_POST["mail"])) { echo "Yes, mail is set"; } 

Puedes simplemente usar:

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

Alternativamente, use empty ()

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

Use !empty() isset() lugar de isset() . Porque isset() siempre devolverá verdadero en su caso.

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

Quizás puedas probar este:

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

Para responder a la pregunta publicada: isset y empty together da tres condiciones. Esto puede ser usado por Javascript con un comando ajax también.

 $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."!"; 

Puedes intentar esto:

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


Puedes probar,