Changeset 94562 in spip-zone
- Timestamp:
- Jan 12, 2016, 10:41:50 AM (5 years ago)
- Location:
- _plugins_/fbantispam
- Files:
-
- 3 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/fbantispam/fbantispam_pipelines.php
r81051 r94562 1 1 <?php 2 2 3 /** 3 4 * Plugin FB Antispam … … 7 8 * 8 9 */ 9 10 if (!defined("_ECRIRE_INC_VERSION")) return; 11 10 if (!defined("_ECRIRE_INC_VERSION")) 11 return; 12 12 13 13 /** … … 18 18 */ 19 19 function fbantispam_recuperer_fond($flux) { 20 $fond = strval($flux['args']['fond']); 21 if (false !== $pos = strpos($fond, 'formulaires/forum')) 22 { 23 // on ajoute le champ 'nobot' si pas present dans le formulaire 24 $texte = &$flux['data']['texte']; 25 $pos = strpos($texte, '</form>'); 26 $nobot = recuperer_fond("inclure/nobot", array('nobot' => '')); 27 $texte = substr_replace($texte, $nobot, $pos, 0); 20 $fond = strval($flux['args']['fond']); 21 if (false !== $pos = strpos($fond, 'formulaires/forum')) { 22 // on ajoute le champ 'nobot' si pas present dans le formulaire 23 $texte = &$flux['data']['texte']; 24 $pos = strpos($texte, '</form>'); 25 $nobot = recuperer_fond("inclure/nobot", array('nobot' => '')); 26 $texte = substr_replace($texte, $nobot, $pos, 0); 28 27 29 // On ajoute le champ 'captcha' avant le bouton de submit 30 // On commence de la fin, pour se positionner dans le formulaire de saisie et non dans 31 // celui de prévisualisation 32 $pos = strrpos($texte, '<p class="boutons">', 0); 33 // S'il n'a pas trouvé le bouton, on se positionne à la fin du formulaire (moins joli !) 34 if (!$pos) $pos = strrpos($texte, '</form', 0); 35 if ($pos) 36 { 37 $cp = fbantispam_get_captcha(); 38 $cps = "$cp[0]$cp[1]$cp[2]$cp[3]"; 39 $captcha = recuperer_fond("inclure/captcha", array('captcha' => $cps, 'c1' => $cp[0]*2, 'c0' => $cp[1]*2, 'c2' => $cp[2]*2, 'c3' => $cp[3]*2)); 40 $texte = substr_replace($texte, $captcha, $pos, 0); 41 } 42 } 43 return $flux; 28 // On ajoute le champ 'captcha' avant le bouton de submit 29 // On commence de la fin, pour se positionner dans le formulaire de saisie et non dans 30 // celui de prévisualisation 31 $pos = strrpos($texte, '<p class="boutons">', 0); 32 // S'il n'a pas trouvé le bouton, on se positionne à la fin du formulaire (moins joli !) 33 if (!$pos) 34 $pos = strrpos($texte, '</form', 0); 35 if ($pos) { 36 $type_captcha = lire_config('fbantispam/type_captcha', 'copie'); 37 if ($type_captcha == 'copie') 38 { 39 $cp = fbantispam_get_captcha(); 40 $cps = "$cp[0]$cp[1]$cp[2]$cp[3]"; 41 $captcha = recuperer_fond("inclure/captcha", array('captcha' => $cps, 'c1' => $cp[0] * 2, 'c0' => $cp[1] * 2, 'c2' => $cp[2] * 2, 'c3' => $cp[3] * 2)); 42 $texte = substr_replace($texte, $captcha, $pos, 0); 43 } 44 if ($type_captcha == 'addition') 45 { 46 $cp = fbantispam_get_captcha(); 47 $cps = "$cp[1]+$cp[3]"; 48 $captcha = recuperer_fond("inclure/captcha-addition", array('captcha' => $cps, 'c1' => $cp[0] * 2, 'c0' => $cp[1] * 2, 'c2' => $cp[2] * 2, 'c3' => $cp[3] * 2)); 49 $texte = substr_replace($texte, $captcha, $pos, 0); 50 } 51 if ($type_captcha == 'multiplication') 52 { 53 $cp = fbantispam_get_captcha(); 54 $cps = "$cp[1]x$cp[3]"; 55 $captcha = recuperer_fond("inclure/captcha-multiplication", array('captcha' => $cps, 'c1' => $cp[0] * 2, 'c0' => $cp[1] * 2, 'c2' => $cp[2] * 2, 'c3' => $cp[3] * 2)); 56 $texte = substr_replace($texte, $captcha, $pos, 0); 57 } 58 } 59 } 60 return $flux; 44 61 } 45 62 … … 47 64 */ 48 65 function fbantispam_formulaire_charger($flux) { 49 $form = $flux['args']['form']; 50 $je_suis_poste = false; 51 if (isset($flux['args']['je_suis_poste']) && $flux['args']['je_suis_poste'] == 1) $je_suis_poste = true; 52 if ($form == "forum" && !$je_suis_poste) 53 { 54 include_spip("inc/fbantispam"); 55 if ($charger_formulaire = charger_fonction("charger_formulaire_forum", "fbantispam", true)) 56 { 57 $flux = $charger_formulaire($flux); 58 } 59 } 60 return $flux; 66 $form = $flux['args']['form']; 67 $je_suis_poste = false; 68 if (isset($flux['args']['je_suis_poste']) && $flux['args']['je_suis_poste'] == 1) 69 $je_suis_poste = true; 70 if ($form == "forum" && !$je_suis_poste) { 71 include_spip("inc/fbantispam"); 72 if ($charger_formulaire = charger_fonction("charger_formulaire_forum", "fbantispam", true)) { 73 $flux = $charger_formulaire($flux); 74 } 75 } 76 return $flux; 61 77 } 62 78 … … 64 80 */ 65 81 function fbantispam_formulaire_verifier($flux) { 66 $form = $flux['args']['form']; 67 $previsu = false; 68 if (isset($flux['data']['previsu']) && $flux['data']['previsu'] != '') $previsu = true; 82 $form = $flux['args']['form']; 83 $previsu = false; 84 if (isset($flux['data']['previsu']) && $flux['data']['previsu'] != '') 85 $previsu = true; 69 86 70 87 $res = array(); 71 88 72 if ($form == "forum" && $previsu) 73 { 74 75 $captcha = _request('captcha'); 76 $cp0 = _request('c1')/2; 77 $cp1 = _request('c0')/2; 78 $cp2 = _request('c2')/2; 79 $cp3 = _request('c3')/2; 80 $cps = "$cp0"."$cp1"."$cp2"."$cp3"; 81 if ($captcha == '') 82 { 83 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : le code anti-spam n\'a pas été saisi</p>'; 84 return $res; 85 } 86 if ($captcha != $cps) 87 { 88 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : le code anti-spam n\'est pas correct</p>'; 89 return $res; 90 91 } 92 $cmod = _request('cmod'); 93 if ($cmod != 'fbantispam') 94 { 95 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : message non accepté (identifié à un SPAM)</p>'; 96 return $res; 97 98 } 99 } 100 return $flux; 89 if ($form == "forum" && $previsu) { 90 91 $captcha = _request('captcha'); 92 $cp0 = _request('c1') / 2; 93 $cp1 = _request('c0') / 2; 94 $cp2 = _request('c2') / 2; 95 $cp3 = _request('c3') / 2; 96 $cmod = _request('cmod'); 97 if ($cmod != 'fbantispam') { 98 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : message non accepté (identifié à un SPAM)</p>'; 99 return $res; 100 } 101 if ($captcha == '') { 102 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : le code anti-spam n\'a pas été saisi</p>'; 103 return $res; 104 } 105 $type_captcha = lire_config('fbantispam/type_captcha'); 106 if ($type_captcha == 'copie') 107 { 108 $cps = "$cp0" . "$cp1" . "$cp2" . "$cp3"; 109 if ($captcha != $cps) { 110 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : le code anti-spam n\'est pas correct</p>'; 111 return $res; 112 } 113 } 114 elseif ($type_captcha == 'addition') 115 { 116 $cps = $cp1 + $cp3; 117 if ($captcha != $cps) { 118 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : le code anti-spam n\'est pas correct</p>'; 119 return $res; 120 } 121 } 122 elseif ($type_captcha == 'multiplication') 123 { 124 $cps = $cp1 * $cp3; 125 if ($captcha != $cps) { 126 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : le code anti-spam n\'est pas correct</p>'; 127 return $res; 128 } 129 } 130 else 131 { 132 $res['message_erreur'] = '<p style="background:#ffffaa;padding:4px">ERREUR : pas de captcha connu</p>'; 133 return $res; 134 } 135 136 } 137 return $flux; 101 138 } 102 139 … … 104 141 */ 105 142 function fbantispam_formulaire_traiter($flux) { 106 143 return $flux; 107 144 } 108 145 … … 110 147 */ 111 148 function fbantispam_pre_edition($flux) { 112 149 return $flux; 113 150 } 114 151 115 152 /** 116 153 */ 117 function fbantispam_get_captcha() 118 { 119 $ret = array(); 120 for($i=0; $i<4; $i++) 121 { 122 $ret[$i] = rand(0,9); 123 } 124 return $ret; 154 function fbantispam_get_captcha() { 155 $ret = array(); 156 for ($i = 0; $i < 4; $i++) { 157 $ret[$i] = rand(0, 9); 158 } 159 return $ret; 125 160 } 126 161 -
_plugins_/fbantispam/inclure/captcha-addition.html
r81051 r94562 8 8 <input type="hidden" name="cmod" id="cmod" value="fbantispam" /> 9 9 <p style="background:#ffffaa;padding:4px;text-align:center"> 10 <label for="captcha">Controle anti-spam : saisissez le s caractères suivants<br />10 <label for="captcha">Controle anti-spam : saisissez le résultat de l'addition suivante<br /> 11 11 <strong> 12 12 [(#ENV{captcha}|image_typo{police=dustismo_bold.ttf,taille=36,align=center,padding_5} -
_plugins_/fbantispam/inclure/captcha-multiplication.html
r81051 r94562 8 8 <input type="hidden" name="cmod" id="cmod" value="fbantispam" /> 9 9 <p style="background:#ffffaa;padding:4px;text-align:center"> 10 <label for="captcha">Controle anti-spam : saisissez le s caractères suivants<br />10 <label for="captcha">Controle anti-spam : saisissez le résultat de la multiplication suivante<br /> 11 11 <strong> 12 12 [(#ENV{captcha}|image_typo{police=dustismo_bold.ttf,taille=36,align=center,padding_5} -
_plugins_/fbantispam/paquet.xml
r81299 r94562 2 2 prefix="fbantispam" 3 3 categorie="performance" 4 version="1. 1.1"4 version="1.2.0" 5 5 etat="test" 6 6 compatibilite="[2.0.0;3.0.*]" … … 14 14 <auteur lien="www.fbservices.fr">Fabio Bertagnin FBServices</auteur> 15 15 16 <copyright>2013-201 4</copyright>16 <copyright>2013-2016</copyright> 17 17 18 18 <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence> -
_plugins_/fbantispam/plugin.xml
r81299 r94562 6 6 <auteur>Fabio Bertagnin - FBServices www.fbservices.fr</auteur> 7 7 <icon>images/beos-stop-icone-8929-32.png</icon> 8 <licence>(c) 2013-201 4GPL</licence>9 <version>1. 1.1</version>8 <licence>(c) 2013-2016 GPL</licence> 9 <version>1.2.0</version> 10 10 <etat>test</etat> 11 11 <description>
Note: See TracChangeset
for help on using the changeset viewer.