Il s'agit d'un formulaire de contact léger de validation de principe pour les sites statiques auto-hébergés.
La source canonique de Knowbl Cluster est hébergée sur https://git.knowbl.co/dev/log-based-contact-form/.
mail
pour Debian/Ubuntu. /submit/
dans cet exemple) doit être un dossier vide, sinon toutes les requêtes légitimes vers /submit/ seront redirigées.Dans le bloc http de votre serveur nginx, insérez le format de journal de votre configuration spécifique vers le bas du bloc, mais avant les premiers blocs du serveur. Moins est recommandé.
log_format contactstatic ' $time_local | $request ' ;
Voir l'emplacement de placement nginx-exmaple.conf
.
Dans le bloc serveur de votre serveur nginx, insérez l'emplacement de votre action ( /submit/
dans ce cas) au sein du formulaire.
location ~* /submit/(.*)$ {
access_log /home/example/logs/static-contact-access.log contactstatic;
error_log /home/example/logs/static-contact-error.log;
return https://example.com/;
}
Cela ramènera le visiteur au répertoire racine. Adaptez-vous à vos besoins spécifiques.
Voir l'emplacement de placement nginx-exmaple.conf
.
Ajoutez le formulaire sur votre site. Coiffez selon vos besoins.
< form action =" /submit/ " method =" GET " >
< label for =" name " > Name: </ label >
< input type =" text " name =" name " required =" yes " placeholder =" What can I call you? " >
< label for =" email " > Email: </ label >
< input type =" email " name =" email " required =" yes " placeholder =" [email protected] " >
< label for =" message " > Short message: </ label >
< textarea type =" message " name =" message " required =" yes " placeholder =" What do you want to say (in 140 characters)? " maxlength =" 140 " > </ textarea >
< input type =" submit " value =" Send a message " >
</ form >
Ajoutez autant de <input>
que nécessaire.
GET car la méthode est requise, car elle est nécessaire pour l'analyse dans les journaux.
Il existe plusieurs façons de surveiller vos publications de formulaire entrantes.
Vue directe du fichier journal en direct.
tail -f /home/example/logs/access.log
Envoyez les demandes à une adresse e-mail.
cd /home/example/
nano log-based-static-contact-form-emailer.sh
#! /bin/bash
EMAIL= " [email protected] "
EMAILSUBJECT= " Contact form "
LOG= " /home/example/logs/static-contact-access.log "
CRON= " /home/example/logs/example-cron.log "
# ## DO NOT EDIT BELOW ###
NOW= $( date + " Form sent to $EMAIL -- %Y-%m-%d %H:%M:%S -- " ) ;
if [ ! -f $LOG ] ;
then
printf " . " >> $CRON
else
mail -s " $EMAILSUBJECT " $EMAIL < $LOG ;
printf " n n $NOW n n " >> $CRON
fi
Remarque : selon la personne qui remplit votre formulaire (les méchants ?), vous souhaiterez peut-être envoyer une alerte indiquant qu'il existe de nouvelles informations dans le formulaire de contact, plutôt que d'envoyer l'intégralité du journal dans le corps d'un e-mail.
chmod +x log-based-static-contact-form-emailer.sh
crontab -e
Ajouter au bas de la crontab
0 9-17 * * 1-5 /var/log/log-based-form.sh
Ce cron est défini toutes les heures, de 9h à 17h, du lundi au vendredi. N'hésitez pas à choisir quelque chose de plus applicable à votre propre configuration.
Tout commentaire direct peut être donné sur le post HackerNews, ici
https://news.ycombinator.com/item?id=13358753
Ou soulever un problème
https://github.com/knowbl/log-based-static-contact-form/issues
Si cela vous est utile, merci de faire un don à l'EFF. Je ne travaille pas là-bas, mais ils font un travail fantastique dans l'industrie
https://eff.org/donate/