besoin d'aide pour corrige une erreur dans mon

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : besoin d'aide pour corrige une erreur dans mon

par Cyrano » 30 janv. 2006, 10:00

Tu n'utiliseras pas plus de place au contraire: tu as de toutes façons besoin des deux formulaires : en ayant un fichier unique, tu coupe en deux la place nécessaire sur le serveur.

Pour les critiques, te tracasse pas trop, j'y suis ouvert pour autant qu'elles soient constructives ;)

par yalcin2 » 30 janv. 2006, 09:57

j'esper ne pas t'avoir blesser avec ma petite critique de débutant

concernant le include
oui effectivement c'est une solution auxquel j'avais pensait car déjà 60% de mon site tourne ainsi ce qui m'évite de modifie toute les pages quand je doit rajouter un menu ou détail etc..

mai tu a raison dans ta solution il n'y a qu'une page qui s'affiche donc ca ne peux pas faire trainer le serveur, la seule chose c'est que l'on utilise beaucoup de place chez notre hebergeur?

par Cyrano » 30 janv. 2006, 09:21

Tu oublies un détail: il ne s'en affiche qu'un seul selon le moment dans le déroulement de l'application: au premier chargement le formulaire s'affiche vide, au rechargement, c'est l'autre qui s'affiche avec éventuellement les données déjà inscrites dans le premier.

Au final, le code source généré ne comprend jamais qu'un seul formulaire. Tu noteras également que la page est complète en soi, mais rien interdit d'ajouter un menu de navigation et d'autres éléments avant et/ou après le formulaire.

Ce que tu peux envisager, c'est d'externaliser le formulaire dans un fichier à part que tu insères avec un include au quel cas tu devras y mettre les alternatives nécessaires pour compléter les zones déjà remplis lors du premier affichage ou rien au premier chargement de la page. De toutes façon, tu devras faire l'include deux fois.

par yalcin2 » 30 janv. 2006, 02:18

bonsoir
je viens donc de lire et d'essayer de comprendre le formulaire
je remarque un truc cette solution es bien pour une page dans le quel ce trouve un formulaire?

mais imaginon comme dans mon cas que je possede une page avec une entete, un menu a droite et un pied de page et cela fait deja 12k. si je doit refaire inscrire ma page avec 2fois sur la meme page la premiere si a l'affichage vierge et la deuxieme en cas d'erreur ca devrai me faire une page de 24k plus le code soit 30k n'est ce pas abuse?

par yalcin2 » 30 janv. 2006, 01:23

non je vais le regarder serait il possible de suprime le precedent message car le code n'est pas le dernier que j'avais fait merci :oops:

par Cyrano » 30 janv. 2006, 01:20

Tu as regardé comment traiter un formulaire complexe sur une seule page ?

par yalcin2 » 30 janv. 2006, 01:14

je n'y arrive pas
:cry:
a inclure les codes et le traitement de mon formulaire sur la meme page quand je met le php il me suprime tout?

par Truc » 29 janv. 2006, 22:17

la méthode la plus simple pour un débutant est de traiter le formulaire sur la meme page que son affichage.
Donc la 1ere méthode que j'ai proposé.

As tu bien compris son focntionnement dans l'ensemble ?

Pour verifier les champs tel et mail tu peux utiliser des expression régulières.

Fait quelques essais, si tu n'y arrives pas montre nous où tu en est :wink:

par yalcin2 » 29 janv. 2006, 21:14

quel est la methode la plus claire et la plus sur pour un debutant
car j'avoue que je suis perdu
en plus mon probleme n'est pas resolu car je veux aussi verifie si la personne a bien rentre un numero de telephone, et une bonne syntaxe pour l'adresse mail
ca en fait en trop suis desole

par Truc » 29 janv. 2006, 20:26

il n'y a pas vraiment de méthode qui est mieux que l'autre mais plus claire oui.

Admettons que le forulaire est sur la meme page tu peux appliquer le code que j'ai proposé précédemment.

