Changeset 87397 in spip-zone


Ignore:
Timestamp:
Feb 10, 2015, 12:20:23 PM (5 years ago)
Author:
cedric@…
Message:

urlencode n'etait pas suffisant sur les emails qui peuvent contenir un +, on utilise un base64_encode modifie pour ne pas avoir de +

Location:
_plugins_/mailsubscribers/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailsubscribers/trunk/action/confirm_unsubscribe_mailsubscriber.php

    r87396 r87397  
    2222                $email = explode("-",$email);
    2323                $arg = array_pop($email);
    24                 $email = rawurldecode(implode("-",$email));
     24                $email = mailsubscriber_base64url_decode(implode("-",$email));
    2525
    2626                $row = sql_fetsel('id_mailsubscriber,email,jeton,lang,statut','spip_mailsubscribers','email='.sql_quote($email));
     
    4141        $unsubscribe_mailsubscriber ($email,false);
    4242}
     43
     44function mailsubscriber_base64url_decode($data) {
     45  return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
     46}
  • _plugins_/mailsubscribers/trunk/action/unsubscribe_mailsubscriber.php

    r87396 r87397  
    5858                        include_spip("inc/filtres");
    5959                        $titre = _T('mailsubscriber:unsubscribe_texte_confirmer_email_1',array('email'=>$row['email']));
    60                         $titre .= "<br /><br />".bouton_action(_T('newsletter:bouton_unsubscribe'),generer_action_auteur('confirm_unsubscribe_mailsubscriber',rawurlencode($email)."-$arg"));
     60                        // on utilise mailsubscriber_base64url_encode pour eviter d'avoir un + dans l'URL ce qui est ingerable
     61                        $titre .= "<br /><br />".bouton_action(_T('newsletter:bouton_unsubscribe'),generer_action_auteur('confirm_unsubscribe_mailsubscriber',mailsubscriber_base64url_encode($email)."-$arg"));
    6162                }
    6263                else {
     
    7778
    7879}
     80
     81function mailsubscriber_base64url_encode($data) {
     82  return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
     83}
  • _plugins_/mailsubscribers/trunk/paquet.xml

    r87396 r87397  
    22        prefix="mailsubscribers"
    33        categorie="communication"
    4         version="1.6.12"
     4        version="1.6.13"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.