champs obligatoire

KOBALT
Invité n'ayant pas de compte PHPfrance

24 oct. 2007, 13:59

Bonjour,

je voudrais savoir comment on affiche un message disant "Attention tu n'as pas rempli tous les champs" lorsque qqun ne rempli pas tous les champs ?

mon code (partiel)
if ($_POST['nom'] = NULL OR $_POST['prenom'] = NULL)
	{
echo 'attetion tu n'as pas rempli tous les champs' ;
mysql_close();
}

ViPHP
AB
ViPHP | 5818 Messages

24 oct. 2007, 14:01

Ton code corrigé
Bonjour,

je voudrais savoir comment on affiche un message disant "Attention tu n'as pas rempli tous les champs" lorsque qqun ne rempli pas tous les champs ?

mon code (partiel)
if ($_POST['nom'] == NULL OR $_POST['prenom'] == NULL)
	{
echo 'attention tu n\'as pas rempli tous les champs' ;
mysql_close();
}
Modifié en dernier par AB le 24 oct. 2007, 14:11, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 oct. 2007, 14:05

Y a aussi un problème dans le if() l'opérateur de comparaison est "==". Le "=" simple est une affectation donc tu écrases ton nom et prénom dans $_POST avec la valeur null ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

KOBALT
Invité n'ayant pas de compte PHPfrance

24 oct. 2007, 14:06

a ok
je peux mettre ?
echo '<span class="error">attention...</span> ;
enfin pour pouvoir le positionner grace au fichié .css

ViPHP
AB
ViPHP | 5818 Messages

24 oct. 2007, 14:11

Oup's, quand je vois une grosse faute (la coloration syntaxique m'a attiré l'oeil), j'ai tendance à ne plus regarder le reste :roll:

C'est corrigé :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 oct. 2007, 14:16

a ok
je peux mettre ?
echo '<span class="error">attention...</span> ;
enfin pour pouvoir le positionner grace au fichié .css
Tout a fait :) (enfin avec l'apostrophes finale pour fermer la chaine, ca marchera mieux ;))

En php tu généres le code html que tu souhaites obtenir, tu peux donc très bien mettre du texte, des balises, des attributs... faut juste faire attention dans tes chaines, si celles-ci sont délimitées par des apostrophes, à échapper d'un antislash les apostrophes éventuelles qu'elle peut contenir, comme l'a indiqué AB (idem pour les guillemets dans une chaine délimitée par des guillemets)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 6 Messages

24 oct. 2007, 14:19

a oui^^
dc voila j'ai mis
echo '<span class="error">attention tu n\'as pas rempli tous les champs</span>' ; 
la c'est bon non ?
KOBALT

ViPHP
AB
ViPHP | 5818 Messages

24 oct. 2007, 14:19

Un exemple avec ta nouvelle demande
if ($_POST['nom'] == NULL OR $_POST['prenom'] == NULL)
	{
          $erreur = "Vous n'avez pas rempli tous les champs" ;
mysql_close();
}
Dans ton code html

Code : Tout sélectionner

<?php if(isset($erreur)) { ?> <span class="error"><?php echo $erreur ?></span> ; <?php } ?>
EDIT
Ah excuses j'ai fait ça pendant que tu postais donc je n'ai pas répondu directemnt à ta question.

ViPHP
AB
ViPHP | 5818 Messages

24 oct. 2007, 14:28

a oui^^
dc voila j'ai mis
echo '<span class="error">attention tu n\'as pas rempli tous les champs</span>' ; 
la c'est bon non ?
ça peux marcher comme ça aussi

Petit nouveau ! | 6 Messages

24 oct. 2007, 14:33

sa marche mais le message est deja la quand j'arrive sur la page
KOBALT

Petit nouveau ! | 6 Messages

24 oct. 2007, 14:44

au merci Ryle

mais comment je peux faire pour que le message ne soit pas afficher quand on arrive sur la page mais juste quand on clique sur submit et que un des deux champs soit vide ??
KOBALT

ViPHP
AB
ViPHP | 5818 Messages

24 oct. 2007, 14:54

Euh ... et si t'essayais ma méthode ?

Petit nouveau ! | 6 Messages

24 oct. 2007, 14:56

elle marche mais il y a quand meme le message
KOBALT

Petit nouveau ! | 6 Messages

24 oct. 2007, 15:08

voici mon code en entier: (en esperant que ca t'aide)

Code : Tout sélectionner

<?php ob_start(); ?> <html> <head> <title>test</title> <link href="link/style.css" rel="stylesheet" type="text/css" /> </head> <body> <?php mysql_connect("****", "****", "****"); mysql_select_db("test"); $login = $_POST['nom']; $password = $_POST['prenom']; if (isset($_POST['nom']) AND isset($_POST['prenom'])); { if ($_POST['nom'] != NULL AND $_POST['prenom'] != NULL) { mysql_query("INSERT INTO password VALUES('$nom, '$prenom')"); mysql_close(); header('Location: http://google.fr'); } if ($_POST['nom'] == NULL OR $_POST['prenom'] == NULL) { $erreur = "Vous n'avez pas rempli tous les champs"; mysql_close(); } } ?> <table class="headerBar" height="50"> <tr> <td> <a href="index" border="0"><img src="pics/logo.jpg" alt="logo" border="0" /></a> </td> </tr> </table> <table> <tr> <td class="log_zone"> <form action="index.php" method="post"> <label for="nom" class="text_log">nom: </label> <br/><input type="text" name="nom" size="20" class="form_input"; /><br/> <label for="prenom" class="text_log">prenom: </label> <br/><input type="text" name="prenom" size="20" class="form_input"; /><br/> <input type="submit" name="submit" value="" class="form_bouton" src="pics/button.gif" /> </form> </td> <td> <?php if(isset($erreur)) { ?> <span class="error"><?php echo $erreur ?></span> <?php } ?> </td> </tr> </table> <div class="footer"> <div class="footerLogo"><img src="pics/footerLogo.gif" width="90" height="25" border="0" /></div> <div class="footerText">test</div> </div> </body> </html> <?php ob_end_flush(); ?>
KOBALT

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 oct. 2007, 15:42

C'est à cause d'un point-virgule mal placé :)
if (isset($_POST['nom']) AND isset($_POST['prenom']));  // juste là
A cause de lui, php pense que l'instruction qui suit le if est vide et le bloc délimité par les accolades qui suit n'est pas lié à cette condition. Du coup il rentre dans le if() suivant et défini la variable $erreur (puisque $_POST['nom'] et $_POST['prenom'] sont effectivement null)


A noter par ailleurs quelques erreurs d'inattention :
$password = $_POST['prenom']; // devrait être $prenom plutot 
mysql_query("INSERT INTO password VALUES('$nom, '$prenom')"); // manque une apostrophe autour de $nom
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...