S'il et sur une page différente il faut effectuer une redirection avec un
header()
en passant une serie de code erreur dans l'url pour faire la différence à l'affichage:

$erreur=false; //initialisation du mesage d'erreur

$url="";


if (empty($_POST['nom2'])) 
{ 
	$url .="?e1=1";	
	$erreur=true;
}
else $url .="?e1=0";

if (empty($_POST['prenom'] )) 
{
	$url .="&e2=1";	
	$erreur=true;
}
else $url .="&e2=0";

if (!$erreur) // si aucune erreur n'est relevée
{
   // ici code de traitement du formulaire
}
else
{
    header("location: page.php".$url);
}

//sur le formulaire
//Ex. pour le nom
if(isset($_GET['e1']) && $_GET['e1'] == 1) // si une redirection a eu lieu et le code erreur est 1, on affiche un message
       echo 'Vous n\'avez pas rempli votre nom! <br />';
   <input type="text" ...> 

par yalcin2 » 29 janv. 2006, 20:03

non le formulaire n'est pas sur le meme document?
qu'est ce qui es mieux?

Re: merci

par Truc » 29 janv. 2006, 19:50

merci ca fonctionne
cependant tu avais oublie " " pour le echo
non, pas oublié :wink:
c'était fait exprès, ça ne sert à rien de mettre des variables entre guillemets
une autre question si tu le permet
comment faire pour que l'erreur soit afficher au dessu de mon champ a remplir
merci

pour celà il faut utiliser une qutre méthode.
le formulaire est-il sur la meme pasge que le traitement de celui-ci ?
$erreur=false; //initialisation du mesage d'erreur

if (empty($_POST['nom2'])) { $erreur .= 'Vous n\'avez pas rempli votre nom! <br />';
$erreur=true;}
        if (empty($_POST['prenom'] )) {$erreur1 = 'Vous n\'avait pas remplis votre prenom! <br />';
$erreur=true;}
        if (empty($_POST['cp'] ))   { $erreur2 = 'Vous n\'avait pas remplis votre prenom! <br />';
$erreur=true;}
        if (empty($_POST['ville'] )) { $erreur3 = 'Vous n\'avait pas remplis votre prenom! <br />';
$erreur=true;}
        if (empty($_POST['tel'] ))   { $erreur4 = 'Vous n\'avait pas remplis votre numero de telephone! <br />';
$erreur=true;}

if (!$erreur) // si aucune erreur n'est relevée
{
   // ici code de traitement du formulaire
}
else
{
    //ici formulaire
    //exemple champ prénom
   if(isset($erreur1))
       echo $erreur1;
   <input type="text" ...>
}
par exemple

merci

par yalcin2 » 29 janv. 2006, 19:44

merci ca fonctionne
cependant tu avais oublie " " pour le echo

une autre question si tu le permet
comment faire pour que l'erreur soit afficher au dessu de mon champ a remplir
merci

par Truc » 29 janv. 2006, 18:39

Salut,

Ce n'est pas vraiment un problème de Base de données mais de php, donc mauvais forum :?

tu verifis bien si les champs sont remplis ou pas et affiche un message en fonction mais tu ne bloques pas la suite du script en cas d'erreur.
$erreur=""; //initialisation du mesage d'erreur

 if (empty($_POST['nom2'])) { $erreur .= 'Vous n\'avez pas rempli votre nom! <br />';}
        if (empty($_POST['prenom'] )) {$erreur .= 'Vous n\'avait pas remplis votre prenom! <br />';}
        if (empty($_POST['cp'] ))   { $erreur .= 'Vous n\'avait pas remplis votre prenom! <br />';}
        if (empty($_POST['ville'] )) { $erreur .= 'Vous n\'avait pas remplis votre prenom! <br />';}
        if (empty($_POST['tel'] ))   { $erreur .= 'Vous n\'avait pas remplis votre numero de telephone! <br />';} 

if (empty($erreur)) // si aucune erreur n'est relevée
{ 
   // ici code de traitement du formulaire
}
else
{
    echo $erreur;
}
la doc pour empty()

