|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
Bonjour.
Mon captcha n'est jamais synchronisé. Quelque chose m'échappe. Code :
__________________
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Salut
A mon sens tu fais les choses dans le désordre, car dès le départ tu détruit la variable de session "color" : unset($_SESSION['color']); Il faut normalement vérifier que la couleur saisie dans le champ texte (une fois le formulaire validé) corresponde à la couleur définie dans la session (lors de la création du formulaire), et ça en 1er. Quelque chose comme : Code :
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#3 | |||||||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
Pour commencer, merci et bonjour!
Dans le manuelle, if(isset($a,$b), on indique ça comme syntaxe correcte. Mais, j'ai déjà essayé et j'ai essayé de nouveau et ça indique une erreur vis-a-vis la virgule entre post et session. Citation:
Et je n'ai pas encore tappé la couleur. Ensuite, si je continue et que je fais refresh, l'indication "erreur" disparait. Et là, je tappe la couleur et la page n'est que rafraichie. code revisé (traitement) : Code :
le formulaire : Code :
__________________
|
|||||||
|
|
00
|
|
|
#4 | |||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Corrige comme ceci :
Code :
Concernant la syntaxe du isset(), j'avais fais une petite erreur effectivement. Dans la doc de Php il est indiqué ceci : bool isset ( mixed $var [, mixed $... ] ) On peu donc mettre plusieurs paramètres successivement, ce qui évite de répéter isset(). Ceci : if (isset($var1, $var2, $var3)) ... est équivalent à : if (isset($var1) && isset($var2) && isset($var3)) ... Citation:
Remplace $_SERVER['PHP_SELF'] par le nom de ta page (c'est mieux de toute manière). Il y a une variable $token. Existe t-elle ? Sa valeur est elle correcte ? Puis englobe tous les éléments avec un <fieldset> ou <p> : (c'est plus conforme selon la W3C) Code :
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||||
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
Là, ça fonctionne avec ces changements.
Je révise ma version complète avant de fermer ce poste. Il se peut que j'aie d'autres problème. Pour le token en soit, il fonctionne bien. Je vais peut-être revoir l'emplacement du unset($_POST). Pour ...php_self, je vais revoir. La version corrigée : Code :
__________________
|
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Est-ce que la gestion des erreurs de Php est activée ? (php.ini, display_errors à On).
Voir aussi ceux de MySQL (php.ini toujours, mysql.trace_mode à On). S'il y a erreur au moins tu auras une indication. Sinon, et vu qu'à un moment tu obtenais un résultat correcte, et bien évite d'intégrer trop de code d'un coup, fait petit bloc par petit bloc et fait des essai à chaque intégration. Tu vas surement repérer d'où vient l'erreur.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
|
|
#7 | |
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
Côté erreur PHP, ça va. Il en a pas.
Le bloc tout seul du captcha va bien mais c'est intégré à mon code que ça ne va pas. Je pensais faire de même. Sur la vue d'ensemble, je ne sais pas si ça semble être correcte. Je me demande s'il n'y aurait pas un logiciel ou un plugin déboguer en PHP? Merci. Citation:
__________________
|
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 727 ![]() |
Citation:
Mais les logiciels, même les plus avancés, ont leur limites. Si tu penses ne pas avoir d'erreurs de Php, on peu imaginer 2 types d'erreurs : - Soit une erreur de HTML par là qui empêche la soumission du formulaire. - Soit une erreur de logique. (aucun logiciel permettra de détecter une erreur de logique). Dans les 2 cas on peu faire du débogage simple pour le savoir : de simple echo ou print_r() suffisent. Pour le 1er cas, suffit de faire un print_r($_POST). S'il y a rien dedans après validation, c'est qu'il y a erreur. Attention tout de même aux redirections, quand on débug comme ça on supprime la redirection, ou on met un point d'arrêt juste avant (un exit()). Pour le 2ème cas, suffit de mettre des echo dans chaque condition (chaque if, else, else if, etc ...) de façon à suivre le déroulement, et détecter que ça n'entre pas dans la ou les bonnes conditions. Il faut aussi apprendre à déboguer son code, c'est aussi important que de faire le programme/le site. Tu as tout ce qu'il faut pour savoir la ligne exact d'où vient l'erreur.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 317 ![]() |
J'ai enlevé un truc sur les cookies et le code fonctionne dans son entier.
Merci pour l'aide RunCodePhp.
__________________
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com