formulaire et tableau

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 : formulaire et tableau

Re: formulaire et tableau

par kalak » 13 nov. 2011, 22:04

a force de persister j'ai enfin réussi, merci beaucoup de ton aide

Cordialement

Re: formulaire et tableau

par kalak » 13 nov. 2011, 17:26

j'ai testé mon code et essayé d'autre petite chose mais la je comprend vraiment plus rien, je sais plus quoi faire, je le pense en français essaie de le remettre en php mais rien n'y fait je ne sais plus quoi faire.

Cordialement,

Re: formulaire et tableau

par Cyrano » 13 nov. 2011, 17:04

As-tu testé tes solutions ? Le principal, c'est de rester logique. Teste et expérimente, et si tu n'obtiens pas le résultat attendu, montre le code et explique le raisonnement que tu as mis en œuvre pour le créer.

Re: formulaire et tableau

par kalak » 13 nov. 2011, 14:23

Merci pour ce petit rappel essentiel c'est plus clair pour moi maintenant.

Il faudrait donc faire un truc de ce genre je pense :


if (!isset($_POST['verif_pass']) && isset($_POST['inscription']) && ($_POST['inscription']) != ""
{
eco ('veuiller remplir le champ');
}
elseif isset($_POST['verif_pass']) && ($_POST['verif_pass']) != ($_POST['pass']))
{
echo ('mot de passe différent');
}

Est ce que cela serait mieux comme ceci ?

