コード例 #1
0
ファイル: profils.php プロジェクト: nursit/profils
function profils_creer_auteur($set)
{
    include_spip("action/editer_auteur");
    include_spip('inc/acces');
    $id_auteur = auteur_inserer();
    spip_log($id_auteur, 'profils');
    spip_log($set, 'profils');
    if ($id_auteur) {
        $set['pass'] = creer_pass_aleatoire();
        $set['statut'] = '6forum';
        autoriser_exception('modifier', 'auteur', $id_auteur);
        autoriser_exception('instituer', 'auteur', $id_auteur);
        auteur_modifier($id_auteur, $set);
        autoriser_exception('modifier', 'auteur', $id_auteur, false);
        autoriser_exception('instituer', 'auteur', $id_auteur, false);
        // verifier
        $row = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
        if (!$row['login'] or !$row['email']) {
            spip_log("Erreur creation profil {$id_auteur} " . var_export($set, true), "profils" . _LOG_ERREUR);
            return false;
        }
        $row['pass'] = $set['pass'];
        return $row;
    }
    return false;
}
コード例 #2
0
ファイル: filtres.php プロジェクト: loorenzooo/aslfc
function antispam($texte)
{
    include_spip('inc/acces');
    $masque = creer_pass_aleatoire(3);
    return preg_replace("/@/", " {$masque} ", $texte);
}
コード例 #3
0
ファイル: inscrire_auteur.php プロジェクト: genma/spip_ynh
/**
 * Creer un mot de passe initial aleatoire
 * 
 * http://doc.spip.org/@creer_pass_pour_auteur
 *
 * @param int $id_auteur
 * @return string
 */
