on tente une dissuasion de plus face aux spams d'inscription à la liste

This commit is contained in:
chankalan 2023-03-30 13:34:39 +02:00
parent 1018d151ea
commit 444ba6a0ad

View File

@ -1,92 +1,106 @@
<?php <?php
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('base/abstract_sql'); include_spip('base/abstract_sql');
// chargement des valeurs par defaut des champs du formulaire // chargement des valeurs par defaut des champs du formulaire
function formulaires_abomailman_mini_une_liste_charger_dist($id_abomailman = ""){ function formulaires_abomailman_mini_une_liste_charger_dist($id_abomailman = ""){
//initialise les variables d'environnement pas defaut //initialise les variables d'environnement pas defaut
$valeurs = array('email'); $valeurs = array('email');
// On verifie que la liste est bien accessible // On verifie que la liste est bien accessible
if (! sql_getfetsel('id_abomailman','spip_abomailmans','id_abomailman ='.intval($id_abomailman).' AND desactive = 0')) { if (! sql_getfetsel('id_abomailman','spip_abomailmans','id_abomailman ='.intval($id_abomailman).' AND desactive = 0')) {
spip_log("Le numero de liste n'est pas valable : $id_abomailman","abomailmans"); spip_log("Le numero de liste n'est pas valable : $id_abomailman","abomailmans");
$valeurs['message_erreur'] = _T("abomailmans:liste_non_existante"); $valeurs['message_erreur'] = _T("abomailmans:liste_non_existante");
} }
return $valeurs; return $valeurs;
} }
function formulaires_abomailman_mini_une_liste_verifier_dist($id_abomailman = ""){ function formulaires_abomailman_mini_une_liste_verifier_dist($id_abomailman = ""){
//initialise le tableau des erreurs //initialise le tableau des erreurs
$erreurs = array(); $erreurs = array();
// Faire une fonction de verif sur le mail pour validite // Faire une fonction de verif sur le mail pour validite
$email = _request('email'); $email = _request('email');
if($email == ''){ if($email == ''){
$erreurs['erreur_email'] = _T("abomailmans:email_oublie"); $erreurs['erreur_email'] = _T("abomailmans:email_oublie");
spip_log("Aucun email n'est insere","abomailmans"); spip_log("Aucun email n'est insere","abomailmans");
} }
else{ else{
include_spip('inc/filtres'); # pour email_valide() include_spip('inc/filtres'); # pour email_valide()
if (!email_valide($email)){ if (!email_valide($email)){
$erreurs['erreur_email'] = _T("abomailmans:email_valide"); $erreurs['erreur_email'] = _T("abomailmans:email_valide");
spip_log("Email non valide $email","abomailmans"); spip_log("Email non valide $email","abomailmans");
} }
else{ else{
spip_log("Email = $email;","abomailmans"); spip_log("Email = $email;","abomailmans");
} }
} }
//message d'erreur //message d'erreur
if (count($erreurs)) { if (count($erreurs)) {
$erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire'); $erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
} }
return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
} }
function formulaires_abomailman_mini_une_liste_traiter_dist($id_abomailman = ""){ function formulaires_abomailman_mini_une_liste_traiter_dist($id_abomailman = ""){
include_spip('inc/abomailmans'); include_spip('inc/abomailmans');
$nom = _request('nom'); function baz_april_abo() {
$email = _request('email'); $nom = _request('nom');
$email = _request('email');
// Antispam basique :
// si l'input invisible a ete renseigne, ca ne peut etre qu'un bot // Antispam basique :
if (strlen(_request('nobot'))){ // si l'input invisible a ete renseigne, ca ne peut etre qu'un bot
return array('message_erreur'=>_T('abomailmans:erreur_nobot')); if (strlen(_request('nobot'))){
} return array('message_erreur'=>_T('abomailmans:erreur_nobot'));
}
$message = null;
$message = null;
// on initialise l'envoi
// on traite chaque liste via une fonction reutilisable ailleurs // on initialise l'envoi
// on passe abonnement a true d'office // on traite chaque liste via une fonction reutilisable ailleurs
$traiter = abomailman_traiter_abonnement($id_abomailman,true); // on passe abonnement a true d'office
$titre = $traiter[0]; $traiter = abomailman_traiter_abonnement($id_abomailman,true);
$proprio_email = $traiter[1]; $titre = $traiter[0];
$liste_email = $traiter[2]; $proprio_email = $traiter[1];
$sujet = $traiter[3]; $liste_email = $traiter[2];
$body = "$nom - $email ".$traiter[4]; $sujet = $traiter[3];
$headers = $traiter[5]; $body = "$nom - $email ".$traiter[4];
$headers = $traiter[5];
if (abomailman_mail($nom, $email, $proprio_email, $liste_email, $sujet, $body, $headers)){
$message_listes .= "<p><strong>$titre</strong><p>"; if (abomailman_mail($nom, $email, $proprio_email, $liste_email, $sujet, $body, $headers)){
} else { $message_listes .= "<p><strong>$titre</strong><p>";
$message_listes .= "<p><strong>". _T('pass_erreur_probleme_technique')."</strong></p>"; } else {
$probleme=true; $message_listes .= "<p><strong>". _T('pass_erreur_probleme_technique')."</strong></p>";
} $probleme=true;
}
$message .= "<p>" . _T("abomailmans:message_confirm_suite") . "</p>";
$message .= "<p>" . _T("abomailmans:message_confirm_suite") . "</p>";
if ($probleme==false) {
return array('message_ok' => $message); if ($probleme==false) {
} else { return array('message_ok' => $message);
return array('message_erreur' => $message_listes); } else {
} return array('message_erreur' => $message_listes);
} }
}
// conditionner l'action au rechargement de la page
// https://contrib.spip.net/NoSPAM#S-assurer-que-l-internaute-recharge-la-page-avant-de-lancer-l-action
include_spip('inc/nospam');
if (function_exists('nospam_confirm_action_html')) {
$html_confirm = nospam_confirm_action_html("baz_april_abo", "action abomailmans", $args);
$res['message_ok'] .= $html_confirm;
}
else {
// ICI lancer normalement mafonction()
baz_april_abo();
}
}