Quand j'utilise imagestring() (les deux lignes en commentaire #), j'obtiens une image, pas de soucis. Si ce n'est que je voudrais une police plus élaborée que celle proposée par défaut par imagestring() ! Pour un captcha, c'est le minimum...
Or si j'utilise la fonction imagettftext() suggérée dans plusieurs tutos, aucune image ne s'affiche (même pas le fond de couleur $fill_color) : seul l'alias (alt de l'image lors de l'appel par un fichier html) "Image captcha" apparaît.
J'ai essayé 2 polices différentes, au cas où le fichier serait corrompu. Rien n'y fait !
Je suis sous WAMP64, j'utilise le PHP v7.2.4. L'extension GD2 semble bien fonctionner.
Qui a une idée ?!
- Edité par C'Me 16 juin 2019 à 22:16:30
"La chance sourit aux esprits préparés" - Louis Pasteur
Pour les logs, j'ai vu un tuto en passant, mais je n'ai pas eu le temps de m'y coller, et pour tout dire : je suis plutôt novice sur leur usage. Si tu as quelques commandes logs principales à me suggérer... Sinon, je ferai 2 ou 3 recherches (pas le temps pour l'instant) !
En tout cas, aucune erreur d'encodage PHP ou HTML ne semble émerger. Je me demande si les paramètres (coordonnées et dimensions des caractères par rapport à l'image rectangulaire créée) ne sont pas en cause, ou moins probablement les deux polices choisies.
- Edité par C'Me 17 juin 2019 à 19:09:43
"La chance sourit aux esprits préparés" - Louis Pasteur
Il est tout simplement indiqué, que la font que tu veux utiliser, ne peut pas être chargée, en même temps tu lui demandes d'aller charger une font qui serait au même niveau que ton fichier captcha.php, sauf qu'elle doit probablement se situer dans ton dossier fonts.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Petite précision : comme tu peux le constater dans l'arborescence que j'ai affichée dans le premier post de ce sujet, j'ai pris le soin de coller le fichier font TTF exceptionnellement au même niveau que le captcha.php (pour évacuer tout éventuel soucis d'adressage et me simplifier la vie ). Je pense plus à la rigueur à une police très graphique mais pas très compatible avec les fonctions utilisées, ou bien un problème de paramétrage de la police (taille, position, centrage...). Mais j'ai beau relire les définitions, exemples, infos sur php.net, essayer différents paramètres... Rien n'y fait !
Mon extension gd2 est bien activée et a fait son office sur d'autres essais de pages utilisant des graphiques aux formats PHP, JPEG, PNG.
What else ?!
"La chance sourit aux esprits préparés" - Louis Pasteur
Dans de nombreux cas où une police réside dans le même répertoire que le script en l'utilisant l'astuce suivante permettra d'atténuer les problèmes d'inclusion.
// Définir la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));
// Nommez la police à utiliser (Notez l'absence de l'extension .ttf)
$font = 'SomeFont';
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Puisqu'aucune autre solution ne semble émerger pour le moment, à tout hasard : existe-t-il une autre fonction permettant de transformer un texte en image (avec la possibilité de choisir sa propre police sur par exemple https://www.fontsquirrel.com), ou bien dois-je créer une application/fonction le permettant...? (Beau défi, ceci dit)
NB : je n'ai pour le moment vraiment pas envie de donner mon âme à Google en faisant appel à son noCaptcha/reCaptcha
- Edité par C'Me 22 juin 2019 à 13:14:09
"La chance sourit aux esprits préparés" - Louis Pasteur
Personnellement je ne sais pas trop quoi te dire si ce que nous avons pu te proposer ne permet pas de résoudre ton problème.
À vrai dire, ce n'est pas trop mon fort ce genre de script sur la création d'image avec notamment l'utilisation d'une police spécifique et je trouve assez dé-sué de vouloir créer un captcha alors que par exemple il existe ReCAPTCHA de Google et/ou probablement des librairies correspondantes disponibles pour PHP.
Donc désolé mais je ne peux personnellement pas t'aider plus.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Tu peux charger une font avec imageloadfont(), mais ce ne sont que des fonts au format .gdf car pour manipuler tu utilises la lib GD. Tu peux convertir tes ttf en gdf via un programme. Cherche wftopf.
En utilisant le code de la doc:
// Create a new image instance
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Make the background white
imagefilledrectangle($im, 0, 0, 49, 19, $white);
// Load the gd font and write 'Hello'
$font = imageloadfont('./FiraMono.gdf');
imagestring($im, $font, 0, 0, 'Hello', $black);
// Output to browser
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
Personnellement je ne sais pas trop quoi te dire si ce que nous avons pu te proposer ne permet pas de résoudre ton problème.
À vrai dire, ce n'est pas trop mon fort ce genre de script sur la création d'image avec notamment l'utilisation d'une police spécifique et je trouve assez dé-sué de vouloir créer un captcha alors que par exemple il existe ReCAPTCHA de Google et/ou probablement des librairies correspondantes disponibles pour PHP.
Donc désolé mais je ne peux personnellement pas t'aider plus.
Merci Lartak. Je comprends ta position.
Personnellement, je n'ai pour l'instant que des ambitions modestes, pour ne pas dire personnelles quant à la création. Les enjeux m'autorisent donc à avoir cette lubie de créer un Captcha. Mais j'avoue néanmoins prendre position en ne m'en remettant pas à Google quant à leur ReCAPTCHA dont l'algorithme demeure secret, sachant néanmoins qu'ils "lisent" d'une certaine manière nos frappes au clavier. Cette entreprise n'est pas un modèle de respect de la vie privée... Si quelqu'un crée ou connaît un Captcha plus ou moins aussi simple et sécurisé, géré par un prestataire dépositaire d'une charte éthique claire, alors OK (mais je sors un peu du cadre de ma requête, là)....
Merci xoxotf ! Je vois ça dans la soirée ou demain !
- Edité par C'Me 20 juillet 2019 à 20:28:29
"La chance sourit aux esprits préparés" - Louis Pasteur
imagettftext
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
"La chance sourit aux esprits préparés" - Louis Pasteur
Pas d'aide concernant le code par MP, le forum est là pour ça :)
"La chance sourit aux esprits préparés" - Louis Pasteur
Pas d'aide concernant le code par MP, le forum est là pour ça :)
"La chance sourit aux esprits préparés" - Louis Pasteur
"La chance sourit aux esprits préparés" - Louis Pasteur
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
"La chance sourit aux esprits préparés" - Louis Pasteur
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
"La chance sourit aux esprits préparés" - Louis Pasteur
"La chance sourit aux esprits préparés" - Louis Pasteur
"La chance sourit aux esprits préparés" - Louis Pasteur
"La chance sourit aux esprits préparés" - Louis Pasteur
"La chance sourit aux esprits préparés" - Louis Pasteur
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
"La chance sourit aux esprits préparés" - Louis Pasteur