function creer_pass_pour_auteur($id_auteur)
{
    include_spip('inc/acces');
    $pass = creer_pass_aleatoire(8, $id_auteur);
    include_spip('action/editer_auteur');
    auteur_instituer($id_auteur, array('pass' => $pass));
    return $pass;
}
コード例 #4
0
function signature_test_pass()
{
    include_spip('inc/acces');
    do {
        $passw = creer_pass_aleatoire();
    } while (sql_countsel('spip_signatures', "statut='{$passw}'") > 0);
    return $passw;
}
コード例 #5
0
ファイル: acces.php プロジェクト: rhertzog/lcs
function initialiser_sel() {
	global $htsalt;
	if (CRYPT_MD5) $htsalt = '$1$'.creer_pass_aleatoire();
	else return "";
}
コード例 #6
0
function spiplistes_formulaire_abonnement (
											$type
											, $acces_membres
											, $formulaire
											, $nom_site_spip
											, $inscription_redacteur
											, $inscription_visiteur
											) {
	
	$mail_inscription_ = trim(strtolower(_request('mail_inscription_')));
	$nom_inscription_ = trim(_request('nom_inscription_'));
	$type_abo = _request('suppl_abo') ;
	$listes_demande = _request('list');
	$desabo = ($type_abo == 'non') ? 'oui' : 'non';
	
	$adresse_site = $GLOBALS['meta']['adresse_site'];

	$reponse_formulaire = '';
	$email_a_envoyer = $mode_modifier = $sql_where = false;
	$abonne = array();
	
	// traiter d'abord si retour de mail lien cookie
	$d = _request('d');
	if(!empty($d)) {
		$sql_where = array(
				'cookie_oubli='.sql_quote($d)
				, 'statut<>'.sql_quote('5poubelle')
				, 'pass<>'.sql_quote('')
			);
	}
	// ou si identifie'
	else if($connect_id_auteur = intval($GLOBALS['auteur_session']['id_auteur']))
	{
		$sql_where = array("id_auteur=$connect_id_auteur");
	}
	if($sql_where) {
		// cherche les coordonnees de l'abonne'
		$sql_select = 'id_auteur,statut,nom,email,cookie_oubli';
		$sql_result = sql_select(
			$sql_select
			, 'spip_auteurs'
			, $sql_where
			, '', '', 1
		);
		if($row = sql_fetch($sql_result)) {
			foreach(explode(',', $sql_select) as $key) {
				$abonne[$key] = $row[$key];
			}
		}
		$abonne['format'] = spiplistes_format_abo_demande($abonne['id_auteur']);
		
	}
	
	// si identifie' par cookie ou login... effectuer les modifications demandees
	if(count($abonne)) {
		
		
		// toujours rester en mode modif pour permettre la correction
		$mode_modifier = 'oui';
		
		if($desabo == 'oui')
		{
			spiplistes_format_abo_modifier($abonne['id_auteur']);
			$reponse_formulaire = _T('spiplistes:vous_etes_desabonne');
			$email_a_envoyer = true;
		}
		
		else if($listes_demande)
		{
			//spiplistes_debug_log("demande modification abonnements listes " . implode(",", $listes_demande));
			
			if(is_array($listes_demande) && count($listes_demande))
			{
				$listes_ajoutees = spiplistes_abonnements_ajouter($abonne['id_auteur']
															, array_map('intval', $listes_demande)
															);
				$curr_abos_auteur = spiplistes_abonnements_listes_auteur($abonne['id_auteur']);
				
				foreach($curr_abos_auteur as $id_liste) {
					if(!in_array($id_liste, $listes_demande)) {
						spiplistes_abonnements_auteur_desabonner($abonne['id_auteur']
																 , $id_liste
																 );
					}
				}
			}
			
			// modifier le format de reception ?
			if(spiplistes_format_valide($type_abo) && ($type_abo != $abonne['format']))
			{
				spiplistes_format_abo_modifier($abonne['id_auteur'], $abonne['format'] = $type_abo);
				//$abonne['ids_abos'] = spiplistes_abonnements_listes_auteur($abonne['id_auteur']);
				
			}
			
			$reponse_formulaire = _T('spiplistes:demande_enregistree_retour_mail');
			$email_a_envoyer = true;
		}
		else
		{
			//spiplistes_debug_log('pas de demande, afficher formulaire de modif au complet');
			$reponse_formulaire = ''
				. '<span class="nom">' . $abonne['nom'] . "</span>\n"
				. '<span class="souhait">' . _T('spiplistes:effectuez_modif_validez', array('s'=>$abonne['nom'])). "</span>\n"
				;
		}
		
		$id_abonne = $abonne['id_auteur'];
		$objet_email = _T('spiplistes:votre_abo_listes');
		$contexte = array('titre' => $objet_email);
		
	}
	else // non identifie' ? gestion par cookie_oubli.
	{
		$texte_intro = _T('form_forum_message_auto') . '<br /><br />'._T('spiplistes:bonjour') . "<br />\n";
		
		$abonne = array('email' => email_valide($mail_inscription_));
		
		if($abonne['email'])
		{
			// si l'abonne existe deja mais pas d'action demandee,
			// affiche formulaire complet
			//if($row = sql_fetch(
			if ($row = 
				spiplistes_auteurs_auteur_select ('id_auteur,login,nom,statut,lang', 'email='.sql_quote($abonne['email']))
				
			) {
				
				$abonne['id_auteur'] = intval($row['id_auteur']);
				$abonne['statut'] = $row['statut'];
				$abonne['login'] = $row['login'];
				$abonne['nom'] = $row['nom'];
				$abonne['lang'] = $row['lang'];
				$abonne['format'] =
					($f = spiplistes_format_abo_demande($abonne['id_auteur']))
					? $f
					: 'texte'
					;
	
				if($abonne['statut'] == '5poubelle')
				{
					$reponse_formulaire = _T('form_forum_access_refuse');
				}
				// si encore nouveau, c'est qu'il ne s'est jamais identifie'
				else if($abonne['statut'] == 'nouveau')
				{
					// le supprimer. Il sera re-cree plus loin
					spiplistes_auteurs_auteur_delete('id_auteur='.sql_quote($abonne['id_auteur']));
					$abonne['id_auteur'] = false;
				}
				else {
					// demande de modifier l'abonnement ? envoie le cookie de relance par mail
					spiplistes_auteurs_cookie_oubli_updateq($abonne['cookie_oubli'] = creer_uniqid(), $abonne['email']);
					
					$objet_email = _T('spiplistes:abonnement_titre_mail');
					$texte_email = spiplistes_texte_inventaire_abos($abonne['id_auteur'], $type_abo, $nom_site_spip);
					
					
					$contexte = array('titre' => $objet_email);
					$id_abonne = $abonne['id_auteur'];
				}
				
			}
			// l'adresse mail n'existe pas dans la base.
			else 
			{
				
				$abonne['login'] = spiplistes_login_from_email($abonne['email']);
				$abonne['nom'] =
					(($acces_membres == 'non') || empty($nom_inscription_))
					? ucfirst($abonne['login'])
					: $nom_inscription_
					;
				
				// ajouter l'abonne
				$pass = creer_pass_aleatoire(8, $abonne['email']);
				$abonne['zepass'] = $pass;
				$abonne['mdpass'] = md5($pass);
				$abonne['htpass'] = generer_htpass($pass);
				
				$abonne['cookie_oubli'] = creer_uniqid();
				
				$abonne['statut'] = ($inscription_redacteur == 'oui') ? 'nouveau' : '6forum';
	
				// format d'envoi par defaut pour le premier envoi de confirmation
				$abonne['format'] = 'texte'; 
				
				// creation du compte ...
				if($id_abonne = spiplistes_auteurs_auteur_insertq(
						array(
							'nom' => $abonne['nom']
							, 'email' => $abonne['email']
							, 'login' => $abonne['login']
							, 'pass' => $abonne['mdpass']
							, 'statut' => $abonne['statut']
							, 'htpass' => $abonne['htpass']
							, 'cookie_oubli' => $abonne['cookie_oubli']
							)
					)) {
					// creation .htpasswd & LDAP si besoin systeme
					ecrire_acces();
					
					// premier format de reception par defaut
					spiplistes_format_abo_modifier($id_abonne, $abonne['format']);
				}

				$objet_email = _T('spiplistes:confirmation_inscription');
				
				$contexte = array(
								'titre' => $objet_email
								, 'nouvel_inscription' => 'oui'
								, 'inscription_redacteur' => $inscription_redacteur
								, 'inscription_visiteur' => $inscription_visiteur
							);
			}
			
			$email_a_envoyer = true;
			
		}
		else if(!empty($mail_inscription_)) {
			//Non email o non valida
			return(array(true, _T('spiplistes:erreur_adresse'), $mode_modifier, false));
		}
	}
	if($id_abonne && $email_a_envoyer) {
		
		$abonne['ids_abos'] = spiplistes_abonnements_listes_auteur($abonne['id_auteur']);

		$abonne['format'] = spiplistes_format_valide($abonne['format']);
		
		$email_a_envoyer = spiplistes_preparer_message(
					($objet_email = "[$nom_site_spip] " . $objet_email)
					, spiplistes_patron_message()
					, array_merge($contexte, $abonne)
					);
		if(
			spiplistes_envoyer_mail(
				$abonne['email']
				, $objet_email
				, $email_a_envoyer
				, false
				, ''
				, $abonne['format']
			)
		) {
			$reponse_formulaire =
				($acces_membres == 'oui')
				? _T('form_forum_identifiant_mail')
				: _T('spiplistes:demande_enregistree_retour_mail')
				;
		}
		else {
			$reponse_formulaire = _T('form_forum_probleme_mail');
		}
	} 

	return(array(true, $reponse_formulaire, $mode_modifier, $abonne));
} // end spiplistes_formulaire_abonnement()
コード例 #7
0
ファイル: instituerauteur.php プロジェクト: rougerose/caap
/**
 * Notifier lors du changement de statut d'un auteur
 *
 * Basée sur :
 * http://doc.spip.org/@notifications_instituerarticle_dist
 *
 * @param string $quoi
 * @param int $id_auteur
 * @param array $options
 */
