Aller au contenu

didinux

Messages recommandés

Membre, Posté(e)
didinux Membre 10 messages
Baby Forumeur‚
Posté(e)

bonjour à tous,

Voilà je faire un captcha sur mon site web, car j'en ai assez de recevoir des mails bidons a cause des robots de google que passe dessus.

Mais je n'arrive pas a tester la valeur sasie avec la valeur de mon image.

J'ai fait mes images toute seul, avec photoshop.

Je vous envoi un extrait de mon code.

captcha.php

<?php session_start();

// Captcha sur 6 caractères

// On commence à créer le tableau avec son image de fond ...

echo "<table width=166 height=33 cellpadding=0 cellspacing=0 border=0><tr height=33><td width=166 background='images/img-captcha/captchafond.jpg' align=center valign=middle>";

// Tirer les 6 valeurs aléatoires parmi les caractères ci-dessous

$elt=array("a","b","c","d","e","f","g","h","j","k","m","n","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9");

// Les noms des images sont volontairement farfelus pour éviter de trouver une correspondance avec les caractères

$ima=array("aze","rty","uio","pqs","dfg","hjk","lmw","xcv","bna","zer","tyu","iop","qsd","fgh","jkl","mwx","cvb","naz","ert","yui","opq","sdf","ghj","klm","wxc","vbn","aqw","zsx","edc","rfv","tgb","yhn","ijn");

$max=sizeof($elt);

$rand_str = md5(microtime());

$tir=array(" "," "," "," "," "," "); // Les 6 éléments

// On va générer aléatoirement 6 valeurs

for($i=0;$i<6;$i++){

$trouve=1;

while($trouve==1){

$tirage=rand(1,$max)-1;

$trouve=0;

for($j=0;$j<6;$j++){if($tir[$j]==$elt[$tirage]){$trouve=1;}}

}

$tir[$i]=$tirage;

}

// On écrit maintenant les 6 caractères avec les 6 images en les séparant par une image transparente

for($i=0;$i<6;$i++){echo "<img src='images/img-captcha/".$ima[$tir[$i]].".gif'><img src='images/img-captcha/blanc.gif' width=2 height=33>";}

echo "</td></tr></table>";

$chaine="";for($i=0;$i<6;$i++){$chaine=$chaine.$elt[$tir[$i]];}

$_SESSION["captcha"]=$chaine;

?>

contact.php

<form id="formulaire" method="post" action="formmail.php">

<p><label> Nom:</label><input type="text" name="nom"/></p>

<p><label> Prenom:</label><input type="text" name="prenom"/></p>

<p><label> Age:</label><input type="text" name="age"/></p>

<p><label> email:</label><input type="text" name="mail"/></p>

<p><label>Sujet du message</label><input type="text" name="sujet"/></p>

<p><label>Entrer votre texte:</label><textarea cols="40" rows="10" name="zone"></textarea></p>

<p><input type="reset" value="Effacer"/></p>

<?php include("captcha.php");?>

<p><label>Saisissez le code</label><input type="text" name="captcha" />  

<input type="submit" name="Envoie" value="Envoyer"></p>

</form>

verif.php //verification du formulaire

if(isset($_POST['captcha'])){

$postcap = strtolower($_POST['captcha']);

$md5cap = md5($postcap);

/* Cryptage et comparaison avec la valeur stockée dans $_SESSION['captcha'] */

if($md5cap == $_SESSION['captcha']){

echo ("<p class='texte'>Code correct</p>");

$Envois = 1;

} else {

echo ("<p class='texte'>Le code est erroné, Ahem.. Recommencez</p>");

$Envois = 0;

}

}

Voilà j'espère que vous pourrez m'aider car je galère.

Le mail est envoyé même si le code n'est pas bon. Moi je voudrais qu'il mette un message d'erreur et que le mail ne soit pas envoyer.

Merci d'avance

Didinux.

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant
Membre, 44ans Posté(e)
Arkon Membre 202 messages
Baby Forumeur‚ 44ans‚
Posté(e)

T'aurais du prendre une solution toute faite, y a des trucs bien en open source (du genre : http://www.phpcaptcha.org/), ça évite de devoir tout redévelopper :rtfm:

Sinon pour ton soucis, faut que tu fasses un var_dump de $md5cap et $_SESSION['captcha'] avant la comparaison.

C'est normal que tu partes vers "formmail.php" dans l'action de ton form plutôt que vers verif.php?

Il manque pas une conversion en md5 de ton captcha rempli pour pouvoir faire la comparaison?

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
didinux Membre 10 messages
Baby Forumeur‚
Posté(e)

salut

Non c'est pas drôle si c'est tout fait.

d'une tu ne comprend pas tout et tu ne peux pas te vanter d'en avoir créer un.

Mais merci d'avoir répondu.

J'ai trouvé la solution sans utilisé le md5. Et ca marche très bien.

Si tu veux aller voir je te laisse le lien :

snsandrine.free.fr

Et merci encore.

biz

Didinux

Lien à poster
Partager sur d’autres sites

Invité EnYgmA
Invités, Posté(e)
Invité EnYgmA
Invité EnYgmA Invités 0 message
Posté(e)

Hello

ce passage est très rigolo :rtfm:

d'une tu ne comprend pas tout et tu ne peux pas te vanter d'en avoir créer un

Bonne masturbation neurologique :o°

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
etacarenis Membre 1 message
Baby Forumeur‚
Posté(e)

Bonsoir,

Je ne vois pas trop ce qui est rigolo dans cette phrase... c'est tout à son honneur de vouloir en faire un entièrement.

En ce qui me concerne, je me suis appuyé sur une solution toute faite, j'ai compris le fonctionnement, mais pas complètement... et je trouve ça dommage d'utiliser quelque chose sans en comprendre totalement le fonctionnement.

C'est cette solution que j'ai utilisé: http://www.captcha.fr/

Il permet pas mal de choses, mais c'est un peu complexe pour moi.

Enfin, je venais pour glaner des informations sur ce sujet justement. Je vais me pencher sur la solution de didinux histoire de voir si je comprend mieux :rtfm: .

Sur ce, bonne soirée

Lien à poster
Partager sur d’autres sites

Membre, 44ans Posté(e)
Arkon Membre 202 messages
Baby Forumeur‚ 44ans‚
Posté(e)

Disons que la majorité des solutions open source proposées ont été testées par des dizaines de milliers de personnes (voire plus), du coup t'es tranquille niveau robustesse, c'est très peu probable qu'il y ait un bug ou une faille de sécurité.

Après c'est vrai que si tu récupères tout pour ton site, c'est pas comme ça que tu vas t'améliorer :rtfm:

J'arrive pas à accéder à ton site, t'aurais pas fait une boulette dans l'URL? :o°

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
didinux Membre 10 messages
Baby Forumeur‚
Posté(e)

salut

ah oui excuse moi je l'ai mal écrit

sn.sandrine.free.fr J'ai oublier de marquer un point.

Même si tu le fais seul, tu peux aussi éviter les bug, et faire un site bien.

Lien à poster
Partager sur d’autres sites

Membre, 44ans Posté(e)
Arkon Membre 202 messages
Baby Forumeur‚ 44ans‚
Posté(e)

Oui, y a toujours moyen de faire quelque chose sans bug :rtfm:

Mais par contre niveau sécurité, c'est dur d'être toujours à la hauteur. Pour les sites à fort trafic ou sensibles ton captcha ne serait pas suffisant, le hacker aurait juste à aller sur ton site, regarder le code source pour avoir le nom des images et faire la correspondance entre le nom de l'image et sa valeur et à configurer son bot pour qu'il valide tout seul le formulaire.

Ne te méprends pas, je dis pas que tu as fait du mauvais travail, loin de là. Ton captcha convient parfaitement pour bloquer des bots complètement automatisés, comme ceux qui te spamment actuellement.

Je dis juste que des fois, ça vaut pas le coup de réinventer la roue. Je parle de ma propre expérience, j'ai refait entièrement un forum qui était pas trop mal, mais comparé à ceux de phpBB (par exemple), ce n'était pas à la hauteur, d'autant que eux font évoluer régulièrement leurs outils.

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
didinux Membre 10 messages
Baby Forumeur‚
Posté(e)

Merci du conseil.

Je vais essayer de rajouter un peu de cryptage md5 dans mon code.

Mais je ne pense pas que mes image sont accessible, veux que le php ne s'affiche pas sur internet il ne verra rien. A moins de connaitre mes identifiant pour récupérer mes page avec fillezila, je ne vois pas comment il pourrait faire?

Sinon tu a été voir mon site, comment tu le trouve ?

Lien à poster
Partager sur d’autres sites

Membre, 37ans Posté(e)
Akarkop Membre 228 messages
Baby Forumeur‚ 37ans‚
Posté(e)

Arkon parle du code source HTML (et non PHP) de ton site, qui lui est accessible. Il veut dire qu'un hacker pourrait facilement découvrir la correspondance fichier .gif / caractère de ton captcha, par exemple le chiffre 3 est edc.gif, la lettre N est fgh.gif, etc. Un script aurait vite fait de découvrir quelle lettre est quelle image (il suffit de recharger la page suffisamment de fois pour être passé par tous les caractères) et pourrait résoudre ton captcha rien qu'en lisant l'URL des images.

Normalement, un captcha n'est pas composé de plusieurs images (une pour chaque lettre) mises l'une à côté de l'autre comme tu le fais, mais d'une seule image générée automatiquement par le site. Donc tu ne devrais pas avoir des fichiers .gif tout prêt de déjà stocké sur ton site pour le captcha, c'est le code PHP qui devrait utiliser une librairie graphique (il en existe plein pour PHP) pour créer l'image.

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
didinux Membre 10 messages
Baby Forumeur‚
Posté(e)

