Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL

Programmation => PHP/MySQL - (x)HTML - ... => Discussion démarrée; par: ventearticles le 31 Juillet 2010, 11:34:52



Titre: Un captcha en php
Posté par: ventearticles le 31 Juillet 2010, 11:34:52
Bonjour, je débute en php et j'ai trouvé un code pour créer un captcha sur un magasine de programmation (C'est Programmer si mes souvenirs sont bons, on me l'avait prêté).

Mais à chaque fois que je mets en ligne, j'ai ce message :

Citation
L'image “http://www.ventearticles.webou.net/captcha/captcha.php” ne peut être affichée car elle contient des erreurs.

Le code est du type :
Code:
<?php 
session_start
();
$largeur=100;
$hauteur=50;

header('Content-type:image/png');
$img imagecreatetruecolor ($largeur$hauteur);

function 
chaine()
{
$md5 md5(microtime()*mktime());
$chaine substr($md505);
return $chaine;
}
$_SESSION['text'] = chaine();
?>


<?php 
$fond
=imagecolorallocate($img000);
imagerectangle($img334040$fond);
?>


<?php 
for ($cube=0$cube<25$cube++)
{
$fondCol=imagecolorallocate($imgrand(0,130)+1rand(0,130), rand(0,130));
$x rand(0$largeur);
$y rand(0$hauteur);
$w rand(5$largeur/2);
$h rand(5$hauteur/2);
imagefilledrectangle ($img$x$y$x+$w$y+$h$fondCol);
imagecolordeallocate($img$fondCol);
}
?>


<?php 
$col
=imagecolorallocate($img,50128250);
imageline($img1010400150$col);
$col=imagecolorallocate($img12825030);
imageline($img003929$col);
imageline($img4008459$col);
?>


<?php 
$col
=imagecolorallocate($img,250,199,rand(128,255));
imagearc($img,20,25,60,60,0,360,$col);
?>


<?php 
$angle
=mt_rand(10,40);
$font="time.ttf";
$x=rand(10,35);
for(
$c=0;$c<5;$c++)
{
$size=mt_rand(13,24);
$text=$_SESSION['text'][$c];
$y=30+rand(0,18);
$color=imagecolorallocate($img,rand(100,254), rand(100,254), rand(100,254));
imagettftext($img$size$angle$x+15*$c$y$color$font$text);
}
?>

<?php 
imagepng 
($img);
imagedestroy($img);
?>

Si quelqu'un pourrait m'aider. Merci d'avance!

Edit MrsB: j'ai mis en code pour y voir qq chose!!


Titre: Re: Un captcha en php
Posté par: MrsB le 31 Juillet 2010, 23:10:51
Bon, rien de flagrant à 1ère vue dans le code (à part que je ne vois pas bien pourquoi tu fermes les balises php pour les rouvrir aussitôt), mais c'est ton msg d'erreur qui me paraît louche:
Citation
L'image “http://www.ventearticles.webou.net/captcha/captcha.php”
... depuis quand une extension .php peut-elle correspondre à une image??

De plus, sur captcha.php
Citation
<b>Warning</b>:  imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Could not find/open font in <b>/home/venteart/public_html/captcha/captcha.php</b> on line <b>59</b><br /><br />
me fait penser que l'erreur ligne 59 est dans un bout du code qu'on n'a pas!!


Titre: Re: Un captcha en php
Posté par: ventearticles le 01 Août 2010, 12:59:52
C'est pour cela que ça m'énerve j'ai beau chercher, je trouve pas >:(.

Au fait désormais, j'ai supprimé les balises php inutile, il ne reste plus qu'une ouvrante en début de programme et une fermante en fin.

Maintenant j'ai dans erreur_log:
Warning:  imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Could not find/open font in /home/venteart/public_html/captcha/captcha.php on line 58


Titre: Re: Un captcha en php
Posté par: MrsB le 01 Août 2010, 15:16:57
Oui, mais je persiste à penser à un pb d'extension...
va sur
http://ventearticles.webou.net/captcha/
et essaie de faire un "enregistrer sous" sur le lien vers captcha.php:
on te propose captcha.png,
pas captcha.php...
Or normalement là aucun script n'est en train de s'exécuter...


Titre: Re: Un captcha en php
Posté par: mitowel le 13 Août 2010, 17:26:11
essai ce lien
http://img1.imagilive.com/affiche/0810/ma_copy_ecrane27.jpg.htm


Titre: Re: Un captcha en php
Posté par: Keanjyto le 20 Août 2010, 12:08:45
Salut,

Un captcha peut parfaitement être un fichier PHP, exemple avec le mien : "http://mescahiers.webou.net/h.random.php" (tant que le header indique qu'il s'agit d'une image ;) ).

A première vue, il n'y a pas d'erreur mais il s'agit peut-être de la police qui n'est pas supporté ou installé sur le serveur de Webou, il faut enlever la ligne suivant :
Code:
$font="time.ttf";
Et la remplacer par
Code:
$font="";
Ce qui utilisera la police par défaut disponible sur le système.

Sinon, je ne vois pas il faudrait passer plus de temps dessus et tout de suite je ne peux pas... :/

Cordialement,
Keanjyto.