Saisie non obligatoire

Répondre
cyne
cyne
Déconnecté
FP
Bonjour,
Dans un formulaire, je souhaite que l'on puisse laisser vide le champ "adresse2" mais quand je le teste, ça ne fonctionne pas...
Pouvez-vous jeter un oeil à mon code ci-dessous et me dire ce qui ne va pas?
Merci mille mercis

  1. <?php  
  2. // On commence par récupérer les champs
  3. if(isset($_POST['civilite'])) $civilite=$_POST['civilite'];  
  4. else $civilite="t";  
  5.  
  6. if(isset($_POST['nomfamille'])) $nomfamille=$_POST['nomfamille'];  
  7. else $nomfamille="z";  
  8.  
  9. if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];  
  10. else $prenom="z";  
  11.  
  12. if(isset($_POST['adresse1'])) $adresse1=$_POST['adresse1'];  
  13. else $adresse1="z";  
  14.  
  15. if(isset($_POST['adresse2'])) $adresse2=$_POST['adresse2'];  
  16. else $adresse2="z";  
  17.  
  18. if(isset($_POST['codepostal'])) $codepostal=$_POST['codepostal'];  
  19. else $codepostal="z";  
  20.  
  21. if(isset($_POST['ville'])) $ville=$_POST['ville'];  
  22. else $ville="z";  
  23.  
  24. if(isset($_POST['teldom'])) $teldom=$_POST['teldom'];  
  25. else $teldom="z";  
  26.  
  27. if(isset($_POST['telmobile'])) $telmobile=$_POST['telmobile'];  
  28. else $telmobile="z";  
  29.  
  30. if(isset($_POST['email'])) $email=$_POST['email'];  
  31. else $email="z";  
  32.  
  33. // On vérifie si les champs sont vides
  34. if(empty($civilite) OR empty($nomfamille) OR empty($prenom) OR empty($adresse1) OR empty($adresse2) OR empty($codepostal) OR empty($ville) OR empty($teldom)OR empty($telmobile) OR empty($email))  
  35. {  
  36. echo '<font color="red">Attention, seul le champs<b>ADRESSE2</b> peut rester vide !</font>';  
  37. }  
  38.  
  39. // Aucun champ n'est vide, on peut enregistrer dans la table
  40. else  
  41. {  
  42. // connexion à la base
  43. $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());  
  44. // sélection de la base
  45.  
  46. mysql_select_db('appli',$db) or die('Erreur de selection '.mysql_error());  
  47.  
  48. // on écrit la requête sql
  49. $sql = "INSERT INTO membres(civilite, nomfamille, prenom, adresse1, adresse2, codepostal, ville, teldom, telmobile, email) VALUES('$civilite','$nomfamille','$prenom','$adresse1','$adresse2','$codepostal','$ville','$teldom','$telmobile','$email')";  
  50.  
  51. // on insère les informations du formulaire dans la table
  52. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
  53.  
  54. // on affiche le résultat pour le visiteur
  55. echo 'Vos infos on été ajoutées.';  
  56.  
  57. // mysql_close(); // on ferme la connexion
  58. }  
  59. ?>  
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Quel est le role de la fonction empty ?
cyne
cyne
Déconnecté
FP
La fonction empty sert à contrôler si le champ est vide?!

je dois commencer par enlever les lettres entre guillemets dans les :
else $adresse1="z";

mais apparemment ça ne suffit pas ?
cyne
cyne
Déconnecté
FP
Je viens également d'enlever le : or empty($adresse2) mais ça ne fonctionne toujours pas

il faudrait quand même pas que je remette cet or empty($adresse2) et que j'enlève tous les autres?

Allez dites-moi pitié...
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Malheureusement non, empty ne teste pas si la variable est vide.
Je te suggère de lire la documentation de cette fonction dans le manuel PHP.

Pour tester si le champ est vide, le plus simple est de calculer la taille de la chaine que contient ce champ.

Voici un simple ex :

  1. <?php
  2. if (isset($_POST['go']) && $_POST['go'] == 'ok') {  
  3. if (!isset($_POST['blu']) || strlen($_POST['blu']) == 0) echo 'le champ est vide';  
  4. else echo 'le champ n\'est pas vide';  
  5. }  
  6. ?>
  7.  
  8. <form action="blu.php" method="post">
  9. <input type="text" name="blu" value="" />
  10. <input type="submit" name="go" value="ok" />
  11. </form> 
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique