THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Formulaire magique 0.6

(22-04-2012 11:34:34)


Bonjour,
je n'ai rien trouvé sur le forum donc j'ouvre un post concernant le formulaire magique.
Il fonctionne mais impossible d'afficher l'image captcha.
Tout est bon au niveau de l'url :
client/plugins/formesmagiques/captcha.php?sid=code
mais pas d'image ou alors image "contient des erreurs"
Du coup pas possible de faire partir le formulaire.
Ce plugin est récent donc je ne sais pas si vous l'avez installé et utilisé.
Merci

Offline

#2 Re: Formulaire magique 0.6

(22-04-2012 15:31:00)


Dis moi si c'est mieux avec cette version du fichier catcha.php

<?php
/* ////////////////////
	INITIALISATION
//////////////////// */

/* Démarrage d'une session qui va nous permettre de stocker la valeur à recopier. */
session_start(); // session_start() se place toujours avant toute sortie vers la page web

/* Chemin absolu vers le dossier */
if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/');

/*
Création d'une fonction pour générer la chaîne aléatoire à recopier (sans cryptage) :
- strlen() retourne la taille de la chaine en paramètre
- mt_rand(a, b) génère un nombre aléatoire entre a et b compris : cette fonction est plus rapide que rand() de la bibliothèque standard
- $chars{0} retourne le premier caractère de la chaine $chars, $chars{1} le deuxième ...
*/
function getCode($length) {
	$chars = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ'; // Certains caractères ont été enlevés car ils prêrtent à confusion
	$rand_str = '';
	for ($i=0; $i<$length; $i++) {
		$rand_str .= $chars{ mt_rand( 0, strlen($chars)-1 ) };
	}
	return $rand_str;
}

/* Stockage de la chaine aléatoire de 5 caractères obtenue */
$theCode = getCode(5);

/* Cryptage de la chaine avec md5() avant de la stocker dans la variable de session $_SESSION['formesmagiques_captcha'] de la session en cours.
C'est à cette variable qu'on va comparer le code entré par l'utilsateur dans le formulaire. */
$_SESSION['formesmagiques-captcha'][$_REQUEST['sid']] = md5($theCode);

/* Afin de traiter les caractères séparément, on les stocke un par un dans des variables. */
$char1 = substr($theCode,0,1);
$char2 = substr($theCode,1,1);
$char3 = substr($theCode,2,1);
$char4 = substr($theCode,3,1);
$char5 = substr($theCode,4,1);

/*
glob() retourne un tableau répertoriant les fichiers du dossier 'fonts', ayant l'extension .ttf ou .TTF.
Vous pouvez donc ajouter autant de polices TrueType que vous désirez, en veillant à les renommer.
*/
$fonts = array();

if ($dh = opendir(ABSPATH .'fonts')) {

	while ($file = readdir($dh)) {
		if ($file == '.' || $file == '..') continue;

		$fonts[] = ABSPATH ."fonts/$file";
	}

	@closedir($dh);
}
else {
		die("Ne peut ouvrir le répertoire ".ABSPATH."fonts");
}

/* //////////////////////////////
	TRAITEMENT DE L'IMAGE
////////////////////////////// */

/*
imagecreatefrompng() crée une nouvelle image à partir d'un fichier PNG.
Cette nouvelle $image va être ensuite modifiée avant l'affichage.
 */
$image_file = 'images/captcha.png';

$image = imagecreatefrompng($image_file);

if ($image == false) {
	die("Ne peut ouvrir l'image $image_file");
}

/*
imagecolorallocate() retourne un identifiant de couleur.
On définit les couleurs RVB qu'on va utiliser pour nos polices et on les stocke dans le tableau $colors[].
Vous pouvez ajouter autant de couleurs que vous voulez.
*/
$colors=array (	imagecolorallocate($image, 0x80,0,0),
				imagecolorallocate($image, 0,0x80,0),
				imagecolorallocate($image, 0,0,0x80),
				imagecolorallocate($image, 0x33,0x33,0x33),
				imagecolorallocate($image, 0,0,0) );

/* Création d'une petite fonction qui retourne une VALEUR aléatoire du tableau reçu en paramètre. */
function random($tab) {
	return $tab[array_rand($tab)];
}

