BPF
2007-06-14 05:54:33 UTC
Bonjour,
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>';
}
}
?>
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>';
}
}
?>