J'ai un formulaire sur une page qui soumet à une autre page. Là, il vérifie si le courrier d'entrée est rempli. Si c'est le cas, faites quelque chose et si ce n'est pas rempli, faites autre chose. Je ne comprends pas pourquoi il est toujours dit que c'est défini, même si j'envoie un formulaire vide. Qu'est-ce qui manque ou qui ne va pas?
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";
}
Changez-le en ceci:
if (isset($_POST["mail"]) && !empty($_POST["mail"])) {
echo "Yes, mail is set";
} else {
echo "N0, mail is not set";
}
Donc, $_POST
est toujours défini, mais son contenu peut être vide.
Puisque !empty()
vérifie déjà si la valeur est définie, vous pouvez également utiliser cette version:
if (!empty($_POST["mail"])) {
echo "Yes, mail is set";
} else {
echo "N0, mail is not set";
}
Utilisez !empty
au lieu de isset
. isset renvoie la valeur true pour $_POST
car le tableau $_POST
est superglobal et existe toujours (défini).
Ou mieux utiliser $_SERVER['REQUEST_METHOD'] == 'POST'
à partir de php.net , isset
Retourne TRUE si var existe et a une valeur autre que NULL, FALSE sinon.
l'espace vide est considéré comme défini. Vous devez utiliser empty () pour vérifier toutes les options NULL.
Si vous envoyez le formulaire vide, $ _POST ['mail'] sera toujours envoyé, mais la valeur est vide. Pour vérifier si le champ est vide, vous devez vérifier
if(isset($_POST["mail"]) && trim($_POST["mail"]) != "") { .. }
Ajoutez l'attribut suivant au formulaire de saisie: required="required"
. Si le formulaire n'est pas rempli, cela ne permettra pas à l'utilisateur de le soumettre.
Votre nouveau code sera:
<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";
}
Vous pouvez simplement utiliser:
if($_POST['username'] and $_POST['password']){
$username = $_POST['username'];
$password = $_POST['password'];
}
Sinon, utilisez empty ()
if(!empty($_POST['username']) and !empty($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
}
Utilisez !empty()
au lieu de isset()
. Parce que isset()
retournera toujours vrai dans votre cas.
if (!empty($_POST["mail"])) {
echo "Yes, mail is entered";
} else {
echo "No, mail is not entered";
}
Peut-être que vous pouvez essayer celui-ci:
if (isset($_POST['mail']) && ($_POST['mail'] !=0)) { echo "Yes, mail is set"; } else { echo "No, mail is not set"; }
<?php
if(isset($_POST['mail']) && $_POST['mail']!='') {
echo "Yes, mail is set";
}else{
echo "N0, mail is not set";
}
?>
Permet de penser que ceci est votre formulaire HTML dans 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>
Je pense que vous en avez besoin pour votre base de données, afin que vous puissiez affecter votre valeur de formulaire HTML à php variable, vous pouvez maintenant utiliser Real Escape String et en dessous doit être votre
step2_check.php
if(isset($_POST['mail']) && !empty($_POST['mail']))
{
$mail = mysqli_real_escape_string($db, $_POST['mail']);
}
Où $ db est votre connexion à la base de données.
Tu peux essayer,
<?php
if (isset($_POST["mail"])) {
echo "Yes, mail is set";
}else{
echo "N0, mail is not set";
}
?>
Vous pouvez essayer ceci:
if (isset($_POST["mail"]) !== false) {
echo "Yes, mail is set";
}else{
echo "N0, mail is not set";
}
Répondre à la question postée: isset et vide ensemble donne trois conditions. Cela peut aussi être utilisé par Javascript avec une commande 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'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."!";
<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";
}
?>