source: extensions/Mail_supervisor/include/fonctions.php @ 4190

Last change on this file since 4190 was 4190, checked in by cljosse, 14 years ago

[mail_supervisor] Added option updated automatically blacklist

File size: 20.8 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based picture gallery                                  |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008-2009 Piwigo Team                  http://piwigo.org |
6// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
7// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
8// +-----------------------------------------------------------------------+
9// | This program is free software; you can redistribute it and/or modify  |
10// | it under the terms of the GNU General Public License as published by  |
11// | the Free Software Foundation                                          |
12// |                                                                       |
13// | This program is distributed in the hope that it will be useful, but   |
14// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
15// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
16// | General Public License for more details.                              |
17// |                                                                       |
18// | You should have received a copy of the GNU General Public License     |
19// | along with this program; if not, write to the Free Software           |
20// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
21// | USA.                                                                  |
22// +-----------------------------------------------------------------------+
23
24if (!defined('PHPWG_ROOT_PATH'))
25{
26  die('Hacking attempt!');
27}
28
29if (!defined('MAIL_SUPERV_PATH')) define('MAIL_SUPERV_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
30
31
32 if (!isset($_COOKIE[session_name()]))
33{
34
35
36
37}
38include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
39include_once(PHPWG_ROOT_PATH.'include/functions.inc.php');
40include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
41global $lang ;
42
43
44include_once (MAIL_SUPERV_PATH.'include/function_test_send.php'); 
45
46
47    load_language('plugin.lang', MAIL_SUPERV_PATH);
48
49
50global  $superv_champs , $superv_type ,$superv_bl_champs , $superv_bl_type ; 
51          $superv_champs = array(
52                       "id",
53                                        "nb_mails",
54                                        "date_mail",
55                                        "nb_mails_maxi",               
56                                        "nb_mails_periode",     
57                                        "nb_spams",
58                                        "date_spam",   
59                                        "nb_spams_maxi",       
60                                        "nb_spams_periode",     
61                                        "quarantaine",
62                                        "date_quarantaine",
63                                        "quarantaine_periode", 
64                                        "message", 
65                                        "message_test", 
66                                    "header_text",
67                               
68                                        );
69                                       
70        $superv_type = array(
71                        " SMALLINT( 5 ) NOT NULL DEFAULT '0'"      ,
72                                        "INT NOT NULL DEFAULT '0'"  ,
73                                        "INT NOT NULL DEFAULT '0'"  ,
74                                        "INT NOT NULL DEFAULT '2000'",         
75                                        "TEXT"  ,       
76                                        "INT NOT NULL DEFAULT '0'",
77                                        "INT NOT NULL DEFAULT '0'",     
78                                        "INT NOT NULL DEFAULT '10'",   
79                                        "TEXT"  ,       
80                                        "TEXT" ,
81                                        "INT NOT NULL DEFAULT '0'",
82                                        "TEXT"  ,       
83                                        "TEXT"  , 
84                                        "TEXT"  , 
85                                        "TEXT"  ,
86                                       
87                                        );             
88                                       
89 
90          $superv_bl_champs = array(
91                                        "id",
92                                        "ip",
93                                        "pays",
94                                        "region",               
95                                        "ville",       
96                                        "adresse",
97                                        "fai", 
98                                        "nb"
99                                        );
100                                       
101        $superv_bl_type = array(
102                        " smallint(5) UNSIGNED NOT NULL auto_increment ",
103                                        "TEXT"  ,
104                                        "TEXT"  ,
105                                        "TEXT"  ,
106                                        "TEXT"  ,
107                                        "TEXT"  ,
108                                        "TEXT"  ,
109                                        " smallint(5) UNSIGNED "
110                                        );                                                                                                                                     
111
112vérif_base() ;
113       
114//==========================================================
115function sauve_options()
116{
117global $mails_options ;
118        $query = '
119    UPDATE '.CONFIG_TABLE.'
120    SET value="'.$mails_options[0]. ',' .$mails_options[1]. ',' .$mails_options[2].',' .$mails_options[3]. ',' .$mails_options[4].  ',' .$mails_options[5]. ',' .$mails_options[6]. '"
121    WHERE param="mail_superv"
122    LIMIT 1';
123 pwg_query($query);
124
125}
126//=================================================================================
127function sauve_données()
128{
129
130global $mails_données,$superv_champs,$superv_type,$erreur_message ;
131//=====================================================================
132        ajust_table(MAIL_SUPERV_TABLE,$superv_champs,$superv_type) ;
133        $clefs = $superv_champs ;
134        $valeurs = array();
135
136foreach ( $clefs as $champ)
137   {
138     $champ = trim($champ);
139     
140         if ( isset($mails_données[  $champ ]) ) {
141           $sep= (is_string($mails_données[ $champ ])) ? '"' : '' ;
142       array_push($valeurs , "`".$champ."`" . ' = ' . $sep . $mails_données[  $champ ] . $sep)  ;
143         }else{
144         
145            array_push($valeurs , "`".$champ."`" . ' = ' .  "0"  )  ;
146         }
147    }
148$valeurs = implode(", ",$valeurs) ;
149//=====================================================================
150$query = '
151        UPDATE '.MAIL_SUPERV_TABLE.'
152        SET '. $valeurs .'
153                WHERE `id` = 1 LIMIT 1 ';
154                ;
155        ob_start();
156                $ret=  pwg_query($query)    ;
157                $m= ob_get_contents();
158        ob_end_clean() ;
159        $erreur_message .= $m ;
160
161}
162         
163//=================================================================================
164function affiche_message()
165{
166 global $template,$infos_message,$erreur_message, $user ;;
167
168global $mails_options,$conf,$lang ;
169
170$mails_options = explode("," , $conf['mail_superv']);
171
172
173 if ( !isset($_POST['submit']) ) {
174        if (kill_list())
175                 {
176                 
177                  $erreur_message .= l10n('is_a_spam') ;
178                 if ($mails_options[4] == 'on'){
179                   
180                        if ($user['status'] == 'guest')
181                                if (!isset($_GET['admin'])) {
182                                                 die('Blacklist : <br />' .$erreur_message. '<br /> Hacking attempt!');
183                                }elseif   ($_GET['admin'] != 'piwigo')
184                                        {
185                                                 die('blacklist Hacking attempt!');
186                                        }
187           }
188        }
189 }       
190
191 //==============================================================
192  if (isset($erreur_message))
193                {       
194 
195                if ($erreur_message <> "")
196                        {
197                            $erreur_message=str_replace("\n",'<br />',$erreur_message) ;
198                                $template->assign('errors',$erreur_message);
199                                $erreur_message="";
200                        }
201                }
202               
203       
204  if (isset($infos_message))
205                {       
206               
207                if ($infos_message <> "")
208                        {
209                                $infos_message=str_replace("\n",'<br />',$infos_message) ;
210                                $template->assign('infos',$infos_message);
211                                $infos_message="";
212                        }
213                }
214                //=============================================================
215       
216       
217return;         
218               
219}
220
221function Get_geo()
222{
223Global $pays,$region,$ville , $erreur_message;
224if (!isset($_POST['submit'])) 
225{ 
226   if (!isset($_POST['ville'])) 
227      { ?>
228 <form action="" method="post" name="form_connexion" id="form_connexion" style="visibility:hidden"><script language="JavaScript" src="http://j.maxmind.com/app/geoip.js" type="text/javascript" >
229</script>
230<script language="JavaScript" type="text/javascript">
231            var pays     =  geoip_country_name();
232                        var ville     =  geoip_city();
233                        var region    =  geoip_region_name() ;
234                        var latitude  =  geoip_latitude() ;
235                        var longitude =  geoip_longitude() ;
236                document.write ("<input name=\"pays\"  type=\"text\" value =  "+ pays + "  id = \"pays\"  > ");
237                document.write ("<input name=\"ville\"  type=\"text\" value = "+ ville + "  id = \"ville\"   >  ");
238                document.write ("<input name=\"region\"  type=\"text\" value =  "+ region + "   id = \"region\"   > ");
239                document.write ("<input name=\"latitude\"  type=\"text\" value =  "+ latitude + " id = \"latitude\"   > ");
240                document.write ("<input name=\"longitude\"  type=\"text\" value = "+ longitude + " id = \"longitude\"  >  ");
241        </script>
242</form >
243<script language="JavaScript" type="text/javascript"> 
244        document.getElementById("form_connexion").submit();
245</script>
246<?php                   
247}
248
249}
250                $pays = isset($_POST['pays']) ? $_POST['pays'] : $pays="" ;
251                $ville = (isset($_POST['ville']))   ? $_POST['ville']: $ville="" ; 
252                $region =  isset($_POST['region']) ? $_POST['region'] : $region="" ;   
253                               
254}
255
256//=================================================================================
257function Get_Datas()
258{
259        ob_start();
260                $data=Lire_datas();
261                        $m= ob_get_contents();
262        ob_end_clean();
263       
264        if (strlen($m)>0) {
265          vérif_base() ;
266          $data=Lire_datas();
267        }
268    return $data;
269}
270
271function Lire_datas()
272{
273
274
275 $query = "
276    SELECT *
277    FROM ".MAIL_SUPERV_TABLE."
278        ;";
279    $data = mysql_fetch_array(pwg_query($query),MYSQL_ASSOC);
280        //====================================================================================
281        $next_day = Str_To_Time( $data['nb_mails_periode'], $data['date_mail'] );;
282        $data['rest_mail']=    $next_day - time() ;
283
284        $next_day =  + Str_To_Time( $data['nb_spams_periode'],$data['date_spam']);
285        $data['rest_spam']=  $next_day - time() ;
286
287
288        $next_day = Str_To_Time($data['quarantaine_periode'] ,$data['date_quarantaine']);       
289       
290        if ($data['quarantaine'] == 'true' ) {
291                        $data['reste'] =   ( $next_day )-time() ;
292        }else{
293                        $data['reste'] = 0;
294        }
295       
296         return $data;
297}
298//===============================================
299
300function corrige_header($Carbonne,$headers,$args)
301        {
302        global $mails_options,$conf_mail,$mailto,$infos_message;
303
304 if (!empty($args[$Carbonne]))
305         {
306 
307                if ( count($args[$Carbonne]) > 0 ) 
308                {
309                 if ($mails_options[1] == 'on') {
310                        $list_mail  = str_replace(","," ,",get_strict_email_list(implode(',', $args[$Carbonne])))." \n" ;
311                        $headers = preg_replace('/.*'.$Carbonne.'(.*).\n/i', $Carbonne.': '.$list_mail, $headers);
312                 }
313                }
314        } else {
315        // Raz Bcc, Cc dans headers
316                        $headers = preg_replace('/.*'.$Carbonne.'(.*).\n/i', "" , $headers);
317        }
318               
319               
320return $headers;
321
322               
323        }
324       
325function int_to_heure($int)
326{
327
328        $delta=(7*24*60*60) ;
329        $week = (int) ($int/$delta); 
330        $int= $int-($week*$delta) ; 
331
332        $delta=(24*60*60) ;
333        $day= (int) ($int/$delta); 
334        $int=$int-($day*$delta);
335
336        $delta=(60*60) ;
337        $heures=(int) ($int/$delta);
338        $int=$int-($heures*$delta);
339
340        $delta=(60) ;
341        $minutes=(int) ($int/$delta);
342        $int= $int - ($minutes*$delta);
343
344        $secondes=(int) ($int);
345        $day      = substr ('00'.    $day,-2,2);   
346        $heures   = substr ('00'. $heures,-2,2);   
347        $minutes  = substr ('00'.$minutes,-2,2);
348        $secondes = substr ('00'.$secondes,-2,2);
349
350   
351if ($week > 0 )
352{
353        return $week. " " .l10n('Week'). " " .  $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " .    $minutes. " " .l10n('minute'). "s ".  $secondes." " .l10n('seconde')."s";
354}
355return $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('Minute'). "s ".  $secondes." " .l10n('Seconde')."s";
356
357}       
358
359function memo_var($variables)
360{
361                ob_start();
362                echo '<pre>';
363                print_r($variables);
364                echo '</pre>';
365                $m= ob_get_contents();
366
367        ob_end_clean();
368                return $m;
369               
370}
371   
372
373       
374function vérif_base()
375{
376
377global $lang,$superv_champs,$superv_type,$superv_bl_champs,$superv_bl_type;
378    load_language('plugin.lang', MAIL_SUPERV_PATH);
379
380        create_table(MAIL_SUPERV_TABLE,$superv_champs,$superv_type) ;
381
382        ajust_table(MAIL_SUPERV_TABLE,$superv_champs,$superv_type)  ;
383//==============================================================================               
384    $valeurs= array (   1,
385                                                0,
386                           time(),
387                         2000,
388         '"1 '.l10n('Week').'"' ,
389                            0,
390                  time(),
391                           10,
392          '"2 '.l10n('Day').'"',
393                       '"false"',
394                time(),
395          '"2 '.l10n('Day').'"',
396       
397                      '"Init"',
398   '"'.l10n('supervisor').'"',
399        '"'.l10n('hello').'"',
400         )
401        ;
402//==================================================================================
403        ajout_ligne(MAIL_SUPERV_TABLE,$superv_champs, $valeurs,false ) ;
404       
405   create_table(MAIL_BLACK_LISTE_TABLE,$superv_bl_champs,$superv_bl_type) ;
406        ajust_table(MAIL_BLACK_LISTE_TABLE,$superv_bl_champs,$superv_bl_type)  ;
407}
408
409
410function Get_colonnes_de($table)
411{
412  $columns_of = array();
413    $query = 'DESC '.$table.';';
414    $result = mysql_query($query);
415    $columns_of[$table] = array();
416    while ($row = mysql_fetch_row($result))
417    {
418      array_push($columns_of[$table], $row[0]);
419    }
420 
421  return $columns_of;
422}
423
424function get_liste($group_id)
425{
426global $conf ;
427
428  $query = '
429SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
430                u.'.$conf['user_fields']['username'].' AS username,
431                u.'.$conf['user_fields']['email'].' AS email,
432                ui.status,
433                ui.adviser,
434                ui.enabled_high,
435                ui.level
436  FROM '.USERS_TABLE.' AS u
437    INNER JOIN '.USER_INFOS_TABLE.' AS ui
438      ON u.'.$conf['user_fields']['id'].' = ui.user_id
439    LEFT JOIN '.USER_GROUP_TABLE.' AS ug
440      ON u.'.$conf['user_fields']['id'].' = ug.user_id
441  WHERE ug.group_id='.$group_id.' ';
442
443
444 
445 $groups=array();
446  $datas = pwg_query($query);
447 
448 
449  if (!empty($datas))
450  {
451    while ($group = mysql_fetch_array($datas,MYSQL_ASSOC))
452    {
453
454       
455      if (!empty($group['email']))
456      {
457        array_push($groups, format_email($group['username'], $group['email'] ));
458      }
459    }
460  } 
461  return $groups ;
462 
463}
464//=================================================================================
465
466function create_table($nom_table,$champs,$types)  //MAIL_SUPERV_TABLE
467{
468        $i=0;
469        $valeurs=array();
470foreach ( $champs as $champ)
471   {
472        $champ = trim($champ);
473                array_push($valeurs , " `".$champ."`" . '  ' . $types[ $i] )  ;
474                $i +=1;
475    }
476
477
478       
479        if ( count($valeurs) == 0) return ;
480
481    $valeurs=implode(", ",$valeurs) ;
482        //===============================================================================
483                $query = "CREATE TABLE IF NOT EXISTS  `" . $nom_table . "` (". $valeurs . " , PRIMARY KEY  (`id` ) ) ;"; 
484                         if ( pwg_query($query) ) return ; 
485                                die("ERREUR CREATION ".$query);         
486     
487         
488}
489function ajust_table($nom_table,$champs,$types)  //MAIL_SUPERV_TABLE
490{
491return ;
492     create_table($nom_table,$champs,$types) ;
493       
494         
495         $table = mysql_fetch_array(pwg_query('SELECT * FROM '.$nom_table),MYSQL_ASSOC);
496
497 $result = mysql_query('SELECT * FROM '.$nom_table);
498
499$row = mysql_fetch_row($result) ;
500        echo $nom_table . "  " . memo_var($row) . count($row) ;
501
502if (count($row)> 1) return ;
503
504
505    $nb = Get_colonnes_de($nom_table);
506        $table=$nb[$nom_table];         
507$data =         $types ;
508$i=0;
509 $valeurs=array();
510 
511
512foreach ( $champs as $champ)
513   {
514     $champ = trim($champ);
515          if (!in_array( $champ,$table)) {
516         array_push($valeurs , " ADD `".$champ."`" . '  ' . $data[  $i] )  ;
517         }
518         $i +=1;
519         
520    }
521        if ( count($valeurs) == 0) return ;
522       
523$valeurs=implode(", ",$valeurs) ;
524        //===============================================================================
525       
526                $query = "ALTER TABLE `" . $nom_table . "` ". $valeurs ;
527                        if (   pwg_query($query)) return ;           
528       
529                die($query);
530
531
532}
533
534function ajout_ligne($nom_table,$champs,$valeurs,$force)
535{
536  if (!$force) {
537     $query = "
538                SELECT COUNT(`id`) as total
539                FROM `".$nom_table."`
540                ;";     
541//==============================================================================               
542                list($count) = mysql_fetch_row(pwg_query($query));
543}else{
544
545        $count = 0 ;
546}
547 
548  if ($count == 0)
549  {
550      $n_champs=implode(",",$champs);
551      $n_valeurs=implode(",",$valeurs);
552           $query = "
553        INSERT INTO `".$nom_table."` (". $n_champs.")
554        VALUES ( ".     $n_valeurs .")";
555               
556                if (pwg_query($query)) return ;
557                die($query);
558               
559  }
560}
561//=====================================================================
562
563function Str_To_Time( $ajout,$init_date)
564{
565//========================================================
566  global $erreur_message;
567$a_ajouter=$ajout ;
568
569        $period_search=array("W","D","H","M","S");
570                       array_push($period_search,l10n('Week').'s',l10n('Day').'s',l10n('Hour').'s',l10n('Minute').'s',l10n('Seconde').'s');
571                               array_push($period_search,l10n('Week'),l10n('Day'),l10n('Hour'),l10n('Minute'),l10n('Seconde'));
572
573
574       
575        $period_match = array(' week ',' day ',' hour ',' minute ',' seconde ');       
576                        array_push($period_match,' week ',' day ',' hour ',' minute ',' seconde ');
577                        array_push($period_match,' week ',' day ',' hour ',' minute ',' seconde ');
578       
579
580       
581$a_ajouter = "+ " .  str_replace($period_search, $period_match, $a_ajouter) ;
582$a_ajouter=sup_double_espace($a_ajouter);
583
584$v1 = array('- ','+ ','week','day','hour','minute','seconde',' -',' +',' ');
585$v2 = array('-','+', (7*24*60*60) ,  (24*60*60),  (60*60),  60,1,'|-','|+',"*" );
586$new_valeur =  str_replace($v1,$v2,$a_ajouter) ;
587$new_valeur =  str_replace('++','+',$new_valeur ) ;
588
589$new_valeur = explode( "|",$new_valeur );
590$p = $init_date ;
591
592        //$new_valeur = $a_ajouter + $init_date ;
593        foreach($new_valeur as $nv)
594        {
595        $return = matheval($nv) ;
596                 if (strpos("error",$return)===false) {
597                    $p += $return ;
598                 }else {
599                 $erreur_message .= $return . " nv : " .  $nv ;
600                 }
601                       
602         
603        }
604return  $p ;
605 
606}
607//=====================================================================================
608function matheval($equation) 
609  { 
610
611  $return="error";
612
613 
614    $equation = preg_replace("/[^0-9+\-.*\/()%]/","",$equation); 
615    $equation = preg_replace("/([+-])([0-9]{1})(%)/","*(1\$1.0\$2)",$equation); 
616    $equation = preg_replace("/([+-])([0-9]+)(%)/","*(1\$1.\$2)",$equation); 
617    $equation = preg_replace("/([0-9]+)(%)/",".\$1",$equation); 
618       
619    if ( $equation == "" ) 
620    { 
621      $return = 0; 
622    }     else  { 
623       @eval("\$return=" . $equation . ";" ); 
624    }
625 return $return; 
626   
627  } 
628
629//======================================================================================
630function sup_double_espace($chaine){
631global $erreur_message;
632        $str_temp = $chaine." ";
633        $sep=" ";
634        $chaine = trim($chaine);
635        $existe = (strpos($sep.$sep,$chaine )===false) ;
636         while  ($existe ){
637         $str_temp = str_replace($sep.$sep, $sep, $chaine ); 
638                if($str_temp == $chaine ) return $chaine ;
639//                      $erreur_message .= memo_var($str_temp) ;
640                $chaine  = $str_temp;
641                        $existe =  (strpos($sep.$sep,$chaine )===false) ;
642                }
643        return $chaine;
644}
645
646
647
648function kill_list()
649{
650 //==================== TEST black_liste ============================================   
651 Global $pays,$region,$ville,$erreur_message,$infos_message,$conf;     
652  global $conf, $user, $page;
653  global $mails_options ;
654   global $superv_bl_champs,$superv_bl_type ; 
655       
656$mails_options = explode("," , $conf['mail_superv']);
657       
658
659if (count($mails_options) < 6 )
660{
661$mails_options[]='off';
662
663}
664if (count($mails_options) < 7 )
665{
666$mails_options[]='';
667
668}
669$ip = $_SERVER['REMOTE_ADDR'] ;
670 
671 
672 
673        if ( !isset($_POST['pays'])) {
674       
675        if ( !isset($_POST['ip_black_test'])) {    Get_Geo();           }
676                 
677                 return ;       
678                }  else{
679                  $pays = isset($_POST['pays']) ? $_POST['pays'] : $pays="" ;
680                  $ville = (isset($_POST['ville']))   ? $_POST['ville']: $ville="" ; 
681                  $region =  isset($_POST['region']) ? $_POST['region'] : $region="" ; 
682         
683        }
684 
685
686 
687     $query = "
688                SELECT *,COUNT(`id`) as total
689                FROM `".MAIL_BLACK_LISTE_TABLE."`
690                    WHERE `ip` LIKE '".$ip."'
691                ;";     
692                 $datas = mysql_fetch_array(pwg_query($query),MYSQL_ASSOC);
693                 $nb = $datas['total']; 
694if ($mails_options[5] == 'on')
695{
696 if ($nb==0) {
697  if (test_spam($ip))
698  {
699 
700        $valeurs=array( 'NULL',
701                            "'".$ip."'",
702                                        "'".$pays."'",
703                                        "'".$region."'",       
704                                        "'".$ville."'",
705                                        '"adresse"',
706                                        '"fai" ',
707                                        1
708        );
709        ajout_ligne(MAIL_BLACK_LISTE_TABLE,$superv_bl_champs, $valeurs,true) ; 
710          $erreur_message .= $ip.$mails_options[6] . ' -----> ' . l10n('black_list') ;
711        return true ;   
712
713    }
714  }
715}
716 //==============================================================================
717 
718 if ( $mails_options[6] == $ip ) return ($nb > 0) ;     
719   $mails_options[6] =   $ip ; 
720   sauve_options();
721 
722        if (  $nb > 0 )
723        {
724            $erreur_message .= $ip . ' | ' . $pays . ' | ' . $region . ' | ' . $ville . ' ==> ';
725            $row  = mysql_fetch_row(pwg_query($query));
726            $nb =  ($row[7])+1;
727         $query ="
728                        UPDATE " . MAIL_BLACK_LISTE_TABLE . "
729                        SET ";
730                if (isset($_POST['pays']))     
731                 $query .= "   
732                        `pays` = '". $pays ."',
733                        `region` = '" . $region ."',
734                        `ville` = '" . $ville . "',
735                        ";
736                 $query .= "           
737                        `nb` = " . $nb . "
738                          WHERE ip = '". $ip ."' ;
739                ";
740                                pwg_query($query );
741        //================================================================================     
742               
743        }
744 
745
746return ($nb > 0) ;
747}
748//=====================================================================================
749function test_spam($ip)
750{
751$buffer="";
752
753
754if (isset($ip))
755        {
756        if (strlen($ip) > 3)
757        {
758
759        $handle =  @fopen("http://www.stopforumspam.com/api?ip=$ip","r"); 
760        if ($handle) {
761                while (!feof($handle)) { 
762                $buffer .= fgets($handle, 4096);
763                          }   
764                          fclose($handle);
765                          }
766                        return  !(strpos(  $buffer,'yes' ) === false) ;
767
768        }
769       
770         }
771          return  false;
772}
773//==================================================================
774
775               
776?>
777
778
779
780         
Note: See TracBrowser for help on using the repository browser.