UN CAPTCHA, AVEC GD, SUPER SIMPLE, POUR LES NOOB'S :)
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 2012
-
30 sept. 2008 à 16:07
nax333
Messages postés3Date d'inscriptionmercredi 31 octobre 2007StatutMembreDernière intervention 4 mai 2009
-
24 avril 2009 à 11:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 8 oct. 2008 à 17:30
OCR ou optical character recognition ou reconnaissance optique de caractères en français dans le texte... il sagit d'algo introduit dans les bots pour que ces dernier puissent lire du texte sur des images... pour plus d'infos...
cs_baloc
Messages postés56Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention29 octobre 2010 7 oct. 2008 à 11:37
le jour où le débutant le lira est arrivé...
je suis désolé mais je ne comprends pas ton code. Il y a deux choses qui me choque en faite
la première, c'est que si un code est adressé à des débutants, un minimum de commentaire est recquis. J'en ai pas vu.
la deuxième c'est que tout reste à la même ligne.
celui de Yoman64 est plus clair, on repère rapidement les blocs d'instruction.
et si quelqu'un pouvait m'exliquer ce qu'est un ORC s'il vous plait. Merci
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 6 oct. 2008 à 08:36
un jours un debutant lira ca et dira :
ce code m'a permi d'apprendre a faire du html sale
ce code m'a permi de ne plus etre spamme par les robots minables, mais je suis toujours floode par les gens qui me detestent (bon ok, 70% des captchas sont dans ce cas, mais c'est pas une raison pour faire pire que les autres...)
ce code m'a permi d'apprendre a ne pas indenter mes sources, comme ca elles ne sont pas lisibles par les mechants. (en plus, ca m'apprend a faire du python)
bon, sans rire :
-t'indentes mal
-ta gestion des erreurs est foireuse (meme pour un debutant)
-j'aime les chips
-ton html est mauvais
Bref, un type a poste un tuto pour faire un captcha sur le sdz, si tu t'arretes a la premiere partie, ca ne sert a rien de partager ton captcha, parce-que c'est un captcha faible...
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 3 oct. 2008 à 17:50
Moi j'adore les débutants qui postent des codes pour les débutants et qui refusent les critiques constructive... .. .
Pour en revenir au code moi ce que je n'aime pas avant tout c'est que tu ne sépare pas ton captcha du reste... tu dois séparer l'affichage du traitement surtout pour un captcha... si un débutant copie colle ton script dans une de ses pages ton code ne marchera pas car le code de l'image sera pollué par le code du reste de la page... d'ailleurs avec ton echo $msg; à la fin je suis surpris que l'image s'affiche... .. .
Pour finir... ce n'est pas parce que quelqu'un est débutant que d'une part il est complètement demeuré et que d'autre part ses attente sont aussi basique... ton code aurait été interessant pour un débutant si tu l'avais intégré à un tuto sur les bases de l'utilisation de la lib GD avec création d'une petite captcha comme exemple/TP... tel quel je ne pense pas qu'il soit très utile dans le sens ou un débutant ne codera pas une captcha lui même, et ne reprendra donc pas ton code, mais utilisera un code déja fait et pour cela ta captcha est trop simpliste... .. .
En parallèle comme dit précédemment un OCR cassera facilement ta captcha et comme la plupart des boot en intègrent un, ta captcha ne protègera réellement que des sites qui ne seront pas la cible de boot et donc qui n'ont pas besoin de captcha... pour parer à cela varie la taille, l'espacement de tes caractères et crée des zones parasites sur le fond de ton image comme par exemple des lignes... .. .
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 2 oct. 2008 à 09:19
@Dededede4 : Tu vois comme c'est chian de lire ma phrase (je l'avoue, j'ai aussi eu du mal à me relire :p), imagine comme ca l'est quand tu indente pas ton code ?
Ce que j'essaye de te dire par là, c'est que ce n'est pas en utilisant la raison du débutant que l'on peux se permettre tout et n'importe quoi. Au contraire ! Le fait que c'est des débutants, il vaut mieux les entrainer à faire un bon code, propre et indenté, afin qu'ils apprennent les bonnes manières dès le début.
@Teclis01 : j'ai aussi eu du mal après l'avoir éclatée, à me relire :p
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 2 oct. 2008 à 09:15
@codefalse
Lire ta chaine de caractère représentant une phrase éclatée m'a vraiment perturbé en arrivant au travail (avant le café ^^) t'es fou!!! Sur le coup j'me dis oulala je comprend rien de rien ce matin >_<
@dededede4
On te demande pas de partir, juste d'améliorer :)
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 2 oct. 2008 à 07:13
Ce n'est pas méchant, juste une remarque "pertinante" !
a++
dededede4
Messages postés235Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention11 septembre 2009 1 oct. 2008 à 22:28
Bon,
se faire prendre comme ça...
Je vais voir ailleurs =)
A+
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 1 oct. 2008 à 22:25
tach angéquo idan ston co de?yato ujou rsp asdi dent a tion!c est tou jourspl usf acil e delir euncod e inden téc omm eunt e xteb ien esp acé!
dededede4
Messages postés235Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention11 septembre 2009 1 oct. 2008 à 22:22
Voila, vous le trouver comment ?
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 1 oct. 2008 à 17:21
@Yoman64 : Bah ché pas, je comprenais pas trop justement :p Il aurait pu, mai du coup il aurait du expliquer parce que j'aurai pas compris pourquoi :p
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 1 oct. 2008 à 17:08
@dededede4:
Hum je vois vraiment pas pourquoi un switch serait plus compliqué pour un débutant qu'un if/then/else.
Honnêtement, dès que tu pige ce que fait le switch tu peux pas vraiment ne pas comprendre...
De toute façon, les points à retenir de mon code n'est pas switch vs if, mais code indenté et propre vs pas indenté, laid, plein de mauvaises habitudes et bourré de fautes d'orthographe.
= vs == fond la même chose dans ton cas, oui et alors ? En programmation le typage est la chose la plus basique et la plus essentielle.
Je vois que tu es débutant, tu ne l'as peut être pas encore appris, mais si des personnes plus expérimentées que toi tel que Codefalse, Teclis01 ou encore moi même te dise que quelques chose est mal fait ou mauvais, faudrait peut être remettre en doute tes connaissances aux lieu de dire qu'on a tord...
@Teclis01:
C'est vrai pour la coloraison, j'avais pas pensé ;-). Toutefois pour la vitesse, moi je dis que c'est à bencher :P
@Codefalse:
Ben voyons, ça ne va pas aujourd'hui ? T'as vraiment cru que Teclis en avait contre toi :P
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 1 oct. 2008 à 16:39
arf :p
J'espère juste qu'il va améliorer son code car sinon je serai contraint de le supprimer.
La version actuelle incite les développeurs débutant à prendre de mauvaise habitudes, c'est donc pas conseillé.
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 1 oct. 2008 à 16:08
@codefalse
non non, Je deconnais codefalse >_< c'etait l'attitude de dire non a plein de choses de dededede4 qui me titillais mais il va en s'améliorant... En espérant voir une suite favorable.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 1 oct. 2008 à 16:04
@Teclis01 : Qu'est-ce que j'ai dit ou fait qui te titille ?
dededede4
Messages postés235Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention11 septembre 2009 1 oct. 2008 à 15:36
J'ai un correcteur XD
Je sais que il y a plein de captcha, j'en rajoute un :)
De plus tu m'a aider !Si je ne t'avais pas parler, j'utiliserais encore au lieu de ;p
Il y aurais pas non plus de else a la fin de mon code :)
On n'a jamais encore jamais fait quelque chose de parfait,
fait le. ;)
Bonne continuation.
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 1 oct. 2008 à 15:26
@dededede4
La prochaine fois déjà, commences par utiliser un correcteur d'orthographe
Tu sais les gens qui files des sources ne sont pas intouchables même les meilleurs!
Depuis que je suis ici je vois des gens qui posent encore des formulaires pour enregistrer un contact genre carnet d'adresse et qui ont l'impression d'inventer le code sans écrire ne serait ce qu'une ligne dite en PHP5. Je crois que je suis ici pour aider mais aussi pour donner de mon expérience et pour fournir du code réutilisable (facilement) et utile. C'est pour cette raison que je ne pose aucune source depuis un moment car je cherches une certaine perfection et je ne l'atteint pas. Mais un jour qui sait :)
@codefalse
Toi évidement :p
dededede4
Messages postés235Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention11 septembre 2009 1 oct. 2008 à 15:17
J'ai 15 zans ;p
codeflase, je panse que au niveau compatibilité, j'utilise des fonction qui sont sur toutes les versions de php,
sauf celle qui on pas GD :/.
@teclis01
2. La prochaine foix, je mais rien.
3. J'avais appris ça comme ça, prochaine foix aussi.
4. On s'en fou.
5. Quand j'ai appris le php, les code de cs m'on vraiment pas aider. =D
Presque chaque ligne est expliquée, et il ne fait pas "peur" au noobs,
A vous, peux être.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 1 oct. 2008 à 15:15
@Teclis01 : Quelle genre d'attitude ? la mienne ou celle de Dededede4 ? :p
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 1 oct. 2008 à 14:13
1. ok sorry ^^
2. Pas tout a fait un default car le default ne doit pas (je pense) être utilisé ainsi afin de facilité la relecture du code.
3. c'est plus rapide je pense et surtout on obtient la coloration syntaxique du langage (ici le html)
@dededede4
1.
Si je passe ici : if ( $adresse == "" )
j'ai rien dans $msg ( a vu de nez) donc variable a null mais tu fais un echo dessus (problème d algo)
2.
Code toujours pas indenté
3.
L'intérêt du type existe dès que tu travailles en entreprise (qui se veut faire du code propre)... Tu comprendras l'utilité de vérifier la valeur mais aussi le type (avec === et !==) avec les objets...
4.
ça fonctionne qu'avec les PNG ...
5.
Je continue de critiquer ou tu calmes tes ardeurs? on essaye de te donner des conseils utiles. Si tu veux aucune remarque tu postes pas de code et surtout... surtout... ne "vends" pas ton code comme un code pédagogique.
@codefalse
Désolé mais ce genre d'attitude me titille... :/
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 1 oct. 2008 à 13:58
les switchs, les isset, les ===, biensûr, ca aboutit au même résultat.
C'est juste une question de bon sens.
On peux aussi dire au débutants de coder en utilisant <?= $var; ?> tant qu'à faire.
Ca s'appelle juste la compatibilité ...
dededede4
Messages postés235Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention11 septembre 2009 1 oct. 2008 à 13:45
Petite correction sur mon dernier commentaire :
Si les commentaire vous aimer, vous lisez pas.
Si les commentaires vous aimer pas, vous lisez pas.
On peux pas éditer ;(
dededede4
Messages postés235Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention11 septembre 2009 1 oct. 2008 à 13:43
Ecoute, if / elseif / else c'est mille foix plus claire qu'un switch, pour un débutent.
Pour des confirmée, je dit pas....
Si les commentaire vous aimer, vous lisez pas.
isset c'est l'équivalent de if( $varible == "" ) // Même résulta a l'écran, et peux être même plus rapide, et sourtout plus clair.
Rajouter au lieu de > Aucun intéré u_u // Si le mec tape "2" au lieu de 2, il aura la page 2, c'est tout.
Sa peux même corriger des erreur de codage, si on rajoute des "" pour rien.
L'example de yoman est pas mal du tout,
mais pas envis de le vérifier, le corriger, puis le remplacer :p
Bref, il y a un truc pas mal sur se code, on a qu'a le copier coller sur un index pour le faire marcher ;p
J'ai corriger la petite faille sur le pg=verifie,
et rajouter le else.
A+
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 1 oct. 2008 à 10:03
1. Je sais à quoi sert exit, c'est que lui avait mis le echo $msg à la fin, au moment d'écrire le exit je n'avais pas encore déplacé le echo.
2. Ouais on devrait remplacer case '' par un default.
3. Pourquoi ne pas afficher le form via un echo ? D'après toi c'est plus rapide d'ouvrir/fermer les balises php que de passer par un echo ?
De plus l'utilisation d'un default revient à ce que je fais, si le $_GET est pas setté, on le set pour pas que PHP affiche une notice.
En fait dans un vrai projet la conception de l'auteur de mettre le captcha et le formulaire dans le même script est simplement non viable, donc un tel débat/dilemme n'a pas lieu d'être :P.
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 1 oct. 2008 à 09:56
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 1 oct. 2008 à 08:57
Sans hésiter plus clair.
exit; ... ?
1/exit sert à "tuer" l'exécution d'un script or on a pas besoin.
2/et le default du swith hum ? ^^
j'aimerais taper en url index.php?pg=Teclis01estUnDieuMaisLeDitesPas
3/on initialise pas un GET! pour le traiter après !!!
isset($_GET['pg']) or $_GET['pg'] = '';
if(isset($_GET['pg']){
//je traite
}
else{
//j'affiche le form et pas via un echo :p
}
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 1 oct. 2008 à 08:51
Afin de te donner un coup de main, j'ai réorganisé ton code pour le rendre plus clair:
<?php
session_start();
isset($_GET['pg']) or $_GET['pg'] = '';
switch($_GET['pg']) {
case '':
echo '
Tape le code :
<form method="post" action="index.php?pg=verifie">
À mon avis, le code que je viens de faire est beaucoup plus clair, simple et utile pour un débutant que ton code. Si je me trompe n'hésitez pas à me contredire ;)
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 1 oct. 2008 à 08:41
Salut,
Aussi après avoir vérifié si l'image était valide ou pas tu dois détruire la variable de session, sinon ton captcha sert à rien, une fois qu'on a le bon code stocké en session on peut très bien flooder puisque le code ne changera pas tant qu'on ne réaffiche pas l'image...
Et teclis a bien raison, ton code manque cruellement d'indentation. On s'en fiche qu'il soit simple, si il n'est pas facile à lire ça ne sert à rien.
Dernière chose ton captcha se casse en quelques secondes avec un OCR, il faudrait ajouté quelques difficultés !
Bonne continuation
a++
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 30 sept. 2008 à 19:47
désolé pour le double post, il était involontaire !
Petite remarque :
Tu peus remplacer AND par && et OR par ||
Tu peus aussi remplacer par dans certain cas (c'est plus strict, ça prend en compte le type de la variable(par exemple "2" est diférent de 2))
a++
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 30 sept. 2008 à 19:43
C'est pas une question de fonctions mais une question de lisibilité !
a++
danieljackson11
Messages postés4Date d'inscriptionsamedi 16 juillet 2005StatutMembreDernière intervention30 septembre 2008 30 sept. 2008 à 18:50
Il s'écrit un code pour lui même xD.
dededede4
Messages postés235Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention11 septembre 2009 30 sept. 2008 à 17:09
Heu...
Fin, si y'a une fonction que l'on connais pas, y'a qu'a regarder à droite de la ligne...
Pour les noob ;p
Tu n'a même pas besoin de lire...
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 30 sept. 2008 à 16:07
indente
ton
code
sinon
(
car il faut le dire
)
c'
est
chiant
24 avril 2009 à 11:17
http://www.phpcs.com/codes/CAPTCHA-ANTI-BOT-FICHIER-SON-WAV_47544.aspx
Bien entendu il est pas parfait, mais il est quand même bien plus resistant que le tien.
9 oct. 2008 à 19:08
cf : http://fr.wikipedia.org/wiki/OCR
(ouais moi non plus je ne lis pas ce qu'il y a plus haut avant de poster...)
9 oct. 2008 à 10:28
http://fr.wikipedia.org/wiki/OCR
8 oct. 2008 à 17:30
http://fr.wikipedia.org/wiki/OCR
Sinon si tu veux une captcha avec les explications du code tu as celle que j'ai laissé en lien...
http://www.phpcs.com/codes/CAPTCHA-VISUELLE_42607.aspx
@ tchaOo°
7 oct. 2008 à 11:37
je suis désolé mais je ne comprends pas ton code. Il y a deux choses qui me choque en faite
la première, c'est que si un code est adressé à des débutants, un minimum de commentaire est recquis. J'en ai pas vu.
la deuxième c'est que tout reste à la même ligne.
celui de Yoman64 est plus clair, on repère rapidement les blocs d'instruction.
et si quelqu'un pouvait m'exliquer ce qu'est un ORC s'il vous plait. Merci
6 oct. 2008 à 08:36
ce code m'a permi d'apprendre a faire du html sale
ce code m'a permi de ne plus etre spamme par les robots minables, mais je suis toujours floode par les gens qui me detestent (bon ok, 70% des captchas sont dans ce cas, mais c'est pas une raison pour faire pire que les autres...)
ce code m'a permi d'apprendre a ne pas indenter mes sources, comme ca elles ne sont pas lisibles par les mechants. (en plus, ca m'apprend a faire du python)
bon, sans rire :
-t'indentes mal
-ta gestion des erreurs est foireuse (meme pour un debutant)
-j'aime les chips
-ton html est mauvais
Bref, un type a poste un tuto pour faire un captcha sur le sdz, si tu t'arretes a la premiere partie, ca ne sert a rien de partager ton captcha, parce-que c'est un captcha faible...
3 oct. 2008 à 17:50
Pour en revenir au code moi ce que je n'aime pas avant tout c'est que tu ne sépare pas ton captcha du reste... tu dois séparer l'affichage du traitement surtout pour un captcha... si un débutant copie colle ton script dans une de ses pages ton code ne marchera pas car le code de l'image sera pollué par le code du reste de la page... d'ailleurs avec ton echo $msg; à la fin je suis surpris que l'image s'affiche... .. .
Pour finir... ce n'est pas parce que quelqu'un est débutant que d'une part il est complètement demeuré et que d'autre part ses attente sont aussi basique... ton code aurait été interessant pour un débutant si tu l'avais intégré à un tuto sur les bases de l'utilisation de la lib GD avec création d'une petite captcha comme exemple/TP... tel quel je ne pense pas qu'il soit très utile dans le sens ou un débutant ne codera pas une captcha lui même, et ne reprendra donc pas ton code, mais utilisera un code déja fait et pour cela ta captcha est trop simpliste... .. .
En parallèle comme dit précédemment un OCR cassera facilement ta captcha et comme la plupart des boot en intègrent un, ta captcha ne protègera réellement que des sites qui ne seront pas la cible de boot et donc qui n'ont pas besoin de captcha... pour parer à cela varie la taille, l'espacement de tes caractères et crée des zones parasites sur le fond de ton image comme par exemple des lignes... .. .
Si ça peut t'inspirer...
http://www.phpcs.com/codes/CAPTCHA-VISUELLE_42607.aspx
Bonne continuation à toi... .. .
@ tchaOo°
2 oct. 2008 à 09:19
Ce que j'essaye de te dire par là, c'est que ce n'est pas en utilisant la raison du débutant que l'on peux se permettre tout et n'importe quoi. Au contraire ! Le fait que c'est des débutants, il vaut mieux les entrainer à faire un bon code, propre et indenté, afin qu'ils apprennent les bonnes manières dès le début.
@Teclis01 : j'ai aussi eu du mal après l'avoir éclatée, à me relire :p
2 oct. 2008 à 09:15
Lire ta chaine de caractère représentant une phrase éclatée m'a vraiment perturbé en arrivant au travail (avant le café ^^) t'es fou!!! Sur le coup j'me dis oulala je comprend rien de rien ce matin >_<
@dededede4
On te demande pas de partir, juste d'améliorer :)
2 oct. 2008 à 07:13
a++
1 oct. 2008 à 22:28
se faire prendre comme ça...
Je vais voir ailleurs =)
A+
1 oct. 2008 à 22:25
1 oct. 2008 à 22:22
1 oct. 2008 à 17:21
1 oct. 2008 à 17:08
Hum je vois vraiment pas pourquoi un switch serait plus compliqué pour un débutant qu'un if/then/else.
Honnêtement, dès que tu pige ce que fait le switch tu peux pas vraiment ne pas comprendre...
De toute façon, les points à retenir de mon code n'est pas switch vs if, mais code indenté et propre vs pas indenté, laid, plein de mauvaises habitudes et bourré de fautes d'orthographe.
= vs == fond la même chose dans ton cas, oui et alors ? En programmation le typage est la chose la plus basique et la plus essentielle.
Je vois que tu es débutant, tu ne l'as peut être pas encore appris, mais si des personnes plus expérimentées que toi tel que Codefalse, Teclis01 ou encore moi même te dise que quelques chose est mal fait ou mauvais, faudrait peut être remettre en doute tes connaissances aux lieu de dire qu'on a tord...
@Teclis01:
C'est vrai pour la coloraison, j'avais pas pensé ;-). Toutefois pour la vitesse, moi je dis que c'est à bencher :P
@Codefalse:
Ben voyons, ça ne va pas aujourd'hui ? T'as vraiment cru que Teclis en avait contre toi :P
1 oct. 2008 à 16:39
J'espère juste qu'il va améliorer son code car sinon je serai contraint de le supprimer.
La version actuelle incite les développeurs débutant à prendre de mauvaise habitudes, c'est donc pas conseillé.
1 oct. 2008 à 16:08
non non, Je deconnais codefalse >_< c'etait l'attitude de dire non a plein de choses de dededede4 qui me titillais mais il va en s'améliorant... En espérant voir une suite favorable.
1 oct. 2008 à 16:04
1 oct. 2008 à 15:36
Je sais que il y a plein de captcha, j'en rajoute un :)
De plus tu m'a aider !Si je ne t'avais pas parler, j'utiliserais encore au lieu de ;p
Il y aurais pas non plus de else a la fin de mon code :)
On n'a jamais encore jamais fait quelque chose de parfait,
fait le. ;)
Bonne continuation.
1 oct. 2008 à 15:26
La prochaine fois déjà, commences par utiliser un correcteur d'orthographe
Tu sais les gens qui files des sources ne sont pas intouchables même les meilleurs!
Depuis que je suis ici je vois des gens qui posent encore des formulaires pour enregistrer un contact genre carnet d'adresse et qui ont l'impression d'inventer le code sans écrire ne serait ce qu'une ligne dite en PHP5. Je crois que je suis ici pour aider mais aussi pour donner de mon expérience et pour fournir du code réutilisable (facilement) et utile. C'est pour cette raison que je ne pose aucune source depuis un moment car je cherches une certaine perfection et je ne l'atteint pas. Mais un jour qui sait :)
@codefalse
Toi évidement :p
1 oct. 2008 à 15:17
codeflase, je panse que au niveau compatibilité, j'utilise des fonction qui sont sur toutes les versions de php,
sauf celle qui on pas GD :/.
@teclis01
2. La prochaine foix, je mais rien.
3. J'avais appris ça comme ça, prochaine foix aussi.
4. On s'en fou.
5. Quand j'ai appris le php, les code de cs m'on vraiment pas aider. =D
Presque chaque ligne est expliquée, et il ne fait pas "peur" au noobs,
A vous, peux être.
1 oct. 2008 à 15:15
1 oct. 2008 à 14:13
2. Pas tout a fait un default car le default ne doit pas (je pense) être utilisé ainsi afin de facilité la relecture du code.
3. c'est plus rapide je pense et surtout on obtient la coloration syntaxique du langage (ici le html)
@dededede4
1.
Si je passe ici : if ( $adresse == "" )
j'ai rien dans $msg ( a vu de nez) donc variable a null mais tu fais un echo dessus (problème d algo)
2.
Code toujours pas indenté
3.
L'intérêt du type existe dès que tu travailles en entreprise (qui se veut faire du code propre)... Tu comprendras l'utilité de vérifier la valeur mais aussi le type (avec === et !==) avec les objets...
4.
ça fonctionne qu'avec les PNG ...
5.
Je continue de critiquer ou tu calmes tes ardeurs? on essaye de te donner des conseils utiles. Si tu veux aucune remarque tu postes pas de code et surtout... surtout... ne "vends" pas ton code comme un code pédagogique.
@codefalse
Désolé mais ce genre d'attitude me titille... :/
1 oct. 2008 à 13:58
C'est juste une question de bon sens.
On peux aussi dire au débutants de coder en utilisant <?= $var; ?> tant qu'à faire.
Ca s'appelle juste la compatibilité ...
1 oct. 2008 à 13:45
Si les commentaire vous aimer, vous lisez pas.
Si les commentaires vous aimer pas, vous lisez pas.
On peux pas éditer ;(
1 oct. 2008 à 13:43
Pour des confirmée, je dit pas....
Si les commentaire vous aimer, vous lisez pas.
isset c'est l'équivalent de if( $varible == "" ) // Même résulta a l'écran, et peux être même plus rapide, et sourtout plus clair.
Rajouter au lieu de > Aucun intéré u_u // Si le mec tape "2" au lieu de 2, il aura la page 2, c'est tout.
Sa peux même corriger des erreur de codage, si on rajoute des "" pour rien.
L'example de yoman est pas mal du tout,
mais pas envis de le vérifier, le corriger, puis le remplacer :p
Bref, il y a un truc pas mal sur se code, on a qu'a le copier coller sur un index pour le faire marcher ;p
J'ai corriger la petite faille sur le pg=verifie,
et rajouter le else.
A+
1 oct. 2008 à 10:03
2. Ouais on devrait remplacer case '' par un default.
3. Pourquoi ne pas afficher le form via un echo ? D'après toi c'est plus rapide d'ouvrir/fermer les balises php que de passer par un echo ?
De plus l'utilisation d'un default revient à ce que je fais, si le $_GET est pas setté, on le set pour pas que PHP affiche une notice.
En fait dans un vrai projet la conception de l'auteur de mettre le captcha et le formulaire dans le même script est simplement non viable, donc un tel débat/dilemme n'a pas lieu d'être :P.
1 oct. 2008 à 09:56
dedemauvaisequalitéensedisantquecasuffitlargementpourundébutant...
c'estchiantdepasespacersoncodehein?
1 oct. 2008 à 08:57
exit; ... ?
1/exit sert à "tuer" l'exécution d'un script or on a pas besoin.
2/et le default du swith hum ? ^^
j'aimerais taper en url index.php?pg=Teclis01estUnDieuMaisLeDitesPas
3/on initialise pas un GET! pour le traiter après !!!
isset($_GET['pg']) or $_GET['pg'] = '';
if(isset($_GET['pg']){
//je traite
}
else{
//j'affiche le form et pas via un echo :p
}
1 oct. 2008 à 08:51
<?php
session_start();
isset($_GET['pg']) or $_GET['pg'] = '';
switch($_GET['pg']) {
case '':
echo '
Tape le code :
<form method="post" action="index.php?pg=verifie">
</form>';
break;
case 'verifie':
if ( isset($_POST['code']) && $_SESSION['chaine'] === $_POST['code'] ) {
$msg = 'Bon';
} else {
$msg = 'Pas bon';
}
echo $msg;
unset($_SESSION['chaine']);
break;
case 'image':
header ('Content-type: image/png');
$chaine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789';
$chaine = str_shuffle($chaine);
$_SESSION['chaine'] = substr($chaine, 0, 5);
$image = imagecreate(42,15);
$noir = imagecolorallocate($image, 0, 0, 0);
$blanc = imagecolorallocate($image, 255, 255, 255);
imagestring($image, 4, 1, 0, $chaine, $blanc);
imagepng($image);
exit;
break;
}
?>
À mon avis, le code que je viens de faire est beaucoup plus clair, simple et utile pour un débutant que ton code. Si je me trompe n'hésitez pas à me contredire ;)
1 oct. 2008 à 08:41
Aussi après avoir vérifié si l'image était valide ou pas tu dois détruire la variable de session, sinon ton captcha sert à rien, une fois qu'on a le bon code stocké en session on peut très bien flooder puisque le code ne changera pas tant qu'on ne réaffiche pas l'image...
Et teclis a bien raison, ton code manque cruellement d'indentation. On s'en fiche qu'il soit simple, si il n'est pas facile à lire ça ne sert à rien.
Dernière chose ton captcha se casse en quelques secondes avec un OCR, il faudrait ajouté quelques difficultés !
Bonne continuation
a++
30 sept. 2008 à 19:47
Petite remarque :
Tu peus remplacer AND par && et OR par ||
Tu peus aussi remplacer par dans certain cas (c'est plus strict, ça prend en compte le type de la variable(par exemple "2" est diférent de 2))
a++
30 sept. 2008 à 19:43
a++
30 sept. 2008 à 18:50
30 sept. 2008 à 17:09
Fin, si y'a une fonction que l'on connais pas, y'a qu'a regarder à droite de la ligne...
Pour les noob ;p
Tu n'a même pas besoin de lire...
30 sept. 2008 à 16:07
ton
code
sinon
(
car il faut le dire
)
c'
est
chiant