J'utilise un fichier php externe dans le champ "action" de mon formulaire HTML pour que les actions mentionnées dans le fichier php soient effectuées en cliquant sur le bouton Soumettre.PHP isset ('submit') retourne toujours FALSE
Pour cela, j'ai utilisé la fonction isset()
dans le fichier php.
Cependant, je trouve que la fonction isset
renvoie toujours FALSE
, ce qui entraîne l'exécution de l'instruction else (comme dans le journal de la console).
Si je supprime la fonction isset()
(et donc les instructions if-else
), le code fonctionne à merveille.
Pouvez-vous s'il vous plaît vérifier le problème dans mon code?
J'ai aussi vu dans d'autres postes que je dois utiliser un autre argument avec isset()
, par exemple,
if(isset($_POST['submit']) && !empty($_POST["xyz"]))
est du tout nécessaire?
P.S .: Je suis encore dans la phase initiale du développement de la page et par conséquent je vous demande d'ignorer les problèmes de sécurité de mon code, dont je reconnais l'existence. :)
Mes sous-codes:
Mon formulaire HTML:
<form id="info-form" method="POST" action="form-submit.php">
<label for="Name">What is your Name? </label>
<input required type="text" name="name" placeholder="Enter your full name here." />
<label for="Email">What is your email ID? </label>
<input required type="email" name="email" placeholder="[email protected]" />
<label for="mobile">What is your 10-Digit Mobile Number? </label>
<input required type="text" name="mobile" maxlength="10" />
<button name="submit-form" type="submit" class="btn btn-lg btn-success"><i class="fa fa-paper-plane" aria-hidden="true"></i>
Submit
</button>
<button type="reset" class="btn btn-lg btn-warning"><i class="fa fa-undo" aria-hidden="true"></i>
Reset
</button>
</form>
Mon fichier form-submit.php:
<?php
if(isset($_POST['submit-form']))
{
require("database-connect.php");
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$sql = "INSERT INTO tbl_details ".
"(name,email_id,mobile_number) ".
"VALUES ".
"('$name','$email','$mobile')";
mysql_select_db('db_info');
$return = mysql_query($sql, $connect);
if(! $return)
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($connect);
}
else
{
echo "Not Set\n";
}
?>
'submit'! =' Submit-form' (le nom de votre bouton de soumission). Donc vous voulez utiliser 'isset ($ _ POST ['submit'-form'])' dans votre instruction. – Qirel
Voir http://stackoverflow.com/q/4559925/476 – deceze
De plus, une note sur les normes de sécurité et de programmation: les fonctions 'mysql_ *' sont obsolètes depuis PHP 5.5 (et ** entièrement supprimées ** dans PHP 7) et vous devriez [cesser de les utiliser] (http://stackoverflow.com/q/12859942) si vous le pouvez. Vous devez choisir une autre API qui vous permet d'utiliser des instructions préparées (que vous * devriez vraiment * lorsque vous manipulez des entrées utilisateur), comme 'mysqli_ *' ou PDO - voir [choisir une API] (http://php.net /manual/en/mysqlinfo.api.choosing.php). Fondamentalement, vous êtes grand ouvert à l'injection SQL - avoir une lecture à [Comment puis-je empêcher l'injection SQL en PHP?] (Http://stackoverflow.com/q/60174/) – Qirel