Bonjour,
Je suis entrain de réaliser un formulaire simple en PHP/MySQL.
J'aimerais pouvoir afficher un message lorsque l'utilisateur n'a pas rentré un champ. Le système du champ obligatoire de base quoi.
En cherchant un peu, je trouve deux manières apparemment fonctionnelles de le faire : grâce à la fonction isset, et grâce à un <input type="hidden"...>.
Je crée donc un <input type="hidden" name="flag" id="flag" value="1"> entre mes deux balises <form>.
Je crée une valeur $form_sent définie ainsi :
if(isset($_POST['flag'])){ if($_POST['flag']==1) { $form_sent=true; } else { $form_sent=false; }} else { $form_sent=false; }
Je crée aussi une condition sur l'écriture du message d'avertissement, définie ainsi :
if($pseudo==NULL && $form_sent=true){ echo "Nom d'utilisateur disponible";} else if($pseudo==false && $form_sent == true){ echo "Veuillez entrer un pseudo"; }
J'utilise une variable $pseudo qui vaut NULL si l'utilisateur a rentré un pseudo inexistant dans la BDD, et qui vaut false si l'utilisateur n'a pas entré de pseudo :
if(isset($_POST['pseudo'])){
$req=$bdd->prepare('SELECT pseudo WHERE pseudo=?');
$req->execute(array(htmlspecialchars($_POST['pseudo']))) or die(print_r($req->errorInfo()));
if (!$req['pseudo']) {$pseudo=NULL;} else{$pseudo=htmlspecialchars($_POST['pseudo']);
$reponse->closeCursor();}
} else{$pseudo=(bool) false;}
Mon problème est que "Nom d'utilisateur disponible" s'affiche en fin de ligne, même si on n'a jamais envoyé le formulaire, ce qui me semble carrément impossible.
Ci-joint le fichier original :
https://mega.co.nz/#!etAHTZAK!PbvgUSsau ... 2DECQtlDmg
Merci d'avance à vous tous,
bobspongieux