Comment je dois faire alors pour rajouter la fonction md5, afin que les images ne se voit pas ?

Merci

Lien à poster
Partager sur d’autres sites

Membre, 44ans Posté(e)
Arkon Membre 202 messages
Baby Forumeur‚ 44ans‚
Posté(e)

Oui voila, un code qui inclut dans une seule image, avec une déformation de la police et un ajout de trait pour que les bots qui savent "lire" n'arrive pas à déchiffrer ce qui est marqué, est actuellement une très bonne solution pour du captcha! (on fait encore mieux niveau sécurité mais après c'est à base de position des clics dans la page... beaucoup plus complexe! Les banques ont opté pour cette solution.)

Après ton système de captcha n'est pas mauvais, j'ai déjà vu du captcha validé en javascript (ce qui veut dire qu'il suffit de désactiver le js pour passer outre) pour une des sous-parties du portail web d'Orange. C'était bien bidon comme solution, mais à priori ça suffisait à bloquer les bots!

Hacker un site à la main demande bcp plus de temps que laisser son bot crawler les sites et valider les formulaires tout seul :rtfm:

Sinon pour ton site, il est plutôt bien fait, mais j'aurais quelques petites remarques si ça t'intéresse (dès que j'ai un peu plus de temps)

Lien à poster
Partager sur d’autres sites

Invité EnYgmA
Invités, Posté(e)
Invité EnYgmA
Invité EnYgmA Invités 0 message
Posté(e)
Bonsoir,

Je ne vois pas trop ce qui est rigolo dans cette phrase... c'est tout à son honneur de vouloir en faire un entièrement.

Hello ,

c'est juste que de dire ce genre de chose c'est très nul , qu'elle veuille faire les choses elle même c'est chouette mais de là à vouloir le faire pour avoir les chevilles qui gonflent quand elle donnera la marche à suivre euh no comment !

Bref chacun voit les choses de son oeil , je préfère lire quelqu'un avec un minimum d'humilité :rtfm:

Bonne journée bien sûr :o°

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
didinux Membre 10 messages
Baby Forumeur‚
Posté(e)

Oui va s'y je t'en pris fait des critiques, cela ne dérange pas.

Et merci encore de ta pars Arkon.

biz

Lien à poster
Partager sur d’autres sites

Membre, 44ans Posté(e)
Arkon Membre 202 messages
Baby Forumeur‚ 44ans‚
Posté(e)

Bon je fais un peu vite fait, j'ai plein de taff là^^

C'est juste des petites remarques (si je peux me permettre) pour améliorer un peu ton site. Faut pas forcément prendre ça au pied de la lettre, je suis qu'un humble internaute, j'ai pas la science infuse :rtfm:

Alors, voilou :

- Il manquerait un point d'entrée vers les films. Du genre, une page de listing avec les films et leur réalisateur (sans les images) qui serait accessible via un onglet.

- "liste des films" : c'est en police Times, mets autre chose, c'est moche le times sur un site web (ça donne l'impression que c'est fait avec Word :D ). Faudrait aussi le positionner ailleurs, soit juste en dessous du portrait, soit à la fin du texte avec genre un chevron " > liste de ses films" (comme tu as mis pour les personnages). Bref dans tous les cas, une petite marge à gauche pour pas qu'il soit collé ferait pas de mal :o°

- rajoute un petit style="border:0px" sur les images des films, ça évitera la bordure bleue toute moche :yahoo:

- Il manquerait un lien de retour vers le réalisateur quand tu es sur la liste des films. Il faudrait que tu rappelles aussi le réalisateur sur la page. Je vois que tu l'as déjà mis dans le titre de la page, mais il faudrait que ça apparaisse aussi en html, que ça soit plus visible, finalement peu de monde regarde le titre en haut du navigateur. Sinon tu peux mettre un fil d'ariane avec par exemple : "Accueil > Hayao Miyazaki > Liste des films", sur chaque page, ça permet à l'internaute de s'y retrouver facilement, puis en plus y a les liens de retour dessus.

- L'image pour les onglets est pas un peu floue? Surtout sur les bords... mais après ça vient peut être de mon écran pourri :o°

- Allez, je finis avec ton livre d'or :D. J'aime bcp la présentation des messages, elle est super sympa. Par contre, le formulaire est un peu moins joli. Mets pas du Times pour les libellés. Le bouton "effacer" sert pas à grand chose, tu peux l'enlever je pense. Faudrait trouver un moyen pour aligner un peu plus ton captcha.

Bon au final, c'est pas mal de détail qui devrait pas prendre bcp de temps. La structure du site a l'air bien, c'est juste un peu de peaufinage que je te propose :D

Arkon

Lien à poster
Partager sur d’autres sites

Membre, Posté(e)
didinux Membre 10 messages
Baby Forumeur‚
Posté(e)

Salut

Je te remercie pour ces différentes critiques.

J'ai pris note de quelque unes.

voilà. biz

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×