probleme verification de formulaire

Eléphant du PHP | 299 Messages

07 janv. 2010, 06:25

Salut a tous, voila je fais un systeme de comentaire, et j' aimerai une verification pour ceux qui postent, il y a trois champs visible, nom, contenu et une question anti-spam dans la reponse est "rouge".

J' aimerai simplement que tous les champs soient remplis , on applique un message qui dit "bravo", si un des chamsp ou rien n' est completés, un message du genre "envoi raté".

J' ai donc fait ceci:
				          <?php
	  						$com_contenu = mysql_real_escape_string(htmlspecialchars($_POST['contenu']));
	  						$com_auteur = $_POST['nom'];
	 						$com_timestamp = time();
						
						



	  
	  						if ($com_contenu != NULL)
	 						 {
							if(isset($_POST['nom']) && isset($_POST['contenu']) && isset($_POST['question']) && ($_POST['question'] == 'rouge'))
							{				
							mysql_query("INSERT INTO commentaires (id,id_de_news,contenu,auteur,timestamp) VALUES('', '$id','$com_contenu','$com_auteur','$com_timestamp')")or die(mysql_error());
							echo 'Votre commentaire a bien été ajouté!';
							echo '<meta http-equiv="Refresh" content="3;URL=">';
							
							}
							
							else
							echo 'dfvdfv';
							
							}


	 					  ?>

Dans tous les cas, si un des champs n' est pas rempli et si rouge est est la mauvaise reponse, ca n' ajoute rien a la bdd, si tout est rempli et la question bonne, alors otut s' ajoute.

Le probleme vient des messages qui 's affichent.

Si je ne rempli que "nom", aucun message, si je rempli "contenu", le message apparait, aucun message pour la question remplie.

Bref c' est un peu embetant, j' aimerai simplement que si un des champs est manquant, et la question est bien repondu > bravo
si c' est le contraire, alors > raté

J' ai un probleme dans la synthaxe de mes if else apparement :/

Eléphant du PHP | 70 Messages

07 janv. 2010, 10:21

Relis bien ton code, que fais tu si $com_contenu == NULL?

Ca devrait te mettre sur la voix.
Damien Vande Kerckhove - Developer PHP & .net
Mon blog

Eléphant du PHP | 299 Messages

07 janv. 2010, 15:14

C' est vrai que j' avais oublié quelques details, merci.

Mais je n' arrive toujours pas a un message d' erreur si au moins un des champs est vide, pourtant par logique ca devrait reessembler a ca:
	  						if(($com_contenu != NULL) && ($com_auteur != NULL) && ($_POST['question'] != NULL))
	 						 {
							if(isset($_POST['nom']) && isset($_POST['contenu']) && isset($_POST['question']) && ($_POST['question'] == 'rouge'))
							{				
							mysql_query("INSERT INTO commentaires (id,id_de_news,contenu,auteur,timestamp) VALUES('', '$id','$com_contenu','$com_auteur','$com_timestamp')")or die(mysql_error());
							echo 'Votre commentaire a bien été ajouté!';
							echo '<meta http-equiv="Refresh" content="3;URL=">';
							}
							else
							{
							echo 'Erreur, recommencez!';
							}
							}

Eléphant du PHP | 70 Messages

07 janv. 2010, 15:23

                                                        if(($com_contenu != NULL) && ($com_auteur != NULL) && ($_POST['question'] != NULL))
                                                         {
                                                        if(isset($_POST['nom']) && isset($_POST['contenu']) && isset($_POST['question']) && ($_POST['question'] == 'rouge'))
                                                        {                               
                                                        mysql_query("INSERT INTO commentaires (id,id_de_news,contenu,auteur,timestamp) VALUES('', '$id','$com_contenu','$com_auteur','$com_timestamp')")or die(mysql_error());
                                                        echo 'Votre commentaire a bien été ajouté!';
                                                        echo '<meta http-equiv="Refresh" content="3;URL=">';
                                                        }
                                                        else
                                                        {
                                                        echo 'Couleur non rouge, recommencez!';
                                                        }            
                                                        }
                                                        else
                                                        {
                                                        echo 'Erreur, recommencez!';
                                                        }
Que donne ceçi?
Damien Vande Kerckhove - Developer PHP & .net
Mon blog

Eléphant du PHP | 299 Messages

07 janv. 2010, 15:32

Effectivement ca a l' air d' aller, par contre le hic, c' es tque c' est sur la meme page que le form, donc par defaut le message "erreur" est affichée, quelle astuce pourrai-je utiliser?

ViPHP
ViPHP | 5462 Messages

07 janv. 2010, 15:33

tu englobes le tout dans

Code : Tout sélectionner

if(!empty($_POST)) { //ton code }

Eléphant du PHP | 299 Messages

07 janv. 2010, 16:52

Arf et ben c' est parfait, j' espere que j' arriverai a me rappeler la facon de faire la prochaine fois que j' aurai un formulaire, au pire j' aurai un exemple maintenant :)


Merci a toi et meilleurs voeux :wink: