Affichage message erreure

Résolu
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   -  
 le père -
Bonjour a vous tous,
Voila mon probleme: dans mon code je veux que lorsque certains champs ne sont pas remplis par l'utilisateur un message d'erreur s'affiche.
Or pour l'instant quand les champs en questions ne sont pas remplis j'ai juste une redirection en index.php.

Voila le code:
<?php
//*************************************************
//*************************************************
// AJR
// Creation d'un nouvel utilisateur
//*************************************************

// Insertion d un utilisateur ds la BD
//*************************************************

// Inclusion et execution du fichier db.php
require('db.php');
$_SESSION["StatutErreur"] = '';



// Test qur le bouton clique
if($_POST["ValiderInscription"]=='Valider') // Si bouton de validation


// LE PROBLEME EST A PARTIR D ICI:
if(empty($nom) OR empty($prenom) OR empty($ville) OR empty($codepostal) OR empty($addresse) OR empty($email) OR empty($tel1) OR empty($type))

// CE MESSAGE DEVRAI APPARAITRE
echo 'Attention touts les champs avec une "*" doivent etre remplis !';


// Aucun champ n'est vide, on peut enregistrer dans la table
else



{
// Recuperation des valeurs contenues dans les champs de saisie
$nom = htmlspecialchars(addslashes($_POST["nom"] ));
$prenom = htmlspecialchars(addslashes($_POST["prenom"] ));
$ville = htmlspecialchars(addslashes($_POST["ville"] ));
$codepostal = htmlspecialchars(addslashes($_POST["codepostal"] ));
$addresse = htmlspecialchars(addslashes($_POST["addresse"] ));
$email = htmlspecialchars(addslashes($_POST["email"] ));
$tel1 = htmlspecialchars(addslashes($_POST["tel1"] ));
$tel2 = htmlspecialchars(addslashes($_POST["tel2"] ));
$idparain = htmlspecialchars(addslashes($_POST["idparain"] ));
$nomparain = htmlspecialchars(addslashes($_POST["nomparain"] ));
$prenomparain = htmlspecialchars(addslashes($_POST["prenomparain"] ));
$type = htmlspecialchars(addslashes($_POST["type"] ));

echo "<br>nom = ".$nom;
// Insertion de l utilisateur dans la BD User
mysql_query("Insert Into adherent (nom,prenom,ville,codepostal,addresse,email,tel1,tel2,idparain,nomparain,prenomparain,type) VALUES ('$nom','$prenom','$ville','$codepostal','$addresse','$email','$tel1','$tel2','$idparain','$nomparain','$prenomparain','$type')") or die ("Erreur insert: ".mysql_error());
}



// Insertion du lien de retour
//=========================================
echo '<a href="index.php" title="S\'inscrire dans l\'espace">[Retour]</a><br>';
// Fermeture de la connexion MySQL
@mysql_close();
header('location: index.php');
A voir également:

5 réponses

le père
 
Bonjour

Le message d'erreur est peut-être envoyé. Tu exécutes quand même le header('location: index.php'); puisqu'il est en dehors du else.
D'ailleurs, je ferais la même remarque pour le mysql_close
Si tu veux que ces deux fonctions ne soent appelées que quand toutes les variables sont définies, mets-les dans le else.

D'ailleurs le test à faire serait plutôt
if(empty($_POST[$nom]) OR etc...
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Eneffet merci je n'ai plus ce probleme, par contre en mettant ton code: if(empty($_POST[$nom]) OR etc... je reçoit ce message:
Notice: Undefined variable: nom in C:\Program Files\EasyPHP 2.0b1\www\AJR\formulaireInscription.php on line 20
Attention touts les champs avec une "*" doivent etre remplis ![Retour]

Donc mon message d'erreure s'affiche bien mais il y a un autre probleme avec nom.
0
le père
 
pardon, c'était
if(empty($_POST['nom']) OR etc...
mais tu aurais pu (tu as peut-être) corriger de toi-même
0
Super_carotte Messages postés 1420 Date d'inscription   Statut Membre Dernière intervention   127
 
Merci encore (non je n'ai pas trouver cette erreure tout seule, je commence le PHP sur ce projet, je n'ai pas encores ce genres d'automatisme.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le père
 
je commence le PHP sur ce projet

Alors un conseil : n'écris plus une ligne sans la comprendre. Quand je dis plus une, j'exagère à peine.
Bonne continuation
0