/*
Mise en forme de chacun des caractères et placement sur l'image.
imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
*/
imagettftext($image, mt_rand(14,18), mt_rand(-20, 20),  5, 23, random($colors), random($fonts), $char1);
imagettftext($image, mt_rand(14,18), mt_rand(-20, 20), 18, 23, random($colors), random($fonts), $char2);
imagettftext($image, mt_rand(14,18), mt_rand(-20, 20), 37, 23, random($colors), random($fonts), $char3);
imagettftext($image, mt_rand(14,18), mt_rand(-20, 20), 62, 23, random($colors), random($fonts), $char4);
imagettftext($image, mt_rand(14,18), mt_rand(-20, 20), 80, 23, random($colors), random($fonts), $char5);

/* //////////////////////////////
	FIN => ENVOI DE L'IMAGE
////////////////////////////// */

/*
Comme c'est le fichier image.php et non captcha.png qui va être appelé,
on envoie un en-tête HTTP au navigateur via header() pour lui indiquer
que image.php est bien une image au format PNG.
*/
header('Content-Type: image/png');

/* .. et on envoie notre image PNG au navigateur. */
imagepng($image);

/* L'image ayant été envoyée, on libère toute la mémoire qui lui est associée via imagedestroy(). */
imagedestroy($image);
?>

OpenStudio Toulouse

Offline

#3 Re: Formulaire magique 0.6

(22-04-2012 19:47:53)


Sacré Roadster,
à peine posté,
aussitôt au labeur !

Sacré Roadster !
Le Roi des débuggers !
Oups, j'arrête
Merci

Offline

#4 Re: Formulaire magique 0.6

(22-04-2012 20:04:27)


En fait, je n'ai pas bien compris la finalité de ce formulaire.
Je ne vois rien en BO -> normal (?)
Il y a t' il possibilité de l'utiliser dans un cadre client - commerçant pour par exemple se mettre en relation email via le compte du client...
Pour quoi a t 'il était développé svp ?
Merci

Last edited by watts (22-04-2012 20:04:58)

Offline

#5 Re: Formulaire magique 0.6

(22-04-2012 20:13:06)


Les première ligne du fichier LISEZ MOI :

Le plugin Formes magiques permet de définir des formulaires dans vos templates sans aucune
configuration. L'upload de fichier est supporté, ainsi qu'un système de captcha textuel.
Vous recevez par e-mail les informations indiquées dans le formulaire.


Plugins : Modèles Thelia | Boucle libre | Rubriques déclinables en produits | Colissimo Access/Expert

  • hc
  • Membre

Offline

#6 Re: Formulaire magique 0.6

(18-05-2014 16:04:38)


Bonjour,

Je relance cette discussion ...

J'essaie de mettre le captcha de formesmagiques dans l'écran d'encodage des données du nouveau client.

Le message annonçant le captcha s'affiche bien mais pas l'image du captcha.

Si je regarde via la console de debug de Chrome, le contenu des variables #CODE_URL_IMAGE et #CODE_URL_CHANGER_IMAGE celui est vide.

Comment faut-il faire pour initialiser ces variables ?

Bonne fin de dimanche,
André,

Last edited by hc (19-05-2014 08:16:09)

Offline

#7 Re: Formulaire magique 0.6

(19-05-2014 11:13:28)


Comment s'appelle ton champ captcha ?

La variable qui permet de changer l'image doit se nommer #<nom_du_champ_captcha>_URL_CHANGER_IMAGE

Par exemple, si ton champ captcha s'appelle MEUH, la variable de changement d'image sera #MEUH_URL_CHANGER_IMAGE

Même principe pour l'URL de l'image: #<nom_du_champ_captcha>_URL_IMAGE.


OpenStudio Toulouse

  • hc
  • Membre

Offline

#8 Re: Formulaire magique 0.6

(19-05-2014 13:00:59)


roadster31 wrote:

Comment s'appelle ton champ captcha ?

La variable qui permet de changer l'image doit se nommer #<nom_du_champ_captcha>_URL_CHANGER_IMAGE

Par exemple, si ton champ captcha s'appelle MEUH, la variable de changement d'image sera #MEUH_URL_CHANGER_IMAGE

Même principe pour l'URL de l'image: #<nom_du_champ_captcha>_URL_IMAGE.

Salut Roadster,

J'ai installé le plugin et essayé de l'intégré "tel quel" dans la page qui permet l'inscription et ce entre le 2ème champ mot de passe et le bouton valider.

Bon, je vais tester ta suggestion smile et je te reviens avec ... ou sans problème wink

A+,
André,

PS : Tu roules avec quel roadster ?