function notifications_instituerauteur($quoi, $id_auteur, $options)
{
    // ne devrait jamais se produire
    if ($options['statut'] == $options['statut_ancien']) {
        spip_log("statut auteur inchange", 'notifications');
        return;
    }
    include_spip('inc/texte');
    include_spip('inscription3_mes_fonctions');
    $modele = "";
    /**
     * Si l'ancien statut est 8aconfirmer
     * - on notifie la validation s'il n'est pas mis à la poubelle
     * - on notifie l'invalidation s'il est mis à la poubelle
     *
     * S'il est validé, on lui recrée un pass que l'on met dans le mail avec son login
     */
    if ($options['statut_ancien'] == '8aconfirmer') {
        //spip_log("instituerauteur_caap niv 1",'notifications',_LOG_ERREUR);
        if ($options['statut'] == '5poubelle') {
            $modele = "notifications/auteur_invalide";
            $modele_admin = "notifications/auteur_invalide_admin";
        } else {
            /**
             * Dans le cas d'une validation, on envoit le pass
             * On fait tout en php pour ne pas avoir de traces du pass dans les logs
             * On regénère le mot de passe également
             */
            /*   surcharges caap :
             *    - adresse_site est celle de la rubrique espace Adhérents
             *    - le texte du mail est modifié
             */
            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
            //$adresse_site = $GLOBALS['meta']["adresse_site"];
            include_spip('inc/filtres');
            $adresse_site = url_absolue(generer_url_public('rubrique', 'id_rubrique=12'));
            $nom_site_spip = nettoyer_titre_email($GLOBALS['meta']["nom_site"]);
            $user = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
            include_spip('inc/acces');
            $pass = creer_pass_aleatoire(8, $id_auteur);
            include_spip('action/editer_auteur');
            instituer_auteur($id_auteur, array('pass' => $pass));
            $texte = "[{$nom_site_spip}] " . _T('form_forum_identifiants') . "\n\n" . _T('form_forum_message_auto') . "\n\n" . _T('form_forum_bonjour', array('nom' => $user['nom'])) . "\n\n" . _T('caap:form_forum_voici1', array('nom_site_spip' => $nom_site_spip, 'adresse_site' => $adresse_site . '/', 'adresse_login' => generer_url_public('login'))) . "\n\n- " . _T('form_forum_login') . " " . $user['login'] . "\n- " . _T('form_forum_pass') . " " . $pass . "\n\n";
            $modele_admin = "notifications/auteur_valide_admin";
        }
    }
    if ($modele or $texte) {
        $options['type'] = 'user';
        $destinataires = array();
        $destinataires = pipeline('notifications_destinataires', array('args' => array('quoi' => $quoi, 'id' => $id_auteur, 'options' => $options), 'data' => $destinataires));
        if ($modele) {
            $texte = email_notification_objet($id_auteur, "auteur", $modele);
        }
        notifications_envoyer_mails($destinataires, $texte);
    }
    if ($modele_admin) {
        $options['type'] = 'admin';
        $destinataires = array();
        $destinataires = pipeline('notifications_destinataires', array('args' => array('quoi' => $quoi, 'id' => $id_auteur, 'options' => $options), 'data' => $destinataires));
        $texte = email_notification_objet($id_auteur, "auteur", $modele_admin);
        notifications_envoyer_mails($destinataires, $texte);
    }
}
コード例 #8
0
ファイル: inc_filters.php プロジェクト: nyimbi/legalcase
function antispam($texte)
{
    include_ecrire("inc_acces.php3");
    $masque = creer_pass_aleatoire(3);
    return preg_replace("/@/", " {$masque} ", $texte);
}
コード例 #9
0
ファイル: acces.php プロジェクト: xablen/Semaine14_SPIP_test
/**
 * Initialiser la globale htsalt si cela n'a pas déjà été fait.
 *
 * @return void|bool
 */
