log based static contact form
1.0.0
這是用於自架靜態網站的概念驗證輕量級聯絡表單。
Knowbl Cluster 的規範來源託管在 https://git.knowbl.co/dev/log-based-contact-form/ 上。
mail
。 /submit/
)必須是空資料夾,否則所有對 /submit/ 的合法查詢都會被重新導向。在 nginx 伺服器的 http 區塊中,在區塊底部附近(但在第一個伺服器區塊之前)插入特定配置的日誌格式。建議少一點。
log_format contactstatic ' $time_local | $request ' ;
請參閱nginx-exmaple.conf
放置位置。
在 nginx 伺服器的伺服器區塊中,在表單中插入操作的位置(在本例中為/submit/
)。
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/;
}
這將使訪客返回到根目錄。根據您的具體需求量身定制。
請參閱nginx-exmaple.conf
放置位置。
在您的網站上新增表格。根據需要設計風格。
< 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 >
根據需要添加任意數量的<input>
。
GET 作為方法是必要的,因為需要在日誌中進行解析。
有多種方法可以監控傳入的表單貼文。
直接查看即時日誌檔案。
tail -f /home/example/logs/access.log
將請求傳送到電子郵件地址。
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
注意:根據填寫表單的人(壞人?),您可能想要發送有新的聯絡表單資訊的警報,而不是在電子郵件正文中發送整個日誌。
chmod +x log-based-static-contact-form-emailer.sh
crontab -e
加到 crontab 的底部
0 9-17 * * 1-5 /var/log/log-based-form.sh
這個 cron 是為每個小時設定的,從週一到週五,上午 9 點到下午 5 點。請隨意設定為更適合您自己的設定的內容。
任何直接反饋都可以在此處的 HackerNews 帖子中給出
https://news.ycombinator.com/item?id=13358753
或提出問題
https://github.com/knowbl/log-based-static-contact-form/issues
如果這對您有用,請捐贈給 EFF。我不在那裡工作,但他們在這個行業做得非常出色
https://eff.org/donate/