Prb pour valider un formulaire

Eléphanteau du PHP | 37 Messages

15 sept. 2006, 00:24

Peut xu me donner un exemple car j'suis débutant et je fais comme je peux.

Merci.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 sept. 2006, 00:28

pour afficher les variables des simple echo suffisent :
echo $verif;
et pour les else :
if($verif == 1 ) 
{
  //ici le code ok
}
else echo "verif  n'est pas égal à 1";

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 37 Messages

15 sept. 2006, 01:05

j'ai corrigé mon erreur, mais j'aimerai que lorsque le formulaire est envoyé via le bouton Envoyer que seulement le message s'affiche comme actuellement mais que le formulaire lui ne s'affiche plus.
Comment peut-on faire cela ?

J'ai essayé cela :
if($verif == 1 )
{
mon code de mon formulaire

<?php
}
?>
mais mon formulaire n'apparaîs plus lorsque l'on charge la page pour la 1er fois.

J'ai aussi constater un ptit HIC lorsque je rempli plusieur champ et que laisse certain vide, j'ai bien le message d'erreur lié au champ mais si je clique sur annuler, tout les autres champs ne sont pas effacés.

voir le poste au dessus pour mon script.

Merci de votre aide !!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 sept. 2006, 17:39

que seulement le message s'affiche comme actuellement mais que le formulaire lui ne s'affiche plus.
Comment peut-on faire cela ?
<?php
if($verif == "" || $Envoi == "") )
{
<?
   mon code de mon formulaire
<?php
}
?>
Donc on affiche si :
1. $verif égal à vide (1er chargement)
ou
2. $Envoi égal à vide (en cas d'erreur)

tout les autres champs ne sont pas effacés.
Le bouton "annuler" remet les champs à leur état initial. Lorsque tu valides la page et une erreur est relevée tu reviens sur la même page mais avec des champs préremplis avec les valeurs POST ce sont donc ces valeurs qui initialisent les champs sur le clic du bouton.

Si tu veux vider tous les champs il faut écrire une petite fonction Javascript qui remet tous les champs à vide.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

15 sept. 2006, 19:00

Salut turc,

Merci ta modif fonctionne très bien,
Je cherche à améliorer mon formulaire, j'aimerai rajouter un controle des données des champs pour le protéger des moteurs de spam qui pourrais récupérer mon email et aussi vériifer que l'adresse email est correctement écrite et aussi que dans le champ cp (code postale) il ne contien que des nombres.
Mais cela je ne sais pas comment faire.

Merci de votre aide !!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 sept. 2006, 19:06

Tourne toi vers les expression régulières... d'habitude je m'appuie sur http://www.expreg.com/ mais momentanément indisponible :?

sinon effectue une recherche sur google ou sur le forum ou encore la doc preg_match()

Mais tu devrais ouviri un nouveau sujet pour ça et ne pas oublier de tagger celui-ci [Résolu] (si c'est le cas)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 37 Messages

15 sept. 2006, 19:15

Le bouton "annuler" remet les champs à leur état initial. Lorsque tu valides la page et une erreur est relevée tu reviens sur la même page mais avec des champs préremplis avec les valeurs POST ce sont donc ces valeurs qui initialisent les champs sur le clic du bouton.
Tu as parlé d'un script pour effectué le reset des champs du formulaire, quel est ce script ?

il me reste encore un détail pour cette partie de mon formulaire.
Sur la 1ere ligne j'ai champ nomé Civilité composé de 3 radios, mais visiblement cela n'apparaîs pas dans l'email envoyer, comment l'inclure dedans ?
le code :

Code : Tout sélectionner

<input type="radio" name="sexe" value="homme" checked="checked" /> <label>Mr</label> <input type="radio" name="sexe" value="femme" /> <label>Me</label> <input type="radio" name="sexe" value="fille" />
Merci encore de ton aide !!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 sept. 2006, 20:26

Le script ressemble un peu à ça :
function raz()
{
    var lg= document.form.elements.length;  
    for (var i=0; i<lg; i++)
    {    	
        if(document.form.elements[i].type == "text")
              document.form.elements[i].value = "" ;
    }
}
fonction appelée sur < onclick="raz()" > sur le bouton d'annulation

pour le type radio je ne vais pas te donner de réponse étant donné qu'il ne s'agit pas d'un énorme souci... juste faire attention à la manière de récupérer les champs :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 37 Messages

15 sept. 2006, 22:48

merci pour ton script mais je n'arrive pas à faire que cela fonctionne, je dois je pense mal l'implanter dans ma page formulaire.
Quand au radio, je pense que je vais chercher la solution sur le net

Merci à toi !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 sept. 2006, 23:07

montre ce que tu as essayé si tu veux de l'aide :wink:

Et tu ne trouveras pas plus sur le net que ce dont tu disposes déjà !

A quel moment récupères tu les données du champ texte "nom" ?
et à quel moment les données de la liste "sexe" ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 37 Messages

16 sept. 2006, 00:08

j'ai essayé ca pour la selection radio :
au debut de ma page :
<?php 
if ($_POST['sexe']=="homme"){
	echo "Monsieur, ";
}else{
f ($_POST['sexe']=="madame")
	echo"Madame, ";
}else{
        echo"Mademoiselle ";
}
$nom = (isset ($_POST['nom'])) ? $_POST['nom'] :"";
$prenom = (isset ($_POST['prenom'])) ? $_POST['prenom'] :"";
$email = (isset ($_POST['email'])) ? $_POST['email'] :"";
$societe = (isset ($_POST['societe'])) ? $_POST['societe'] :"";
$adresse = (isset ($_POST['adresse'])) ? $_POST['adresse'] :"";
$ville = (isset ($_POST['ville'])) ? $_POST['ville'] :"";
$cp = (isset ($_POST['cp'])) ? $_POST['cp'] :"";
$fonction = (isset ($_POST['fonction'])) ? $_POST['fonction'] :"";
$telephone = (isset ($_POST['telephone'])) ? $_POST['telephone'] :"";
$commentaire = (isset ($_POST['commentaire'])) ? $_POST['commentaire'] :"";
$verif = (isset ($_POST['verif'])) ? $_POST['verif'] :"";
$MailBody = "";
$Envoi = "";
?>
je récupère les données du champ texte "nom" quand je clique sur Envoyé ce qui fait une relecture de la page, donc au debut de celle-ci pour mon formulaire.
Les données de la selection radio sex se font avant le champ nom, donc cela veux dire qu'il faut récupérer ces données avant le champ nom, comme j'ai fait dans mon script, mais cela procure un message d'erreur suivant (que je ne comprend pas je l'avoue, les messages d'erreur sont souvent pour moi une énigme).
Parse error: syntax error, unexpected T_ECHO in /mnt/135/sdc/6/a/monsite/Contact.php on line 6
Merci @+

Eléphant du PHP | 184 Messages

16 sept. 2006, 00:25

Cette partie là possède des erreurs
}else{
f ($_POST['sexe']=="madame")
   echo"Madame, "; 
Image

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 sept. 2006, 00:32

Voilà ou j'ai voulu en arriver... tu n'avais rien prévu pour la récupération de la liste :wink:

Par contre tu n'es pas obligé de récupérer dans le même ordre que le formulaire. Les données POST (après envoi du formulaire) sont présentes sur toute la page peu importe où. Tu peux donc commencer par récupérer le nom ensuite le sexe, le mail le, prénom ...... pas d'odre précis.... MAIS faut tous les récupérer :wink:

L'erreur est signalée par graphistnet
Il n'y a pas de secret pour les messages d'erreurs... "T_ECHO" ne me parle pas beaucoup non plus. C'est la ligne le plus important et tu releves ce qui ne va pas :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 37 Messages

16 sept. 2006, 00:48

ok graphistnet j'ai modifié ainsi
<?php
if ($_POST['sexe']=="homme"){
echo "Monsieur, ";
}else{
f ($_POST['sexe']=="madame")
echo"Madame";
}else{
echo"Mademoiselle ";
}
Bon Truc, j'ai rien prévu pour la récupérer donc je vais voir comment récupérer ca.

@++
Modifié en dernier par reman91 le 16 sept. 2006, 00:51, modifié 1 fois.

Mammouth du PHP | 19672 Messages

16 sept. 2006, 00:51

il y a toujours une erreur dans ce bout de code.

Le message d'erreur dit explicitement qu'il y a une commande echo inattendue : l'erreur est avant. C'est une erreur d'innatention, je te laisse le soin de bien regarder. Quand tu auras corrigé celle-là, attends toi à en voir apparaître une nouvelle, mais corrige déjà la première.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: