Ignore:
Timestamp:
Apr 10, 2013, 10:58:35 AM (11 years ago)
Author:
cljosse
Message:

[extensions] mail_superviseur update to piwigo 2.5

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/Mail_supervisor/main.inc.php

    r19018 r22118  
    11<?php
    22/*
    3 Plugin Name: Mail supervisor
    4 Version: 1.5.9
     3 Plugin Name: Mail supervisor
     4Version: 1.6.0
    55Description: Mail supervisor surveille l'envoie des mails.
    66Plugin URI: http://piwigo.org/ext/extension_view.php?eid=315
     
    88Author URI:http://cljosse.free.fr
    99*/
     10
     11/**************************************
     12 * (local) httpconf
     13 * [mail function]
     14; For Win32 only.
     15; http://php.net/smtp
     16SMTP = smtp.xxxx.fr
     17; http://php.net/smtp-port
     18smtp_port = 25
     19
     20; For Win32 only.
     21; http://php.net/sendmail-from
     22 sendmail_from = toto@xxxx.fr
     23 **************************************/
     24 
    1025if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
    1126if (!defined('mail_superv_DIR')) define('mail_superv_DIR' , basename(dirname(__FILE__)));
     
    2237
    2338$mail_supervisor = new mail_supervisor();
    24  
     39
    2540include_once(MAIL_SUPERV_PATH.'mail_send.inc.php');
    2641$clj = new clj();
     
    3146include_once (MAIL_SUPERV_PATH.'include/fonctions.php');
    3247
    33  $mail_supervisor->Get_Options($mails_options,"mail_superv");
    34  $mails_donnees=$mail_supervisor->Get_Datas();
     48$mail_supervisor->Get_Options($mails_options,"mail_superv");
     49$mails_donnees=$mail_supervisor->Get_Datas();
    3550
    3651/* EVENT_HANDLER_PRIORITY_NEUTRAL  */
     
    5267
    5368function clj_send_mail($result, $mailto, $subject, $content, $headers, $args,$nb_destinataires) {
    54   global $conf, $user, $lang_info;
    55   global $conf_mail,$mails_options,$mails_donnees ;
    56   global  $template,$page ,$erreur_message,$infos_message, $lang;
    57   global $errors;
    58 
    59   include_once (MAIL_SUPERV_PATH.'include/fonctions.php');
    60   load_language('plugin.lang', MAIL_SUPERV_PATH);
    61  
    62   $arg_trigg= array($mailto, $subject, $content, $headers, $args);
    63     trigger_event('mail_supervisor_clj_mail',$arg_trigg);
    64      if (empty($mail_supervisor)) 
    65       $mail_supervisor = new mail_supervisor();
    66 
    67     $message ="";
    68   if (!isset($infos_message))   {   $infos_message = "";    }
    69   if (!isset($erreur_message))  {   $erreur_message = '';   }
    70 
    71   $envoie_ok=true ;
    72   //======== verification si envoie de mail ou blocage connexion =====================
    73   if ($mails_options['no_mail_list']=='on' || $mails_options['no_connect'] == 'on' )    {
    74     if (kill_list()) {
    75       $nb_destinataires=0; ;
    76       $envoie_ok= false ;
    77       $erreur_message .= "<BR />".l10n('Sv_is_a_spam') ;
    78       $infos_message = l10n('Sv_mail_not_send')."<BR />";
    79       if ($mails_options['no_connect'] == 'on' ){         
    80           if ($user['status'] == 'webmaster'){
    81           //---------- continuer si web master ----------
    82           }else{
    83              trigger_event('mail_supervisor_send_mail', "DIE(KILL) : " . $ip . ' = ' . $user['status']);
    84               if (!isset($_GET['admin'])) {
    85                       die('Blacklist : <br />' .$erreur_message. '<br /> Hacking attempt!');
    86                         }elseif   ($_GET['admin'] != 'piwigo')
    87                             {
    88                       die('blacklist Hacking attempt!');
    89               }
    90           }
    91       }
    92       trigger_event('mail_supervisor_send_mail', "Kill : " . $ip . ' = ' . $user['status'] . "noconnect==off");
    93       return true;
    94       }
    95     }
    96 
    97     // lecture donnees       -------------
    98     $nb_mails   = $mails_donnees['nb_mails'] ;
    99     $next_day  =  $mails_donnees['date_mail'] ;
    100     $reste =    $mails_donnees['reste'] ;
    101     $rest_mail =    $mails_donnees['rest_mail'] ;
    102     if ($rest_mail <=0 || $mails_donnees['nb_mails'] ==0 ){
    103       $mails_donnees['nb_mails'] =0 ;
    104       $mails_donnees['date_mail'] = time();
    105     }
    106     $rest_spam =    $mails_donnees['rest_spam'] ;
    107     if ($rest_spam <=0 || $mails_donnees['nb_spams'] ==0 ){
    108       $mails_donnees['nb_spams'] =0 ;
    109       $mails_donnees['date_spam'] = time();
    110     }
    111     $alerte =   ( $mails_donnees['reste'] >0 ) ? true : false ;
    112     $alerte_mail =    ( $mails_donnees['nb_mails'] >   $mails_donnees['nb_mails_maxi']-1 ) ? true : false ;
    113     $alerte_spam =    ( $mails_donnees['nb_spams'] >   $mails_donnees['nb_spams_maxi']-1 ) ? true : false ;
    114     //=============================
    115     // TEST envoie Message
    116     //=============================
    117     if ( ( !$alerte  && !$alerte_spam  && !$alerte_mail ) ) {
    118       $infos_message .= "nb_destinataires : $nb_destinataires Theme :" . ($args['theme'] ) ." {". $lang_info['language_name'] ."}"."<br />";   
    119       $infos_message .="Mailto:" .$mailto ."<br />";
    120       if(isset($args['Bcc']) && count($args['Bcc'])>0) $infos_message .="Bcc:  " . implode(",",$args['Bcc'])."<br />";
    121       if(isset($args['Cc'])&& count($args['Cc'])>0)  $infos_message .="Cc:  " . implode(",",$args['Cc'])."<br />";
    122       //============================================
    123       // Photographie
    124       //============================================
    125       $ret="false"; 
    126       ob_start();
    127         if ($nb_destinataires > 0) {
    128           if( $envoie_ok)  $ret = mail($mailto, $subject,$content, $headers);                 
    129         }else{
    130               echo l10n('Sv_no_receiver_available');
    131         }
    132       $message .= ob_get_contents();
    133       ob_end_clean();
    134 
    135       $arg_trigg= array("Nb destinataires: " . $nb_destinataires,"Mail to: ".$mailto,"content: ".$content, " Reponse : " . $message);
    136 
    137       trigger_event('mail_supervisor_mail', $arg_trigg );
    138       $mails_donnees['message']=$message;
    139       $ret= Gestion_erreurs($message,$ret,$nb_destinataires,$headers,$mailto, $subject,$content);
    140     } else {
    141       //================== Est en quarantaine =======================
    142                
    143       $erreur_message .=  l10n('Sv_To_day_is')."<br />";
    144       if ($alerte_spam ) {
    145               $type="Spams";
    146               $d1=$mails_donnees['nb_spams'] . '  \\  ' . $mails_donnees['nb_spams_maxi'];
    147               $d2=$mails_donnees['nb_spams'];
    148               $d3= $mails_donnees['rest_spam'];
    149               $d4=time()+$d3 ;
    150       }
    151       if ($alerte_mail) {
    152           $type="Mails";
    153           $d1=$mails_donnees['nb_mails']. '  \\  ' . $mails_donnees['nb_mails_maxi'];;
    154           $d2=$mails_donnees['date_mail'];
    155           $d3= $mails_donnees['rest_mail'];
    156           $d4=time()+$d3 ;
    157       }
    158       if ($alerte) {
    159         $type="Spams(Quarantaine)";
    160         $d1=$mails_donnees['nb_spams'] . '  \\  ' . $mails_donnees['nb_spams_maxi'];
    161         $d2=$mails_donnees['date_quarantaine'];
    162         $d3= $mails_donnees['reste'];
    163         $d4=time()+$d3 ;
    164       }
    165       $d2=date(l10n('Sv_formatdate'),$d2);
    166       $d3=int_to_heure($d3) ;
    167       $d4=date(l10n('Sv_formatdate'),$d4);
    168       if ($alerte_mail) {
    169           $erreur_message .='<br />'.sprintf(l10n('Sv_alerte_mail %s %s %s %s %s'),$type,$d1,$d2,$d3,$d4).'<br />';
    170       }else{
    171           $erreur_message .='<br />'.sprintf(l10n('Sv_mise_en_quarantaine %s %s %s %s %s'),$type,$d1,$d2,$d3,$d4).'<br />';
    172       }
    173       $ret = "Error ". $type." : ";
    174       $ret .=  l10n('Sv_mail_not_send');               
    175       $infos_message .= l10n('Sv_mail_not_send');
    176     }
    177     $infos_message .= "<hr>";
    178    
    179     trigger_event('mail_supervisor_message',  $infos_message );
    180      $mail_supervisor->sauve_donnees();
    181      $mail_supervisor->affiche_message();   
    182     return $ret  ;//
     69        global $conf, $user, $lang_info;
     70        global $conf_mail,$mails_options,$mails_donnees ;
     71        global  $template,$page ,$erreur_message,$infos_message, $lang;
     72        global $errors;
     73
     74        include_once (MAIL_SUPERV_PATH.'include/fonctions.php');
     75        load_language('plugin.lang', MAIL_SUPERV_PATH);
     76
     77        $arg_trigg= array($mailto, $subject, $content, $headers, $args);
     78        trigger_event('mail_supervisor_clj_mail',$arg_trigg);
     79        if (empty($mail_supervisor))
     80                $mail_supervisor = new mail_supervisor();
     81
     82        $message ="";
     83        if (!isset($infos_message))   {
     84                $infos_message = "";
     85        }
     86        if (!isset($erreur_message))  {
     87                $erreur_message = '';
     88        }
     89
     90        $envoie_ok=true ;
     91        //======== verification si envoie de mail ou blocage connexion =====================
     92        if ($mails_options['no_mail_list']=='on' || $mails_options['no_connect'] == 'on' )    {
     93                if (kill_list()) {
     94                        $nb_destinataires=0; ;
     95                        $envoie_ok= false ;
     96                        $erreur_message .= "<BR />".l10n('Sv_is_a_spam') ;
     97                        $infos_message = l10n('Sv_mail_not_send')."<BR />";
     98                        if ($mails_options['no_connect'] == 'on' ){
     99                                if ($user['status'] == 'webmaster'){
     100                                        //---------- continuer si web master ----------
     101                                }else{
     102                                        trigger_event('mail_supervisor_send_mail', "DIE(KILL) : " . $ip . ' = ' . $user['status']);
     103                                        if (!isset($_GET['admin'])) {
     104                                                die('Blacklist : <br />' .$erreur_message. '<br /> Hacking attempt!');
     105                                        }elseif   ($_GET['admin'] != 'piwigo')
     106                                        {
     107                                                die('blacklist Hacking attempt!');
     108                                        }
     109                                }
     110                        }
     111                        trigger_event('mail_supervisor_send_mail', "Kill : " . $ip . ' = ' . $user['status'] . "noconnect==off");
     112                        return true;
     113                }
     114        }
     115
     116        // lecture donnees       -------------
     117        $nb_mails   = $mails_donnees['nb_mails'] ;
     118        $next_day  =  $mails_donnees['date_mail'] ;
     119        $reste =    $mails_donnees['reste'] ;
     120        $rest_mail =    $mails_donnees['rest_mail'] ;
     121        if ($rest_mail <=0 || $mails_donnees['nb_mails'] ==0 ){
     122                $mails_donnees['nb_mails'] =0 ;
     123                $mails_donnees['date_mail'] = time();
     124        }
     125        $rest_spam =    $mails_donnees['rest_spam'] ;
     126        if ($rest_spam <=0 || $mails_donnees['nb_spams'] ==0 ){
     127                $mails_donnees['nb_spams'] =0 ;
     128                $mails_donnees['date_spam'] = time();
     129        }
     130        $alerte =   ( $mails_donnees['reste'] >0 ) ? true : false ;
     131        $alerte_mail =    ( $mails_donnees['nb_mails'] >   $mails_donnees['nb_mails_maxi']-1 ) ? true : false ;
     132        $alerte_spam =    ( $mails_donnees['nb_spams'] >   $mails_donnees['nb_spams_maxi']-1 ) ? true : false ;
     133        //=============================
     134        // TEST envoie Message
     135        //=============================
     136        if ( ( !$alerte  && !$alerte_spam  && !$alerte_mail ) ) {
     137                $infos_message .= "nb_destinataires : $nb_destinataires Theme :" . ($args['theme'] ) ." {". $lang_info['language_name'] ."}"."<br />";
     138                $infos_message .="Mailto:" .$mailto ."<br />";
     139                if(isset($args['Bcc']) && count($args['Bcc'])>0) $infos_message .="Bcc:  " . implode(",",$args['Bcc'])."<br />";
     140                if(isset($args['Cc'])&& count($args['Cc'])>0)  $infos_message .="Cc:  " . implode(",",$args['Cc'])."<br />";
     141                //============================================
     142                // Photographie
     143                //============================================
     144                $ret="false";
     145                ob_start();
     146                if ($nb_destinataires > 0) {
     147                        if( $envoie_ok)  $ret = mail($mailto, $subject,$content, $headers);
     148                }else{
     149                        echo l10n('Sv_no_receiver_available');
     150                }
     151                $message .= ob_get_contents();
     152                ob_end_clean();
     153
     154                $arg_trigg= array("Nb destinataires: " . $nb_destinataires,"Mail to: ".$mailto,"content: ".$content, " Reponse : " . $message);
     155
     156                trigger_event('mail_supervisor_mail', $arg_trigg );
     157                $mails_donnees['message']=$message;
     158                $ret= Gestion_erreurs($message,$ret,$nb_destinataires,$headers,$mailto, $subject,$content);
     159        } else {
     160                //================== Est en quarantaine =======================
     161                 
     162                $erreur_message .=  l10n('Sv_To_day_is')."<br />";
     163                if ($alerte_spam ) {
     164                        $type="Spams";
     165                        $d1=$mails_donnees['nb_spams'] . '  \\  ' . $mails_donnees['nb_spams_maxi'];
     166                        $d2=$mails_donnees['nb_spams'];
     167                        $d3= $mails_donnees['rest_spam'];
     168                        $d4=time()+$d3 ;
     169                }
     170                if ($alerte_mail) {
     171                        $type="Mails";
     172                        $d1=$mails_donnees['nb_mails']. '  \\  ' . $mails_donnees['nb_mails_maxi'];;
     173                        $d2=$mails_donnees['date_mail'];
     174                        $d3= $mails_donnees['rest_mail'];
     175                        $d4=time()+$d3 ;
     176                }
     177                if ($alerte) {
     178                        $type="Spams(Quarantaine)";
     179                        $d1=$mails_donnees['nb_spams'] . '  \\  ' . $mails_donnees['nb_spams_maxi'];
     180                        $d2=$mails_donnees['date_quarantaine'];
     181                        $d3= $mails_donnees['reste'];
     182                        $d4=time()+$d3 ;
     183                }
     184                $d2=date(l10n('Sv_formatdate'),$d2);
     185                $d3=int_to_heure($d3) ;
     186                $d4=date(l10n('Sv_formatdate'),$d4);
     187                if ($alerte_mail) {
     188                        $erreur_message .='<br />'.sprintf(l10n('Sv_alerte_mail %s %s %s %s %s'),$type,$d1,$d2,$d3,$d4).'<br />';
     189                }else{
     190                        $erreur_message .='<br />'.sprintf(l10n('Sv_mise_en_quarantaine %s %s %s %s %s'),$type,$d1,$d2,$d3,$d4).'<br />';
     191                }
     192                $ret = "Error ". $type." : ";
     193                $ret .=  l10n('Sv_mail_not_send');
     194                $infos_message .= l10n('Sv_mail_not_send');
     195        }
     196        $infos_message .= "<hr>";
     197         
     198        trigger_event('mail_supervisor_message',  $infos_message );
     199        $mail_supervisor->sauve_donnees();
     200        $mail_supervisor->affiche_message();
     201        return $ret  ;//
    183202}
    184203//===========================================================================================
    185204function Gestion_erreurs($message,$ret,$nb_destinataires,$headers,$mailto, $subject,$content){
    186      global $conf, $user,  $conf_mail,$mails_options,$mails_donnees , $template,$page ,$infos_message,$erreur_message,$args,$lang, $lang_info;
    187      $match=array("<",">");
    188      $string=array("&lt;","&gt;") ;
    189      //  $headers=str_replace( $match,$string, $headers);
    190     // Warning: mail() has been disabled for security reasons
    191     $est_un_spam =!(strpos(strtolower($message), 'spam') === false); 
    192 
    193     $log_message =  " :".sprintf(l10n('Sv_debug_message'),
    194                       ($ret==true)? "true" : "false",
    195                       "\n".$message ,
    196                       "\n".$mailto ,
    197                       "\n".$subject ,
    198                       "\n".$headers ,
    199                       "\n".$content ,
    200                       "\n".$nb_destinataires) ;
    201 
    202     if ( ($ret==false) || ($est_un_spam==true) || ($nb_destinataires == 0) ) {
    203      //=============== La fonction mail retourne une erreur =========================
    204         $ret="Error";
    205         // Bad recipient address syntax
    206         $pos1 = strpos(strtolower($message), 'bad recipient address syntax');
    207         if (  !($pos1 === false) ){
    208             $erreur_message .= l10n('Sv_detection_de').' Bad recipient address syntax .';
    209             $erreur_message .= l10n('Sv_verifiez_les_destinataires').' (Bcc,Cc,To)<br />';
    210             }               
    211         $erreur_message .=$ret . " :".sprintf(l10n('Sv_debug_message'),
    212                               ($ret==true)? "true" : "false",
    213                               htmlspecialchars($message) ,
    214                               htmlspecialchars( $mailto) ,
    215                               htmlspecialchars($subject) ,
    216                               htmlspecialchars($headers) ,
    217                               htmlspecialchars($content) ,
    218                               $nb_destinataires );
    219 
    220      Mail_supervisor_log($mailto,$log_message) ;   
    221            
    222       }else{           
    223     if( isset($mails_options['debug_mail']) && $mails_options['debug_mail']=="on") {
    224               $infos_message .="DEBUG : " .sprintf(l10n('Sv_debug_message'),
    225                                   ($ret==true)? "true" : "false",
    226                                   htmlspecialchars( $message) ,
    227                                   htmlspecialchars( $mailto) ,
    228                                   htmlspecialchars($subject) ,
    229                                   htmlspecialchars($headers) ,
    230                                   htmlspecialchars($content) ,
    231                                   $nb_destinataires );
    232              
    233          Mail_supervisor_log($mailto,"DEBUG :" .  ($log_message)) ;
    234         }
    235       }
    236       //=================================================================
    237         if ($est_un_spam == false){
    238                 if ($mails_donnees['nb_mails']==0) {    $mails_donnees['date_mail'] =  time();  }
    239                 $mails_donnees['nb_mails'] += $nb_destinataires;
    240             } else {
    241                 $ret="Error spam";
    242                 $mails_donnees['nb_spams'] += $nb_destinataires;
    243                 //--- Detection de spam ------------------
    244                 if ($mails_donnees['nb_spams']==0) {$mails_donnees['date_spam'] = time();   }
    245 
    246                 $trop_de_spam =!(strpos(strtolower($message), 'trop de spam') === false);
    247                 if ( $trop_de_spam ) {
    248                         $mails_donnees['nb_spams_maxi']=$mails_donnees['nb_spams'];
    249 
    250                         $mails_donnees['date_quarantaine']= time()  ;
    251                         $mails_donnees['quarantaine']= true    ;
    252                         $infos_message .=  $mail_supervisor->Memo_Var($mails_donnees);
    253                     }
    254             }
    255  return $ret ;
     205        global $conf, $user,  $conf_mail,$mails_options,$mails_donnees , $template,$page ,$infos_message,$erreur_message,$args,$lang, $lang_info;
     206        $match=array("<",">");
     207        $string=array("&lt;","&gt;") ;
     208        //  $headers=str_replace( $match,$string, $headers);
     209        // Warning: mail() has been disabled for security reasons
     210        $est_un_spam =!(strpos(strtolower($message), 'spam') === false);
     211
     212        $log_message =  " :".sprintf(l10n('Sv_debug_message'),
     213                        ($ret==true)? "true" : "false",
     214                        "\n".$message ,
     215                        "\n".$mailto ,
     216                        "\n".$subject ,
     217                        "\n".$headers ,
     218                        "\n".$content ,
     219                        "\n".$nb_destinataires) ;
     220
     221        if ( ($ret==false) || ($est_un_spam==true) || ($nb_destinataires == 0) ) {
     222                //=============== La fonction mail retourne une erreur =========================
     223                $ret="Error";
     224                // Bad recipient address syntax
     225                $pos1 = strpos(strtolower($message), 'bad recipient address syntax');
     226                if (  !($pos1 === false) ){
     227                        $erreur_message .= l10n('Sv_detection_de').' Bad recipient address syntax .';
     228                        $erreur_message .= l10n('Sv_verifiez_les_destinataires').' (Bcc,Cc,To)<br />';
     229                }
     230                $erreur_message .=$ret . " :".sprintf(l10n('Sv_debug_message'),
     231                                ($ret==true)? "true" : "false",
     232                                htmlspecialchars($message) ,
     233                                htmlspecialchars( $mailto) ,
     234                                htmlspecialchars($subject) ,
     235                                htmlspecialchars($headers) ,
     236                                htmlspecialchars($content) ,
     237                                $nb_destinataires );
     238
     239                Mail_supervisor_log($mailto,$log_message) ;
     240                 
     241        }else{
     242                if( isset($mails_options['debug_mail']) && $mails_options['debug_mail']=="on") {
     243                        $infos_message .="DEBUG : " .sprintf(l10n('Sv_debug_message'),
     244                                        ($ret==true)? "true" : "false",
     245                                        htmlspecialchars( $message) ,
     246                                        htmlspecialchars( $mailto) ,
     247                                        htmlspecialchars($subject) ,
     248                                        htmlspecialchars($headers) ,
     249                                        htmlspecialchars($content) ,
     250                                        $nb_destinataires );
     251
     252                        Mail_supervisor_log($mailto,"DEBUG :" .  ($log_message)) ;
     253                }
     254        }
     255        //=================================================================
     256        if ($est_un_spam == false){
     257                if ($mails_donnees['nb_mails']==0) {
     258                        $mails_donnees['date_mail'] =  time();
     259                }
     260                $mails_donnees['nb_mails'] += $nb_destinataires;
     261        } else {
     262                $ret="Error spam";
     263                $mails_donnees['nb_spams'] += $nb_destinataires;
     264                //--- Detection de spam ------------------
     265                if ($mails_donnees['nb_spams']==0) {
     266                        $mails_donnees['date_spam'] = time();
     267                }
     268
     269                $trop_de_spam =!(strpos(strtolower($message), 'trop de spam') === false);
     270                if ( $trop_de_spam ) {
     271                        $mails_donnees['nb_spams_maxi']=$mails_donnees['nb_spams'];
     272
     273                        $mails_donnees['date_quarantaine']= time()  ;
     274                        $mails_donnees['quarantaine']= true    ;
     275                        $infos_message .=  $mail_supervisor->Memo_Var($mails_donnees);
     276                }
     277        }
     278        return $ret ;
    256279}
    257280//============================================================
    258281global $ms_file_log,$dir,$clj_pwd;
    259 
    260 
    261 $clj_pwd=$conf['local_data_dir'].'/Pwd';
    262   if (!is_dir($clj_pwd)){ 
    263     $umask = umask(0);
    264     $mkd = @mkdir($clj_pwd, 0755, true );
    265     umask($umask);
    266     if ($mkd==false){
    267     echo "<pre>PWD:$clj_pwd";
    268       fatal_error( "$clj_pwd ".l10n('no write access'));
    269       return false;
    270     } 
    271   }
     282$clj_pwd= $conf['data_location'].'/Pwd';
     283if (!is_dir($clj_pwd)){
     284        $umask = umask(0);
     285        $mkd = @mkdir($clj_pwd, 0755, true );
     286        umask($umask);
     287        if ($mkd==false){
     288                echo "<pre>PWD:$clj_pwd";
     289                fatal_error( "$clj_pwd ".l10n('no write access'));
     290                return false;
     291        }
     292}
    272293//==================================================
    273 $dir=$conf['local_data_dir'].'/Mail_supervisor_log';
    274  if (!is_dir($dir)){ 
    275     $umask = umask(0);
    276     $mkd = @mkdir($dir, 0755, true );
    277     umask($umask);
    278     if ($mkd==false){
    279       echo "<pre>Dir:$dir";
    280       fatal_error( "$dir ".l10n('no write access'));
    281       return false;
    282     }
    283   }
     294$dir=$conf['data_location'].'/Mail_supervisor_log';
     295if (!is_dir($dir)){
     296        $umask = umask(0);
     297        $mkd = @mkdir($dir, 0755, true );
     298        umask($umask);
     299        if ($mkd==false){
     300                echo "<pre>Dir:$dir";
     301                fatal_error( "$dir ".l10n('no write access'));
     302                return false;
     303        }
     304}
    284305//==================================================
    285306//add_event_handler('loc_begin_page_header',  'set_access'   );
    286307function set_access(){
    287 global $user;
    288   global $ms_file_log,$dir,$clj_pwd;
    289   global $user,$conf;
    290   $pwd=$clj_pwd;
    291 
    292 if(!file_exists( $pwd.'/.htpasswd') || !file_exists( $dir.'/.htaccess')){
    293 //=========================================================
    294     // Creation liste mot de passe
    295 //=========================================================
    296 $server=$_SERVER["SERVER_NAME"];
    297 $server_ip=$_SERVER["SERVER_ADDR"];
    298 $user_ip=$_SERVER["REMOTE_ADDR"];
    299         $pattern ="/(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]|[1-9])\.){1}((25[0-5]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]|[0-9])\.){2}((25[0-5]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]|[0-9]){1}))/" ;       
    300         $local=preg_match($pattern,$user_ip);
    301 
    302   $file = $pwd.'/.htpasswd';   
    303    $htmes1 =$conf['db_user'].":".$conf['db_password']."\n";
    304    $htmes2 =$conf['db_user'].":".crypt($conf['db_password'], 'rl')."\n";
    305 if(preg_match("/free/i",$server)||$local)
    306    $htmes=$htmes1;
    307  else
    308     $htmes=$htmes2;
    309  //==== Ecriture fichier texte
    310 
    311  $fp = fopen ( $file , "w"); 
    312  fwrite($fp ,  $htmes,strlen($htmes)); 
    313  fclose ($fp);
    314 
    315   $file = $pwd.'/.htaccess';
    316   @file_put_contents( $file, "deny for all" );
    317 //=========================================================
    318       // Creation fichier htaccess
    319 //=========================================================
    320 $racine=explode("/",$_SERVER["PHP_SELF"] );
    321 $racine = $racine[1] ;
    322 if(preg_match("/free/i",$server)) {
    323    $AuthUserFile='PerlSetVar AuthFile '.$racine.'/_data/Pwd' .'/.htpasswd';
    324 }else{
    325  if($local)
    326     $AuthUserFile='AuthUserFile '.realpath($pwd).'\\.htpasswd'."\n".'AuthGroupFile /dev/null';
    327     else
    328 $AuthUserFile='AuthUserFile '.realpath($pwd).'\\.htpasswd'."\n".'AuthGroupFile /dev/null';
    329 }
    330 
    331 //============================================================
    332 $htmes=$AuthUserFile."\n".
    333       'AuthName "Mail_supervisor_log"'."\n".
    334 'AuthType Basic'."\n".
    335 '<limit GET>'."\n".
    336 'require valid-user'."\n".
    337 '</Limit>';
    338   $file = $dir.'/.htaccess';
    339   @file_put_contents( $file, $htmes );
    340 //============================================================
    341 
    342     }
    343 
    344   }
     308        global $user;
     309        global $ms_file_log,$dir,$clj_pwd;
     310        global $user,$conf;
     311        $pwd=$clj_pwd;
     312
     313        if(!file_exists( $pwd.'/.htpasswd') || !file_exists( $dir.'/.htaccess')){
     314                //=========================================================
     315                // Creation liste mot de passe
     316                //=========================================================
     317                $server=$_SERVER["SERVER_NAME"];
     318                $server_ip=$_SERVER["SERVER_ADDR"];
     319                $user_ip=$_SERVER["REMOTE_ADDR"];
     320                $pattern ="/(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]|[1-9])\.){1}((25[0-5]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]|[0-9])\.){2}((25[0-5]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]|[0-9]){1}))/" ;
     321                $local=preg_match($pattern,$user_ip);
     322
     323                $file = $pwd.'/.htpasswd';
     324                $htmes1 =$conf['db_user'].":".$conf['db_password']."\n";
     325                $htmes2 =$conf['db_user'].":".crypt($conf['db_password'], 'rl')."\n";
     326                if(preg_match("/free/i",$server)||$local)
     327                        $htmes=$htmes1;
     328                else
     329                        $htmes=$htmes2;
     330                //==== Ecriture fichier texte
     331
     332                $fp = fopen ( $file , "w");
     333                fwrite($fp ,  $htmes,strlen($htmes));
     334                fclose ($fp);
     335
     336                $file = $pwd.'/.htaccess';
     337                @file_put_contents( $file, "deny for all" );
     338                //=========================================================
     339                // Creation fichier htaccess
     340                //=========================================================
     341                $racine=explode("/",$_SERVER["PHP_SELF"] );
     342                $racine = $racine[1] ;
     343                if(preg_match("/free/i",$server)) {
     344                        $AuthUserFile='PerlSetVar AuthFile '.$racine.'/_data/Pwd' .'/.htpasswd';
     345                }else{
     346                        if($local)
     347                                $AuthUserFile='AuthUserFile '.realpath($pwd).'\\.htpasswd'."\n".'AuthGroupFile /dev/null';
     348                        else
     349                                $AuthUserFile='AuthUserFile '.realpath($pwd).'\\.htpasswd'."\n".'AuthGroupFile /dev/null';
     350                }
     351
     352                //============================================================
     353                $htmes=$AuthUserFile."\n".
     354                                'AuthName "Mail_supervisor_log"'."\n".
     355                                'AuthType Basic'."\n".
     356                                '<limit GET>'."\n".
     357                                'require valid-user'."\n".
     358                                '</Limit>';
     359                $file = $dir.'/.htaccess';
     360                @file_put_contents( $file, $htmes );
     361                //============================================================
     362
     363        }
     364
     365}
    345366
    346367if($ms_file_log=="") $ms_file_log = $dir."/"."pw1.html";
     
    349370//============================================================
    350371function Mail_supervisor_log($label_,$lines){
    351   global $ms_file_log,$conf; 
    352   $nb_lignes=600 ;
    353 $t= var_export( $lines, true );
    354 $s  = htmlspecialchars(  $lines);
    355  $s  =  (  $lines);
    356     if (!file_exists($ms_file_log)) {
    357     $handle = fopen($ms_file_log, 'w');
    358     fwrite($handle, "\n");
    359     fclose($handle);
    360     }
    361   $tableau=file($ms_file_log);
    362   $handle = fopen($ms_file_log, 'a');
    363   $nb=count ($tableau);
    364    if($nb>$nb_lignes) {
    365       $handle = fopen($ms_file_log, 'w');
    366       fwrite($handle, $nb. " > " . $nb_lignes . "  RAZ " ."\n");
    367    }
    368  //rewind ($handle); // Go back to the beginning
    369  //fwrite ($handle, sprintf("%5d ", $nb)); // Don't forget to increment the counter
    370  $s="\n".date('Y m d H:m:s ')."\n".$s;
    371 
    372 
    373 //$s= nl2br($s);
    374 
    375  if( $s !="") fwrite($handle,$s );
    376       fclose($handle);
     372        global $ms_file_log,$conf;
     373        $nb_lignes=600 ;
     374        $t= var_export( $lines, true );
     375        $s  = htmlspecialchars(  $lines);
     376        $s  =  (  $lines);
     377        if (!file_exists($ms_file_log)) {
     378                $handle = fopen($ms_file_log, 'w');
     379                fwrite($handle, "\n");
     380                fclose($handle);
     381        }
     382        $tableau=file($ms_file_log);
     383        $handle = fopen($ms_file_log, 'a');
     384        $nb=count ($tableau);
     385        if($nb>$nb_lignes) {
     386                $handle = fopen($ms_file_log, 'w');
     387                fwrite($handle, $nb. " > " . $nb_lignes . "  RAZ " ."\n");
     388        }
     389        //rewind ($handle); // Go back to the beginning
     390        //fwrite ($handle, sprintf("%5d ", $nb)); // Don't forget to increment the counter
     391        $s="\n".date('Y m d H:m:s ')."\n".$s;
     392
     393
     394        //$s= nl2br($s);
     395
     396        if( $s !="") fwrite($handle,$s );
     397        fclose($handle);
    377398}
    378399
Note: See TracChangeset for help on using the changeset viewer.