Saisie non obligatoire

Répondre
cyne
le 27/01/2010 à 18:35
cyne
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

<?php 
// On commence par récupérer les champs
if(isset($_POST['civilite'])) $civilite=$_POST['civilite'];
else $civilite="t";

if(isset($_POST['nomfamille'])) $nomfamille=$_POST['nomfamille'];
else $nomfamille="z";

if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="z";

if(isset($_POST['adresse1'])) $adresse1=$_POST['adresse1'];
else $adresse1="z";

if(isset($_POST['adresse2'])) $adresse2=$_POST['adresse2'];
else $adresse2="z";

if(isset($_POST['codepostal'])) $codepostal=$_POST['codepostal'];
else $codepostal="z";

if(isset($_POST['ville'])) $ville=$_POST['ville'];
else $ville="z";

if(isset($_POST['teldom'])) $teldom=$_POST['teldom'];
else $teldom="z";

if(isset($_POST['telmobile'])) $telmobile=$_POST['telmobile'];
else $telmobile="z";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="z";

// On vérifie si les champs sont vides
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))
{
echo '<font color="red">Attention, seul le champs<b>ADRESSE2</b> peut rester vide !</font>';
}

// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('appli',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql
$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')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

// mysql_close(); // on ferme la connexion
}
?>
FP
cyne
le 27/01/2010 à 19:25
cyne
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 ?
FP
cyne
le 27/01/2010 à 19:42
cyne
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é...
FP
LA GLOBULE
le 27/01/2010 à 20:40
LA GLOBULE
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 :

<?php
if (isset($_POST['go']) && $_POST['go'] == 'ok') {
if (!isset($_POST['blu']) || strlen($_POST['blu']) == 0) echo 'le champ est vide';
else echo 'le champ n\'est pas vide';
}
?>

<form action="blu.php" method="post">
<input type="text" name="blu" value="" />
<input type="submit" name="go" value="ok" />
</form>
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours