Je me retrouve avec des IF/ELSE imbriqués, même si le script fonctionne,
il ne correspond pas exactement au résultat souhaité.
Quand je suis dans le Else qui affiche le message (Message déjà transmis
!), il ne faudrait pas que le Else du niveau supérieur ne soit traité
dans ce cas sinon j'ai l'autre boîte de dialogue (le message de
remerciement) qui s'affichent à la suite.
Après la première boîte il faudrait sortir du test parent pour ne pas
avoir la deuxième boîte.
Je pense que ma structure de IF / ELSE imbriqué n'est peut-être pas adapté.
Si vous avez des idées, je suis débutant en PHP.
Voici mon code :
if(isset($_POST['nom']) AND isset($_POST['message']))
{
if($_POST['nom'] != NULL AND $_POST['message'] != NULL)
{
// On filtre le HTML pour la sécurité
$nom = htmlentities ($_POST['nom'], ENT_QUOTES);
$message = htmlentities ($_POST['message'], ENT_QUOTES);
// On nettoie les données (sauts de ligne en trop--).
$nom = trim(ucfirst($nom));
$message = trim(ucfirst($message));
// Avant de mettre le message dans la table on vérifie si elle existe !
$dern_msg1 = mysql_query('SELECT message FROM guestbook ORDER BY id
DESC LIMIT 0,1');
$dern_msg = mysql_fetch_assoc($dern_msg1);
// Si tous les champs sont remplis.
if($dern_msg['message'] != $message)
{
// On définit la requête d'insertion.
$insert = "INSERT INTO guestbook VALUES('','$nom','$message','$date')";
// On exécute l'insertion des données dans la table.
$query = mysql_query($insert) OR die("Impossible d'ajouter le message
! ");
}
else {
echo '<script>';
echo 'alert("Message déjà transmis !");';
echo '</script>';
}
// On affiche un message de remerciement au visiteur.
echo '<script>';
echo 'alert("Votre message nous a été transmis avec succès ! Merci !");';
echo '</script>';
}
else // sinon on affiche un message d'erreur et on redirige.
{
echo '<script>';
echo 'alert("Tous les champs obligatoires ne sont pas remplis !");';
echo 'javascript:history.back(1);';
echo '</script>';
}
}
?>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Je me retrouve avec des IF/ELSE imbriqués, même si le script fonctionne, il ne correspond pas exactement au résultat souhaité. Quand je suis dans le Else qui affiche le message (Message déjà transmis !), il ne faudrait pas que le Else du niveau supérieur ne soit traité dans ce cas
C'est bien le cas, si le code est tel que tu nous le montres.
sinon j'ai l'autre boîte de dialogue (le message de remerciement) qui s'affichent à la suite.
Ah oui, mais ce n'est donc pas le « else » du niveau supérieur (message comme quoi il manque des champs) qui est exécuté. C'est juste du code que tu aurais dû placer dans le troisième « if ».
if(isset($_POST['nom']) AND isset($_POST['message'])) { if($_POST['nom'] != NULL AND $_POST['message'] != NULL) { [...]
// Si tous les champs sont remplis. if($dern_msg['message'] != $message) { // On définit la requête d'insertion. $insert = "INSERT INTO guestbook VALUES('','$nom','$message','$date')";
// On exécute l'insertion des données dans la table. $query = mysql_query($insert) OR die("Impossible d'ajouter le message ! ");
// On affiche un message de remerciement au visiteur. echo '<script>'; echo 'alert("Votre message nous a été transmis avec succès ! Merci !");'; echo '</script>'; }
} else // sinon on affiche un message d'erreur et on redirige. { echo '<script>'; echo 'alert("Tous les champs obligatoires ne sont pas remplis !");'; echo 'javascript:history.back(1);'; echo '</script>'; } } ?>
Je me retrouve avec des IF/ELSE imbriqués, même si le script fonctionne,
il ne correspond pas exactement au résultat souhaité.
Quand je suis dans le Else qui affiche le message (Message déjà transmis
!), il ne faudrait pas que le Else du niveau supérieur ne soit traité
dans ce cas
C'est bien le cas, si le code est tel que tu nous le montres.
sinon j'ai l'autre boîte de dialogue (le message de
remerciement) qui s'affichent à la suite.
Ah oui, mais ce n'est donc pas le « else » du niveau supérieur (message
comme quoi il manque des champs) qui est exécuté. C'est juste du code
que tu aurais dû placer dans le troisième « if ».
if(isset($_POST['nom']) AND isset($_POST['message']))
{
if($_POST['nom'] != NULL AND $_POST['message'] != NULL)
{
[...]
// Si tous les champs sont remplis.
if($dern_msg['message'] != $message)
{
// On définit la requête d'insertion.
$insert = "INSERT INTO guestbook VALUES('','$nom','$message','$date')";
// On exécute l'insertion des données dans la table.
$query = mysql_query($insert) OR die("Impossible d'ajouter le message ! ");
// On affiche un message de remerciement au visiteur.
echo '<script>';
echo 'alert("Votre message nous a été transmis avec succès ! Merci !");';
echo '</script>';
}
}
else // sinon on affiche un message d'erreur et on redirige.
{
echo '<script>';
echo 'alert("Tous les champs obligatoires ne sont pas remplis !");';
echo 'javascript:history.back(1);';
echo '</script>';
}
}
?>
Je me retrouve avec des IF/ELSE imbriqués, même si le script fonctionne, il ne correspond pas exactement au résultat souhaité. Quand je suis dans le Else qui affiche le message (Message déjà transmis !), il ne faudrait pas que le Else du niveau supérieur ne soit traité dans ce cas
C'est bien le cas, si le code est tel que tu nous le montres.
sinon j'ai l'autre boîte de dialogue (le message de remerciement) qui s'affichent à la suite.
Ah oui, mais ce n'est donc pas le « else » du niveau supérieur (message comme quoi il manque des champs) qui est exécuté. C'est juste du code que tu aurais dû placer dans le troisième « if ».
if(isset($_POST['nom']) AND isset($_POST['message'])) { if($_POST['nom'] != NULL AND $_POST['message'] != NULL) { [...]
// Si tous les champs sont remplis. if($dern_msg['message'] != $message) { // On définit la requête d'insertion. $insert = "INSERT INTO guestbook VALUES('','$nom','$message','$date')";
// On exécute l'insertion des données dans la table. $query = mysql_query($insert) OR die("Impossible d'ajouter le message ! ");
// On affiche un message de remerciement au visiteur. echo '<script>'; echo 'alert("Votre message nous a été transmis avec succès ! Merci !");'; echo '</script>'; }
} else // sinon on affiche un message d'erreur et on redirige. { echo '<script>'; echo 'alert("Tous les champs obligatoires ne sont pas remplis !");'; echo 'javascript:history.back(1);'; echo '</script>'; } } ?>