(je suis désolé je débute vraiment en php c'est pas évident pour moi)

Cordialement,

Re: formulaire et tableau

par Cyrano » 13 nov. 2011, 14:11

Quand on parle d'alternative « si condition, .., sinon ...», ça correspond à « if ... else »

« if(condition) » va déterminer si « condition » vaut vrai ou faux : soit ça vaut VRAI (TRUE) et dans ce cas les instruction qui suivent le « if » seront exécutées, soit FAUX (FALSE) et dans ce cas, les instructions qui suivent le « else » seront exécutées... si il existe un « else » bien entendu. On peut en effet décider de n'exécuter certaines instruction qu'à certaines conditions, et si ces conditions ne sont pas réunies, ils peut tout simplement ne rien se passer et on passe à la suite du code.

Si l'élément existe => if(isset(élément));
Si l'élément n'existe pas => if(!isset(élément));

Est-ce que c'est plus clair comme ça ?

Re: formulaire et tableau

par kalak » 13 nov. 2011, 13:56

oui c'est vrai je suis d'accord avec vous, mais par contre je ne vois pas comment formuler cela en php ...

Cordialement

Re: formulaire et tableau

par Cyrano » 13 nov. 2011, 13:34

On part des règles de gestions pour définir les actions. Là, on veut enregistrer des données, il est donc indispensable que ces données soient présentes et valides.

Si on veut enregistrer un mot de passe, on doit donc tester qu'il existe. L'alternative sera donc la suivante et c'est l'élément important à bien comprendre : s'il existe, on peut l'enregistrer, sinon, on affichera un message d'erreur.

Comment traduire ça en PHP ?

Re: formulaire et tableau

par Kalak » 13 nov. 2011, 13:21

Je dois vérifier que l'élément n'existe pas puisque c'est pour afficher le message d'erreur, donc si il existe il n'y aura pas de message d'erreur d'afficher, vous êtes pas d'accord avec sa ? Je ne comprend vraiment pas la pourquoi cela ne fonctionne pas. Cordialement,

Re: formulaire et tableau

par Cyrano » 13 nov. 2011, 02:37

Oui le point d'exclamation sert à faire l'inverse d'une fonction.
Il serait tout à fait important que que réfléchisses soigneusement à ce détail : doit vérifier si l'élément existe, ou vérifier qu'effectivement il n'existe pas.

Si tu assimiles correctement ce point, tu résoudras l'ensemble ;)

Re: formulaire et tableau

par kalak » 13 nov. 2011, 01:48

Bonsoir,

En reprenant mon code, je suis arrivé à faire cela :

if (!isset($_POST['verif_pass']) && isset($_POST['inscription']) && ($_POST['inscription']) != "" || isset($_POST['verif_pass']) && ($_POST['verif_pass']) != ($_POST['pass']))

Cela fonctionne nickel, mis à part que quand les deux champs ("pass" et "verif_pass" ) sont tout les deux vides pour lui la condition : isset($_POST['verif_pass']) && ($_POST['verif_pass']) != ($_POST['pass']) est rempli donc il n'affiche pas le message d'erreur. J'ai pas mal cherché et testé des choses mais sans résultat, comment pourrais-je faire ?

Cordialement,

Re: formulaire et tableau

par kalak » 12 nov. 2011, 20:47

Oui le point d'exclamation sert à faire l'inverse d'une fonction. je dois donc bien laisser !isset($_POST['pass']) car si il n'existe pas j'affiche le message d'erreur.

Pour la quatrième voici la condition : (isset($_POST['pass']) && strlen($_POST['pass']) <8 )

Cordialement,

Re: formulaire et tableau

par Cyrano » 12 nov. 2011, 20:26

Ok, revoyons chaque point :

Premier test : la différence entre la présence ou non d'un « ! » est très importante, si tu ne sais pas quelle différence ça fait, tu risques fort de patiner longtemps, et il faut reconnaitre que ça ne se devine pas. écrire « !isset() » est équivalent à « false == isset() », donc à avec le « ! », ça revient à vérifier que le mot de passe ... n'existe pas, ce qui n'a rien de logique et c'est à ce détail que je faisais référence en indiquant une erreur tout à l'heure;

Second et troisième point, c'est correct

Quatrième point : où est la condition écrite en PHP ?

Quant à ton questionnement sur le point trois : dans la mesure où tu as testé l'existence du mot de passe, en ajoutant la vérification d'équivalence avec le mot-de-passe de vérification, le test d'existence du second est implicite, il est inutile de l'ajouter explicitement.

Travaille en listes et traite un item à la fois, tu te mélangeras moins les pinceaux, et tu regrouperas ensuite quand chaque condition aura été correctement définie.

Re: formulaire et tableau

par kalak » 12 nov. 2011, 20:11

1. le champ "verif_pass" existe ==> !isset($_POST['pass']) (ou plutot isset($_POST['pass']); mais d'ailleurs je ne comprends pas très bien à ce niveau car que j'enlève ou non le point d'exclamation cela ne change rien à ma condition je ne comprend pas)
2. j'ai bien cliqué sur le bouton "inscription" avant d'afficher le message d'erreur ==> isset($_POST['inscription']) ($_POST['inscription']) != "" )
3. les deux mots de passe soient identiques, ==> ($_POST['pass'] == $_POST['verif_pass'] )
4. le mot de passe comporte un minimum de 8 caractères. ==> je n'ai pas besoin de le revérifier.

le problème c'est que pour la condition 3 je ne test pas l'existence de la variable je pense que le problème vient de là ?

Cordialement,

Re: formulaire et tableau

par Cyrano » 12 nov. 2011, 19:28

Ben le problème dans ce cas, c'est que tes traduction ne correspondent pas toutes aux conditions listées : si je reprends ta liste ça donne ceci :

Je dois vérifier que
  1. le champ "verif_pass"existe
  2. j'ai bien cliqué sur le bouton "inscription" avant d'afficher le message d'erreur
  3. les deux mots de passe soient identiques,
  4. le mot de passe comporte un minimum de 8 caractères.
    (vu que je vérifie le nombre de caractères sur le champ "pass" je ne pense pas avoir besoin de le revérifier une deuxième fois sur le champ "verif_pass" puisque je vais vérifier si celui ci correspond au même que "pass".
Compare avec la liste des conditions que tu as écrites en PHP :
  1. !isset($_POST['pass'])
  2. isset($_POST['inscription'])
  3. ($_POST['inscription']) <> "" )
  4. ($_POST['pass'] == $_POST['verif_pass'] )
Reprends ces deux listes et mets-moi les correspondances entre les items, il manque des bouts quelque part, et en relisant attentivement ton code, il y a une erreur dans une des condition en PHP

Re: formulaire et tableau

par kalak » 12 nov. 2011, 19:15

Je dois vérifier que le champ "verif_pass"existe et également que j'ai bien cliqué sur le bouton "inscription" avant d'afficher le message d'erreur, je dois ensuite vérifier que les deux mots de passe soient identiques, et qu'il comporte un minimum de 8 caractères. (vu que je vérifie le nombre de caractères sur le champ "pass" je ne pense pas avoir besoin de le revérifier une deuxième fois sur le champ "verif_pass" puisque je vais vérifier si celui ci correspond au même que "pass".

Ce qui donne en php :

if ((!isset($_POST['pass']) && isset($_POST['inscription']) && ($_POST['inscription']) <> "" ) && ($_POST['pass'] == $_POST['verif_pass'] )


Cordialement,