[b][size=150]CAPTCHA dans le formulaire de contact Email[/size][/b]
----------------------------------------------------------------------------------
Nous avons t envahis de spams via le formulaire de contact (mail) de notre forum phpBB 3.1.9.
Sachant que l'quipe de phpBB n'a volontairement [url=http://forums.phpbb-fr.com/support-utilisation-phpbb31/sujet203712.html]pas install cette fonctionnalit[/url], j'ai mis les mains dans le cambouis pour intgrer un Captcha dans le formulaire de contact .

Je partage aujourd'hui le code Captcha ( source [url=https://github.com/josecl/cool-php-captcha]trouv ici[/url]) et que j'ai intgr au forum.

Forumement,
ym_trainz

Je mets les fichiers modifis en PJ. Pensez  sauvegarder vos originaux avant toute modification. Les autres fichiers sont  [url=https://github.com/josecl/cool-php-captcha]tlcharger ici[/url]
----------------------------------------------------------------------------------
0. [root] : c'est la racine de votre forum (l o se trouve par exemple [color=#0040FF]confif.php[/color] ou [color=#0040FF]cron.php[/color])

1. Tlchargement du code captcha :
[url=https://github.com/josecl/cool-php-captcha]https://github.com/josecl/cool-php-captcha[/url]

2. Dcompresser et uploader dans [color=#0040FF][root]/[b]ym_captcha[/b][/color]

[color=#FF0000]Mode rapide : crasez vos fichiers  l'aide des fichiers joints ou passez en mode "je comprends ce que je fais" ci-dessous  :D [/color]

3.modif [color=#0040FF][root]\styles\prosilver\template\[b]memberlist_email.html[/b][/color]

ligne 91, trouver 
[code]<div class="panel"> 
<div class="inner">
<div class="content">[/code]

juste aprs, ajouter ce qui suit :
		[code]<!-- ym captcha --------------------------------------------------------->
		<div style="text-align:center;">
						
			<img src="{ROOT_PATH}ym_captcha/captcha.php" id="captcha" /><br/>

			<!-- CHANGE TEXT LINK -->
			Texte illisible ? <a href="#" onclick="
				document.getElementById('captcha').src='{ROOT_PATH}ym_captcha/captcha.php?'+Math.random();
				document.getElementById('captcha-form').focus();"
				id="change-image">Recharger le Captcha</a><br/><br/>

			<p><strong>Recopiez le texte ci-dessus en minuscules et sans accent</strong></p>
			<input type="text" name="captcha" id="captcha-form" autocomplete="off" /><br/>
			
		</div>
		<!-- end ym_captcha -------------------------------------------------------------------->
[/code]
le code qui suit doit tre :
		[code]<fieldset class="submit-buttons">
			<input type="submit" tabindex="6" name="submit" class="button1" value="{L_SEND_EMAIL}" />
		</fieldset>
	</div>
	</div>
{S_FORM_TOKEN}
</div>[/code]

4. modif [color=#0040FF][root]/[b]memberlist.php[/b][/color]

ligne 17 aprs [code]<?php[/code]
ajouter :
[code]session_start(); // ajout ym_trainz pour recuperer les variables captacha[/code]
ligne 834 : trouver 
                [code] if ($request->is_set_post('submit'))
		{[/code]
ajouter juste aprs :
			[code]// Drivation Captcha ym_trainz mai 2016 -------------------------------------
			// test validit captacha
			$cap1 = $_SESSION['captcha'];	// Captcha image (du texte)		
			$cap2 = $request->variable('captcha', ''); // retour du post input type text (entre de l'user)
			$cap1 = trim(strtolower($cap1)); // minuscules et suppression des blancs
			$cap2 = trim(strtolower($cap2));
			if($cap1 != $cap2) { // erreur de saisie, les Captcha ne correspondent pas
				if($cap2 !="") {
					// echo "<script langage='JavaScript'>alert('Mauvais captacha (Saissez le mot  nouveau)')</script>";
					}
			}
			else { // on envoie le message
				// echo "<script langage='JavaScript'>alert('Captacha ok')</script>";
				
				$messenger = new messenger(false);
				$form->submit($messenger);
				
			}				
			// fin drivation Captcha -----------------------------------------------------------------[/code]

5. ajout des mots franais pour crer le fichier : [color=#0040FF][root]/ym_captcha/resources/[b]words/fr.php[/b][/color]
s'effectue  l'aide de l'outil inclus : [color=#0040FF][root]ym_captcha\resources\tools\dictionary-import\[b]importwords.php[/b][/color]

6. modif : [color=#0040FF][root]ym_captcha\[b]captcha.php[/b][/color]
ligne 184 : ajouter / complter comme suit :

[code]$this->WriteText($text, $fontcfg);
        $_SESSION[$this->session_var] = $text; // ym_trainz : on rcupre ici la valeur du Captcha soit $_SESSION['captcha'][/code]