8797 sujets

Développement web côté serveur, CMS

Bonjour,

Voici mon problème ce bout de code me donne toujours le même résultat :
soit "Merci de compléter les champs obligatoire!"
j'ai aussi essayé avec 2 |


 if ((empty($_POST['nom'])) | (empty($_POST['adresse'])) | (empty($_POST['ville'])) | (empty($_POST['origines'])) | (empty($_POST['anciennete'])))
 {
  echo "Merci de compléter les champs obligatoire!";
 }
 else 
 {
$query_Clients = "INSERT INTO clients (nom, prenom, genre, adresse, ville, code_postal, etage, batiment, origines) VALUES ('$nom','$prenom','$genre','$adresse','$ville','$cp','$etage','$bati','$origines')";
$Clients = mysql_query($query_Clients) or die(mysql_error());
echo "Création compte client ok!";
 }

J'ai remplacé les | par des & et la sa fonctionne sauf que ça ne m affiche l'avertissement que lorsque tout les champs sont vide.
Mon but étant de vérifier si les champs ne sont pas vide avant de continuer Smiley smile

Merci pour votre aide
Modifié par mokacola (10 Dec 2008 - 16:42)
Première chose à faire, checker les noms des variables
Ensuite tester en affichant avant ce qui est rempli et envoyer
(ça a l'air bête, mais sans voir le formulaire, c'est tout ce que je peux conseiller)

sinon tu inverse et met !empty et des && à la place Smiley langue
une question comme ça le mieux comme code c'est


if ($_POST['nom']=='' | $_POST['adresse']=='' | $_POST['ville']=='' | $_POST['origines']=='' | $_POST['anciennete']=='')

ou

if ((empty($_POST['nom'])) | (empty($_POST['adresse'])) | (empty($_POST['ville'])) | (empty($_POST['origines'])) | (empty($_POST['anciennete'])))
 

?
Modifié par mokacola (10 Dec 2008 - 16:37)
Salut,

* le ET logique c'est && ou AND.
* le OU logique c'est || ou OR.

Pour ta question et sans parler du OU incorrect : aucune n'est satisfaisante ! Smiley cligne

Avant d'utiliser une variable en PHP il faut toujours (ne serait-ce que pour éviter un Warning ou juste parce que c'est plus propre) vérifier qu'elle existe. On fait cela généralement avec isset ce qui donnerait :
if (( isset($_POST['nom']) && $_POST['nom'] == '' ) || ( isset($_POST['adresse']) && $_POST['adresse'] == '' ) || etc... ) {

ou

if (( isset($_POST['nom']) && empty($_POST['nom']) ) || ( isset($_POST['adresse']) && empty($_POST['adresse']) ) || etc... ){
ce qui est un peu lourd !

Je te conseille donc fortement d'utiliser !empty qui en une seule fois vérifie que la variable existe et qu'elle n'est pas vide :
if ( !empty($_POST['nom']) && !empty($_POST['adresse']) && etc... ) {
   // je fais le traitement...
} else {
   // erreur : au moins un des champs est vide.
}