Page 1 sur 2
champs obligatoire
Posté : 24 oct. 2007, 13:59
par KOBALT
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();
}
Re: champs obligatoire
Posté : 24 oct. 2007, 14:01
par AB
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();
}
Posté : 24 oct. 2007, 14:05
par Ryle
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

Posté : 24 oct. 2007, 14:06
par KOBALT
a ok
je peux mettre ?
echo '<span class="error">attention...</span> ;
enfin pour pouvoir le positionner grace au fichié .css
Posté : 24 oct. 2007, 14:11
par AB
Oup's, quand je vois une grosse faute (la coloration syntaxique m'a attiré l'oeil), j'ai tendance à ne plus regarder le reste
C'est corrigé

Posté : 24 oct. 2007, 14:16
par Ryle
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)
Posté : 24 oct. 2007, 14:19
par KOBALT
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 ?
Re: champs obligatoire
Posté : 24 oct. 2007, 14:19
par AB
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.
Posté : 24 oct. 2007, 14:28
par AB
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
Posté : 24 oct. 2007, 14:33
par KOBALT
sa marche mais le message est deja la quand j'arrive sur la page
Posté : 24 oct. 2007, 14:44
par KOBALT
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 ??
Posté : 24 oct. 2007, 14:54
par AB
Euh ... et si t'essayais ma méthode ?
Posté : 24 oct. 2007, 14:56
par KOBALT
elle marche mais il y a quand meme le message
Posté : 24 oct. 2007, 15:08
par KOBALT
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();
?>
Posté : 24 oct. 2007, 15:42
par Ryle
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