source: spip-zone/_plugins_/antispam-recaptcha/fonctions_recaptcha.php @ 50455

Last change on this file since 50455 was 13711, checked in by fil@…, 14 years ago

mieux si ca marche

File size: 1.5 KB
Line 
1<?php
2
3/*
4 * Filtre recaptcha pour proteger les emails
5 * Auteur: (c) fil@rezo.net 2007
6 * Licence GNU/GPL
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11// http://recaptcha.googlecode.com/files/recaptcha-php-1.8.zip
12function get_recaptcha_keys($force = false) {
13        if ($force
14        OR !isset($GLOBALS['meta']['recaptcha_keys'])
15        OR !is_array($keys = @unserialize($GLOBALS['meta']['recaptcha_keys']))) {
16
17                spip_log('chargement d\'une cle API recaptcha');
18                include_spip('inc/distant');
19                include_spip('inc/texte');
20                $u = textebrut(recuperer_page('http://mailhide.recaptcha.net/apikey'));
21                if(!preg_match(',Public Key:(.*),i', $u, $r1)
22                OR !preg_match(',Private Key:(.*),i', $u, $r2)) {
23                        spip_log('erreur recaptcha n\'a pas donne de cle : '.$u);
24                        return false;
25                }
26
27                $keys = array(
28                        'public' => trim($r1[1]),
29                        'private' => trim($r2[1])
30                );
31                ecrire_meta('recaptcha_keys', serialize($keys));
32                ecrire_metas();
33        }
34
35        return $keys;
36}
37
38function filtre_antispamrecaptcha($email) {
39        if (strpos($email, '@') === false)
40                return;
41
42        if (!$keys = get_recaptcha_keys())
43                return $email;
44
45        require_once _DIR_PLUGIN_RECAPTCHA.'recaptchalib.php';
46        return recaptcha_mailhide_html ($keys['public'], $keys['private'], $email);
47#       return recaptcha_mailhide_url ($keys['public'], $keys['private'], $email);
48}
49
50// Si la fonction antispam existe deja, on ne fournit que antispam_recaptcha
51if (!function_exists('filtre_antispam')) {
52        function filtre_antispam($email) {
53                return filtre_antispamrecaptcha($email);
54        }
55} else spip_log('filtre_antispam deja definie');
56
57?>
Note: See TracBrowser for help on using the repository browser.