protection des formulaires abomailman avec nospam
This commit is contained in:
parent
29feeac623
commit
3456b47d8c
@ -23,3 +23,7 @@ $GLOBALS['z_blocs'] = array(
|
|||||||
define('_CONTENT_WIDTH', 990);
|
define('_CONTENT_WIDTH', 990);
|
||||||
define('_IMAGE_RATIO', '1:1');
|
define('_IMAGE_RATIO', '1:1');
|
||||||
|
|
||||||
|
// obfusquer les nam des formulaires avec nospam https://contrib.spip.net/NoSPAM#Obfusquer-les-name-du-formulaire
|
||||||
|
define('_SPAM_ENCRYPT_NAME', true);
|
||||||
|
// proteger les formulaires abomailman
|
||||||
|
$GLOBALS['formulaires_no_spam'][] = 'abomailman,abomailman_mini_une_liste';
|
||||||
|
25
formulaires/abomailman_mini_une_liste.html
Normal file
25
formulaires/abomailman_mini_une_liste.html
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#CACHE{0}
|
||||||
|
<div class="formulaire_spip formulaire_#FORM" id="formulaire_#FORM[_(#ENV{id_abomailman})]">
|
||||||
|
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||||
|
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||||
|
|
||||||
|
[(#ENV*{editable}|oui)
|
||||||
|
<form method='post' action='#ENV{action}'>
|
||||||
|
<div class="abonnement">
|
||||||
|
#ACTION_FORMULAIRE{#ENV{action}}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{la_demo}}
|
||||||
|
<div class="editer_email obligatoire[ (#GET{erreurs}|oui)erreur]">
|
||||||
|
[<span class='erreur_message'>(#GET{erreurs})</span>]
|
||||||
|
<input name="email" id="email" type="text" placeholder="<:baz_april:votre_courriel:>" />
|
||||||
|
</div>
|
||||||
|
[(#REM) Piege a robots spammeurs, du moins on essaie]
|
||||||
|
<p class="visuallyhidden">
|
||||||
|
<label for="nobot_abomailman"><:antispam_champ_vide:></label>
|
||||||
|
<input type="text" class="text" name="nobot" id="nobot_abomailman" value="#ENV{nobot}" size="10" />
|
||||||
|
</p>
|
||||||
|
<p class="boutons"><input type="submit" class="submit" value="<:bouton_valider:>" /></p>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
]
|
||||||
|
</div>
|
94
formulaires/abomailman_mini_une_liste.php
Normal file
94
formulaires/abomailman_mini_une_liste.php
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||||
|
|
||||||
|
include_spip('base/abstract_sql');
|
||||||
|
|
||||||
|
// chargement des valeurs par defaut des champs du formulaire
|
||||||
|
function formulaires_abomailman_mini_une_liste_charger_dist($id_abomailman = ""){
|
||||||
|
|
||||||
|
//initialise les variables d'environnement pas defaut
|
||||||
|
$valeurs = array('email');
|
||||||
|
|
||||||
|
// On verifie que la liste est bien accessible
|
||||||
|
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");
|
||||||
|
$valeurs['message_erreur'] = _T("abomailmans:liste_non_existante");
|
||||||
|
}
|
||||||
|
return $valeurs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function formulaires_abomailman_mini_une_liste_verifier_dist($id_abomailman = ""){
|
||||||
|
|
||||||
|
//initialise le tableau des erreurs
|
||||||
|
$erreurs = array();
|
||||||
|
|
||||||
|
// Faire une fonction de verif sur le mail pour validite
|
||||||
|
$email = _request('email');
|
||||||
|
|
||||||
|
if($email == ''){
|
||||||
|
$erreurs['erreur_email'] = _T("abomailmans:email_oublie");
|
||||||
|
spip_log("Aucun email n'est insere","abomailmans");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
include_spip('inc/filtres'); # pour email_valide()
|
||||||
|
if (!email_valide($email)){
|
||||||
|
$erreurs['erreur_email'] = _T("abomailmans:email_valide");
|
||||||
|
spip_log("Email non valide $email","abomailmans");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
spip_log("Email = $email;","abomailmans");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//message d'erreur
|
||||||
|
if (count($erreurs)) {
|
||||||
|
$erreurs['message_erreur'] .= _T('abomailmans:verifier_formulaire');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $erreurs; // si c'est vide, traiter sera appele, sinon le formulaire sera resoumis
|
||||||
|
}
|
||||||
|
|
||||||
|
function formulaires_abomailman_mini_une_liste_traiter_dist($id_abomailman = ""){
|
||||||
|
include_spip('inc/abomailmans');
|
||||||
|
|
||||||
|
$nom = _request('nom');
|
||||||
|
$email = _request('email');
|
||||||
|
|
||||||
|
// Antispam basique :
|
||||||
|
// si l'input invisible a ete renseigne, ca ne peut etre qu'un bot
|
||||||
|
if (strlen(_request('nobot'))){
|
||||||
|
return array('message_erreur'=>_T('abomailmans:erreur_nobot'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = null;
|
||||||
|
|
||||||
|
// on initialise l'envoi
|
||||||
|
// on traite chaque liste via une fonction reutilisable ailleurs
|
||||||
|
// on passe abonnement a true d'office
|
||||||
|
$traiter=abomailman_traiter_abonnement($id_abomailman,true);
|
||||||
|
$titre = $traiter[0];
|
||||||
|
$proprio_email=$traiter[1];
|
||||||
|
$liste_email=$traiter[2];
|
||||||
|
$sujet=$traiter[3];
|
||||||
|
$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>";
|
||||||
|
}else{
|
||||||
|
$message_listes .= "<p><strong>". _T('pass_erreur_probleme_technique')."</strong></p>";
|
||||||
|
$probleme=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$message .= $body."". _T("abomailmans:message_confirmation_unique_a");
|
||||||
|
$message .= $message_listes;
|
||||||
|
$message .= "<p>" . _T("abomailmans:message_confirm_suite") . "</p>";
|
||||||
|
|
||||||
|
if ($probleme==false)
|
||||||
|
return $message;
|
||||||
|
else
|
||||||
|
return $message_listes;
|
||||||
|
}
|
||||||
|
?>
|
@ -1,7 +1,7 @@
|
|||||||
<paquet
|
<paquet
|
||||||
prefix="baz_april"
|
prefix="baz_april"
|
||||||
categorie="squelette"
|
categorie="squelette"
|
||||||
version="2.4.2"
|
version="2.4.3"
|
||||||
schema="1.0.0"
|
schema="1.0.0"
|
||||||
etat="stable"
|
etat="stable"
|
||||||
compatibilite="[3.2.0;3.3.*]"
|
compatibilite="[3.2.0;3.3.*]"
|
||||||
@ -43,6 +43,7 @@
|
|||||||
<necessite nom="abomailmans"/>
|
<necessite nom="abomailmans"/>
|
||||||
<necessite nom="fulltext"/>
|
<necessite nom="fulltext"/>
|
||||||
<necessite nom="formidable"/>
|
<necessite nom="formidable"/>
|
||||||
|
<necessite nom="nospam"/>
|
||||||
|
|
||||||
<pipeline nom="autoriser" inclure="baz_april_autorisations.php"/>
|
<pipeline nom="autoriser" inclure="baz_april_autorisations.php"/>
|
||||||
<pipeline nom="pre_typo" inclure="baz_april_pipelines.php"/>
|
<pipeline nom="pre_typo" inclure="baz_april_pipelines.php"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user