Bonjour à tous, je construis un projet avec php où je veux afficher un message d'erreur sur le formulaire soumis avec php mais le problème est que je ne peux pas faire que ma page soit rechargée et que le message ne s'affiche pas. Ci-dessous, je colle les codes, aidez-moi à le faire.
Font partie
if(isset($_POST['con_submit'])){
// Posted form data
if(!empty($_POST['con_first_name'])){
$err_fname = "First name cannot be empty";
}else{
$fname = htmlentities(strip_tags(mysqli_real_escape_string($con, $_POST['con_first_name'])), ENT_QUOTES, 'UTF-8');
}
}
codes php
<form method="post" action="" id="contact_form">
<div class="form-row mt-3">
<div class="col">
<div class="form-group input-group">
<input type="text" class="form-control" name="con_first_name" placeholder="Enter your first name">
<span><?php echo $err_fname; ?></span>
</div>
</div>
</div>
<div class="form-group">
<button type="submit" name="con_submit" class="btn show_more con_submit">Submit</button>
</div>
</form>
3 Réponses :
Je le ferais avec session!
if(isset($_SESSION['form_error'])){
echo $_SESSION['form_error'];
unset($_SESSION['form_error']);
}
Et puis où vous voulez le montrer, faites:
session_start();
if(isset($_POST['con_submit'])){
// Posted form data
if(!empty($_POST['con_first_name'])){
$err_fname = "First name cannot be empty";
$_SESSION['form_error'] = $err_fname;
}else{
$fname = htmlentities(strip_tags(mysqli_real_escape_string($con, $_POST['con_first_name'])), ENT_QUOTES, 'UTF-8');
}
}
utilise session est sûr et pourquoi non défini
@BabyBabai Oui, c'est sûr! Désactivé pour masquer le message si la page est actualisée. .. une fois montré, il n'a pas besoin d'être montré à nouveau!
utiliser ce code
if(isset($_POST['con_submit'])){
if(empty($_POST['con_first_name'])){
$err_fname = "First name cannot be empty";
}else{
$fname = htmlentities(strip_tags(mysqli_real_escape_string($con, $_POST['con_first_name'])), ENT_QUOTES, 'UTF-8');
}
}
vous pouvez utiliser avec une session comme celle-ci
session_start();
if(isset($_POST['con_submit'])){
// Posted form data
if(empty($_POST['con_first_name'])){
$err_fname = "First name cannot be empty";
$_SESSION['form_error_name'] = $err_fname;
}else{
$fname = htmlentities(strip_tags(mysqli_real_escape_string($con, $_POST['con_first_name'])), ENT_QUOTES, 'UTF-8');
}
}
if(isset($_SESSION['form_error_name'])){
echo $_SESSION['form_error_name'];
unset($_SESSION['form_error_name']);
}
La session est sécurisée et chaque fois que vous postez, elle définira la session, puis supprimera la valeur définie pour la session sans définir la session.
Nan! voir la différence en empty
vous pourriez commenter ma réponse sur mon erreur de ne pas copier ma solution. ..
Ok j'ai ça @Ingus
Etes-vous sûr que
!empty()est la validation que vous voulez, plutôt queempty()sans le!?@rickdenhaan pensez-vous que
empty()fonctionneraEh bien, vous souhaitez définir le message d'erreur lorsque l'utilisateur n'a PAS entré de prénom, n'est-ce pas? Donc, quand le champ est
empty()Oui @rickdenhaan
Ensuite, l'utilisation de
empty()devrait fonctionner. Un test rapide serait de définir également$err_fnamedans votre conditionelse(sur un autre texte) pour voir s'il s'affiche alors.