function initialiser_sel()
{
    if (CRYPT_MD5) {
        $GLOBALS['htsalt'] = '$1$' . creer_pass_aleatoire();
    } else {
        return "";
    }
}
コード例 #10
0
ファイル: spiplistes_import.php プロジェクト: rhertzog/lcs
function spiplistes_import(
	$filename
	, $realname
	, $abos_liste
	, $format_abo = 'non'
	, $separateur = "\t"
	, $flag_admin
	, $listes_autorisees
	, $forcer_abo = false
) {
	$result_affiche = '';
	
	if(is_readable($filename))
	{
		// abonner les adresses importees
		// aux listes...
		if(!is_array($abos_liste))
		{
			if(($ii = intval($abos_liste)) <= 0)
			{
				return(false);
			}
			$abos_liste = array($ii);
		}
		else
		{
			$abos_liste = array_map('intval', $abos_liste);
		}
		
		// recupere les logins et mails existants dans la base
		// pour eviter les doublons
		
		$current_entries = array();
		$sql_result = sql_select(array('id_auteur', 'login', 'email', 'nom'), 'spip_auteurs');
		
		while($row = spip_fetch_array($sql_result))
		{
			// ne prendre que les comptes qui ont un email
			if($m = $row['email']) {
				$m = strtolower($m);
				$current_entries[$m] = array('login' => strtolower($row['login'])
										   , 'id_auteur' => $row['id_auteur']
										   , 'nom' => $row['nom']
										   );
			}
		}
		//syslog(LOG_NOTICE, 'memory_get_usage[2]: ' . memory_get_usage());
		
		//
		spiplistes_log('import fichier '.$filename);
		$new_entries = file($filename);
		
		//syslog(LOG_NOTICE, 'memory_get_usage[3]: ' . memory_get_usage());
		
		$nb_new_entries = count($new_entries);
		
		$bad_dupli = $bad_email = 0;
		$statuts_auteurs = array('6forum', '1comite', '0minirezo');
		
		// charger la table des abonnements en ram afin d'eviter les petites requettes
		$abonnements = array();
		if(($sql_result = sql_select('id_auteur,id_liste'
									, 'spip_auteurs_listes')
			) !== false)
		{
			while($row = sql_fetch($sql_result)) {
				if(!isset($abonnements[$row['id_liste']])) {
					$abonnements[$row['id_liste']] = array();
				}
				$abonnements[$row['id_liste']][] = $row['id_auteur'];
			}
		}
		else {
			spiplistes_sqlerror_log('module import (abonnements)');
		}
		
		if($forcer_abo)
		{
			$auteurs_format = array();
			// charger la table des formats afin d'eviter les petites requettes
			if(($sql_result = sql_select("id_auteur,`spip_listes_format` AS format"
										, 'spip_auteurs_elargis')) !== false)
			{
				while($row = sql_fetch($sql_result)) {
					$auteurs_format[$row['id_auteur']] = $row['format'];
				}
			}
			else
			{
				spiplistes_sqlerror_log("module import (format)");
			}
		}
		
		// les formats
		$modifier_format = array();
		
		$err_import = _T('spiplistes:erreur_import_base');
		
		//syslog(LOG_NOTICE, 'memory_get_usage[2]: ' . memory_get_usage());
		//syslog(LOG_NOTICE, 'memory_get_peak_usage[2]: ' . memory_get_peak_usage());
		
		$start_time = microtime(1);
		
		$stack_new_auteurs = array();
		
		// statut temporaire
		$tmp_statut = '6abo'.date('YmdGis');
		
		for($jj = 0; $jj < $nb_new_entries; $jj++)
		{
			$nouvelle_entree = trim($new_entries[$jj]);
			
			if(!empty($nouvelle_entree)
			   // ni une ligne de commentaire
			   && !ereg("^[/#]", $nouvelle_entree))
			{
				list($email, $login, $nom) = explode($separateur, $nouvelle_entree);
				
				$email = strtolower(trim($email));
				
				$mail_exist = false;
				
				if(($email = email_valide($email))
				   &&	(
						!($mail_exist = array_key_exists($email, $current_entries))
						|| $forcer_abo
						)
				)
				{
					if(!$mail_exist)
					{
						// si le compte n'existe pas, le creer
						
						// commencer par calculer le login
						$login = trim($login);
						if(empty($login))
						{
							$login = spiplistes_login_from_email($email);
						}
						else
						{
							$login = strtolower($login);
						}
						// puis le nom
						$nom = trim($nom);
						if(empty($nom))
						{
							$nom = ucfirst($login);
						}
						
						// ajoute l'invite' dans la table des auteurs
						$pass = creer_pass_aleatoire(8, $email);
					
						// nouvel abo dans la pile des "a creer"
						$stack_new_auteurs[] = array(
							'nom' => $nom
							, 'email' => $email
							, 'login' => $login
							, 'pass' => md5($pass)
							, 'statut' => $tmp_statut
							, 'htpass' => generer_htpass($pass)
						);
					} // end if(!$mail_exist)
					
					// adresse mail existe dans la base
					// si on passe par ici, c'est sous-entendu $forcer_abo (abonne' un compte existant)
					else
					{
						$id_auteur = intval($current_entries[$email]['id_auteur']);
						
						// forcer le format dans la foulee
						if(!isset($auteurs_format[$id_auteur]))
						{
							$modifier_format[] = '(' . sql_quote($id_auteur) . ',' . sql_quote($format_abo) . ')';
						}
					}
					// est-ce vraiment utile (voir plus bas)
				}
				else
				{
					if($mail_exist) {
						$bad_dupli++;
						spiplistes_log('import dupli: '.$mail);
					}
					else {
						$bad_email++;
						spiplistes_log('import bad: '.$mail);
					}
				}
			}
		} // end for($jj = 0; $jj < $nb_new_entries; $jj++)
				
		// importer les nouveaux abonnés
		if(count($stack_new_auteurs))
		{
			$sql_col_names = '('.implode(',', array_keys($stack_new_auteurs[0])).')';
			$sql_col_values = '';
			
			//syslog(LOG_NOTICE, 'memory_get_usage[5]: ' . memory_get_usage());
			
			foreach($stack_new_auteurs as $auteur)
			{
				$values = array_map('sql_quote', $auteur);
				$sql_col_values .= '('.implode(',', $values).'),';
			}
			$sql_col_values = rtrim($sql_col_values,',');
			
			$r = sql_insert('spip_auteurs', $sql_col_names, $sql_col_values);
			
			spiplistes_debug_log ('size of imported values: ' . strlen($sql_col_values));
			
			//syslog(LOG_NOTICE, 'memory_get_usage[6]: ' . memory_get_usage());
			
			// nouveaux abonnements
			foreach($abos_liste as $id_liste)
			{
				// un INSERT sans VALUES
				// @todo: vérifier compatibilite sqlite et pg
				if(sql_query(
					'INSERT INTO spip_auteurs_listes
								(id_auteur,id_liste) SELECT a.id_auteur,'.$id_liste
									.' FROM spip_auteurs AS a WHERE a.statut='.sql_quote($tmp_statut))
				   === false
				)
				{
					spiplistes_sqlerror_log('import nouveaux abos dans spip_auteurs_listes');
				}
			}
			
			// format pour les nouveaux auteurs
				// un INSERT sans VALUES
				// @todo: vérifier compatibilite sqlite et pg
			if(sql_query(
				'INSERT INTO spip_auteurs_elargis
						(id_auteur,`spip_listes_format`) SELECT a.id_auteur,'.sql_quote($format_abo)
								.' FROM spip_auteurs AS a WHERE a.statut='.sql_quote($tmp_statut))
			   === false
			)
			{
				spiplistes_sqlerror_log('import nouveauxformats dans spip_auteurs_elargis');
			}
		
		}
		
		// Comptes deja existants, inclus dans le fichier import
		// - changer son format de réception ?
		// - l'ajouter aux listes sélectionnées ?
		// - ou ignorer ?
		if(count($modifier_format))
		{
			// pour l'instant: ignorer !
			// 
		}
		
		// redonner le bon statut visiteur aux nouveaux
		sql_update(array('spip_auteurs'), array('statut' => sql_quote('6forum')), array('statut='.sql_quote($tmp_statut)));

		// fin des req

		$result_affiche .=
			($tt = ($ii = count($stack_new_auteurs)) + ($jj = count($modifier_format)))
			?	'<ul>'.PHP_EOL
				. '<li class="verdana2">'._T('spiplistes:nb_comptes_importees_en_ms_dont_'
										 , array('nb' => $tt, 'ms' => (microtime(1) - $start_time)))
				. '<ul>'.PHP_EOL
					. '<li>'._T('spiplistes:nb_fiches_crees', array('nb' => $ii)).'</li>'.PHP_EOL
					//. '<li>'._T('spiplistes:nb_comptes_modifies', array('nb' => $jj)).'</li>'.PHP_EOL
					. '<li>'._T('spiplistes:nb_comptes_ignores', array('nb' => $jj)).'</li>'.PHP_EOL
				. '</ul>'.PHP_EOL
				. '</li>'.PHP_EOL
				. '</ul>'.PHP_EOL
			: '<br />'._T('spiplistes:pas_dimport').PHP_EOL
			;

		
		if($bad_dupli) {
			$result_affiche .= '<br />'._T('pass_erreur').' email: '._T('spiplistes:n_duplicata_mail', array('n' => $bad_dupli)).PHP_EOL;
		}
		if($bad_email) {
			$result_affiche .= '<br />'._T('pass_erreur').' email: '._T('spiplistes:n_incorrect_mail', array('n' => $bad_email)).PHP_EOL;
		}
		$result_affiche = _T('spiplistes:fichier_') . ' : <strong>'.$realname.'</strong><br />'.PHP_EOL
			. _T('spiplistes:' . ((count($abos_liste) > 1) ? 'Listes_de_destination_s' : 'Liste_de_destination_s')
				 , array('s' => '#' . implode(',#', $abos_liste))) .'<br />'.PHP_EOL
			. $result_affiche
			;
	}
	return($result_affiche);
}