Changeset 96991 in spip-zone
- Timestamp:
- May 5, 2016, 11:33:55 AM (5 years ago)
- Location:
- _plugins_/mailsubscribers/trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/mailsubscribers/trunk/action/confirm_mailsubscriber.php
r69533 r96991 17 17 function action_confirm_mailsubscriber_dist($email=null){ 18 18 include_spip('mailsubscribers_fonctions'); 19 include_spip('inc/mailsubscribers'); 19 20 if (is_null($email)){ 20 $email = _request('email'); 21 $arg = _request('arg'); 22 $row = sql_fetsel('id_mailsubscriber,email,jeton,lang,statut','spip_mailsubscribers','email='.sql_quote($email)); 23 if (!$row 24 OR $arg!==mailsubscriber_cle_action("confirm",$row['email'],$row['jeton'])){ 25 $row = false; 21 list($email,$arg) = mailsubscribers_args_action(); 22 23 $row = false; 24 if (!$email 25 OR !$row = sql_fetsel('id_mailsubscriber,email,jeton,lang,statut','spip_mailsubscribers','email='.sql_quote($email))){ 26 spip_log("confirm_mailsubscriber : email $email pas dans la base spip_mailsubscribers","mailsubscribers"); 27 } 28 else { 29 $cle = mailsubscriber_cle_action("confirm",$row['email'],$row['jeton']); 30 if ($arg!==$cle){ 31 spip_log("confirm_mailsubscriber : cle $arg incorrecte pour email $email","mailsubscribers"); 32 $row = false; 33 } 26 34 } 27 35 } … … 31 39 if (!$row){ 32 40 include_spip('inc/minipres'); 33 echo minipres( );41 echo minipres(_T('info_email_invalide').'<br />'.$email); 34 42 exit; 35 43 } -
_plugins_/mailsubscribers/trunk/action/subscribe_mailsubscriber.php
r77941 r96991 17 17 function action_subscribe_mailsubscriber_dist($email=null, $double_optin=null){ 18 18 include_spip('mailsubscribers_fonctions'); 19 include_spip('inc/mailsubscribers'); 19 20 include_spip('inc/config'); 20 21 if (is_null($email)){ 21 $email = _request('email'); 22 $arg = _request('arg'); 23 if (is_null($arg) AND strpos($_SERVER["QUERY_STRING"],"arg%")!==false){ 24 $query = str_replace("arg%","arg=",$_SERVER["QUERY_STRING"]); 25 parse_str($query,$args); 26 $arg = strtolower($args['arg']); 27 if (strlen($arg)>40) 28 $arg = substr($arg,-40); 22 list($email,$arg) = mailsubscribers_args_action(); 23 24 $row = false; 25 if (!$email 26 OR !$row = sql_fetsel('id_mailsubscriber,email,jeton,lang,statut','spip_mailsubscribers','email='.sql_quote($email))){ 27 spip_log("subscribe_mailsubscriber : email $email pas dans la base spip_mailsubscribers","mailsubscribers"); 29 28 } 30 $row = sql_fetsel('id_mailsubscriber,email,jeton,lang,statut','spip_mailsubscribers','email='.sql_quote($email)); 31 if (!$row 32 OR $arg!==mailsubscriber_cle_action("subscribe",$row['email'],$row['jeton'])){ 33 $row = false; 29 else { 30 $cle = mailsubscriber_cle_action("subscribe",$row['email'],$row['jeton']); 31 if ($arg!==$cle){ 32 spip_log("subscribe_mailsubscriber : cle $arg incorrecte pour email $email","mailsubscribers"); 33 $row = false; 34 } 34 35 } 36 35 37 } 36 38 else { … … 39 41 if (!$row){ 40 42 include_spip('inc/minipres'); 41 echo minipres( );43 echo minipres(_T('info_email_invalide').'<br />'.$email); 42 44 exit; 43 45 } -
_plugins_/mailsubscribers/trunk/action/unsubscribe_mailsubscriber.php
r87397 r96991 13 13 * 14 14 * @param string $email 15 * @param bool $double_optin 15 16 */ 16 17 function action_unsubscribe_mailsubscriber_dist($email=null, $double_optin=true){ 17 18 include_spip('mailsubscribers_fonctions'); 19 include_spip('inc/mailsubscribers'); 18 20 if (is_null($email)){ 19 $email = _request('email'); 20 $arg = _request('arg'); 21 if (is_null($arg) AND strpos($_SERVER["QUERY_STRING"],"arg%")!==false){ 22 $query = str_replace("arg%","arg=",$_SERVER["QUERY_STRING"]); 23 parse_str($query,$args); 24 $arg = strtolower($args['arg']); 25 if (strlen($arg)>40) 26 $arg = substr($arg,-40); 21 list($email,$arg) = mailsubscribers_args_action(); 22 23 $row = false; 24 if (!$email 25 OR !$row = sql_fetsel('id_mailsubscriber,email,jeton,lang,statut','spip_mailsubscribers','email='.sql_quote($email))){ 26 spip_log("unsubscribe_mailsubscriber : email $email pas dans la base spip_mailsubscribers","mailsubscribers"); 27 27 } 28 $row = sql_fetsel('id_mailsubscriber,email,jeton,lang,statut','spip_mailsubscribers','email='.sql_quote($email));29 if (!$row)30 spip_log("unsubscribe_mailsubscriber : email $email pas dans la base spip_mailsubscribers","mailsubscribers");31 28 else { 32 29 $cle = mailsubscriber_cle_action("unsubscribe",$row['email'],$row['jeton']); … … 43 40 if (!$row){ 44 41 include_spip('inc/minipres'); 45 echo minipres( );42 echo minipres(_T('info_email_invalide').'<br />'.$email); 46 43 exit; 47 44 } -
_plugins_/mailsubscribers/trunk/inc/mailsubscribers.php
r96843 r96991 8 8 9 9 if (!defined('_ECRIRE_INC_VERSION')) return; 10 11 /** 12 * Recuperer email et arg dans l'action confirm/subscribe/unsubscribe 13 * en gerant les cas foireux introduits par les urls coupees dans les mails 14 * ou par les services d'envoi+redirection qui abiment les URLs 15 * @return array 16 */ 17 function mailsubscribers_args_action(){ 18 $email = _request('email'); 19 $arg = _request('arg'); 20 21 if (is_null($arg) OR is_null($email)){ 22 $query = $_SERVER["QUERY_STRING"]; 23 // cas du arg coupe 24 if (strpos($query,"arg%")!==false){ 25 $query = str_replace("arg%","arg=",$query); 26 } 27 // cas du & transorme en & 28 if (strpos($query,'&')!==false){ 29 $query = str_replace("&","&",$query); 30 } 31 parse_str($query,$args); 32 $arg = strtolower($args['arg']); 33 $email = $args['email']; 34 if (strlen($arg)>40) 35 $arg = substr($arg,-40); 36 if ($arg AND $email){ 37 spip_log("mailsubscriber : query_string mal formee, verifiez votre service d'envoi de mails [".$_SERVER["QUERY_STRING"]."]","mailsubscribers"._LOG_INFO_IMPORTANTE); 38 } 39 } 40 41 return array($email,$arg); 42 } 10 43 11 44 /** -
_plugins_/mailsubscribers/trunk/paquet.xml
r96985 r96991 2 2 prefix="mailsubscribers" 3 3 categorie="communication" 4 version="1.7.1 3"4 version="1.7.14" 5 5 etat="stable" 6 6 compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset
for help on using the changeset viewer.