Changeset 22118 for extensions/Mail_supervisor/main.inc.php
- Timestamp:
- Apr 10, 2013, 10:58:35 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/Mail_supervisor/main.inc.php
r19018 r22118 1 1 <?php 2 2 /* 3 Plugin Name: Mail supervisor4 Version: 1. 5.93 Plugin Name: Mail supervisor 4 Version: 1.6.0 5 5 Description: Mail supervisor surveille l'envoie des mails. 6 6 Plugin URI: http://piwigo.org/ext/extension_view.php?eid=315 … … 8 8 Author URI:http://cljosse.free.fr 9 9 */ 10 11 /************************************** 12 * (local) httpconf 13 * [mail function] 14 ; For Win32 only. 15 ; http://php.net/smtp 16 SMTP = smtp.xxxx.fr 17 ; http://php.net/smtp-port 18 smtp_port = 25 19 20 ; For Win32 only. 21 ; http://php.net/sendmail-from 22 sendmail_from = toto@xxxx.fr 23 **************************************/ 24 10 25 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 11 26 if (!defined('mail_superv_DIR')) define('mail_superv_DIR' , basename(dirname(__FILE__))); … … 22 37 23 38 $mail_supervisor = new mail_supervisor(); 24 39 25 40 include_once(MAIL_SUPERV_PATH.'mail_send.inc.php'); 26 41 $clj = new clj(); … … 31 46 include_once (MAIL_SUPERV_PATH.'include/fonctions.php'); 32 47 33 34 48 $mail_supervisor->Get_Options($mails_options,"mail_superv"); 49 $mails_donnees=$mail_supervisor->Get_Datas(); 35 50 36 51 /* EVENT_HANDLER_PRIORITY_NEUTRAL */ … … 52 67 53 68 function 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 ;// 183 202 } 184 203 //=========================================================================================== 185 204 function 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("<",">") ; 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("<",">") ; 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 ; 256 279 } 257 280 //============================================================ 258 281 global $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'; 283 if (!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 } 272 293 //================================================== 273 $dir=$conf[' local_data_dir'].'/Mail_supervisor_log';274 if (!is_dir($dir)){ 275 276 277 278 279 280 281 282 283 294 $dir=$conf['data_location'].'/Mail_supervisor_log'; 295 if (!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 } 284 305 //================================================== 285 306 //add_event_handler('loc_begin_page_header', 'set_access' ); 286 307 function set_access(){ 287 global $user;288 289 global $user,$conf; 290 291 292 if(!file_exists( $pwd.'/.htpasswd') || !file_exists( $dir.'/.htaccess')){293 //=========================================================294 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 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 307 308 309 //==== Ecriture fichier texte 310 311 $fp = fopen ( $file , "w"); 312 fwrite($fp , $htmes,strlen($htmes)); 313 fclose ($fp); 314 315 316 317 //=========================================================318 319 //=========================================================320 $racine=explode("/",$_SERVER["PHP_SELF"] );321 $racine = $racine[1] ;322 if(preg_match("/free/i",$server)) {323 324 }else{325 326 327 328 $AuthUserFile='AuthUserFile '.realpath($pwd).'\\.htpasswd'."\n".'AuthGroupFile /dev/null';329 }330 331 //============================================================332 $htmes=$AuthUserFile."\n".333 334 'AuthType Basic'."\n".335 '<limit GET>'."\n".336 'require valid-user'."\n".337 '</Limit>';338 339 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 } 345 366 346 367 if($ms_file_log=="") $ms_file_log = $dir."/"."pw1.html"; … … 349 370 //============================================================ 350 371 function Mail_supervisor_log($label_,$lines){ 351 global $ms_file_log,$conf; 352 353 $t= var_export( $lines, true );354 $s = htmlspecialchars( $lines);355 356 if (!file_exists($ms_file_log)) { 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 //$s= nl2br($s);374 375 376 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); 377 398 } 378 399
Note: See TracChangeset
for help on using the changeset viewer.