besoin d'aide pour corrige une erreur dans mon

par yalcin2 » 29 janv. 2006, 18:02

bonjour voila mon probleme pour lequel j'ai besoin d'aide car je ne trouve pas d'ou ca peux venir?

j'ai un formulaire et je voudrais verifier que les champs obligatoire son bien remplis, j'ai donc fait le code suivant? mais ca ne marche pas j'ai pas de message d'erreur, enfin ca passe directement a l'enregistrement (un enregistrement vierge biensur puisque aucun champs n'est remplis)

merci de votre aide
  // On vérifie le formulaire
if (isset($_POST['nom2']) && isset($_POST['prenom']) && isset($_POST['cp']) && isset($_POST['ville']) && isset($_POST['tel']))
{
        if ($_POST['nom2'] == NULL) {echo 'Vous n\'avez pas rempli votre nom!';}
        if ($_POST['prenom'] == NULL) {echo 'Vous n\'avait pas remplis votre prenom!';}
        if ($_POST['cp'] == NULL){ echo 'Vous n\'avait pas remplis votre prenom!';}
        if ($_POST['ville'] == NULL) { echo 'Vous n\'avait pas remplis votre prenom!';}
        if ($_POST['tel'] == NULL) { echo 'Vous n\'avait pas remplis votre numero de telephone!';}
        // Les variables
        $civil=htmlentities(addslashes($_POST['civil']));
        $nom2=htmlentities(addslashes($_POST['nom2']));
        $prenom=htmlentities(addslashes($_POST['prenom']));
        $adresse=htmlentities(addslashes($_POST['adresse']));
        $cp=htmlentities(addslashes($_POST['cp']));
        $ville=htmlentities(addslashes($_POST['ville']));
        $email=htmlentities(addslashes($_POST['email']));
        $tel=htmlentities(addslashes($_POST['tel']));
        $telgsm=htmlentities(addslashes($_POST['telgsm']));
        $statut=htmlentities(addslashes($_POST['statut']));
        $habitation=htmlentities(addslashes($_POST['habitation']));
        $anconst=htmlentities(addslashes($_POST['anconst']));
        $cptravaux=htmlentities(addslashes($_POST['cptravaux']));
        $villetravaux=htmlentities(addslashes($_POST['villetravaux']));
        $naturetravaux=htmlentities(addslashes($_POST['naturetravaux']));
        $typetravaux=htmlentities(addslashes($_POST['typetravaux']));
        $descriptiontravaux=htmlentities(addslashes($_POST['descriptiontravaux']));
        $datetravaux=htmlentities(addslashes($_POST['datetravaux']));
        $budgetravaux=htmlentities(addslashes($_POST['budgettravaux']));
        $financetravaux=htmlentities(addslashes($_POST['financetravaux']));
        $pub=htmlentities(addslashes($_POST['pub']));
        $newslettermsp=htmlentities(addslashes($_POST['newslettermsp']));
        $validation=htmlentities(addslashes($_POST['validation']));
        $date = date('d/m/Y');
        $heure= date('H:i');
        $codedevis= substr(str_shuffle('0123456789'),0,10);
        // On insert dans la base
		mysql_query("INSERT INTO devis (codedevis, date, civil, nom2, prenom, adresse, cp, ville, email, tel, telgsm, statut, habitation, anconst, cptravaux, villetravaux, naturetravaux, typetravaux, descriptiontravaux, datetravaux, budgetravaux, financetravaux, pub, newslettermsp, validation, heure)
		VALUES ('$codedevis', '$date', '$civil', '$nom2', '$prenom', '$adresse', '$cp', '$ville', '$email', '$tel', '$telgsm', '$statut', '$habitation', '$anconst', '$cptravaux', '$villetravaux', '$naturetravaux', '$typetravaux', '$descriptiontravaux', '$datetravaux', '$budgetravaux', '$financetravaux', '$pub', '$newslettermsp', '$validation', '$heure')") 
        
		
		
		or die(mysql_error(). ' à la ligne ' . __LINE__ . ' du fichier ' . __FILE__);