Compare commits
No commits in common. "72bdab6785a4439ab513d0358ebd668d35909598" and "13608bc09551dfa8e711859ef77c43bfb3446d6c" have entirely different histories.
72bdab6785
...
13608bc095
6 changed files with 13 additions and 50 deletions
|
|
@ -4,7 +4,6 @@ on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- kontaktformular-filter-spam
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
buildAndDeploy:
|
buildAndDeploy:
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,6 @@ const textInputs = document.querySelectorAll('input[type="text"]')
|
||||||
const captcha = document.querySelectorAll('.captcha')
|
const captcha = document.querySelectorAll('.captcha')
|
||||||
const captchaInput = document.querySelectorAll('.captcha-input')
|
const captchaInput = document.querySelectorAll('.captcha-input')
|
||||||
const captchaVerifyButton = document.querySelectorAll('.captcha-verify')
|
const captchaVerifyButton = document.querySelectorAll('.captcha-verify')
|
||||||
|
|
||||||
// Form fields
|
|
||||||
|
|
||||||
const botBadge = document.createElement('div')
|
const botBadge = document.createElement('div')
|
||||||
if (debugEnabled) {
|
if (debugEnabled) {
|
||||||
botBadge.className = 'bot-badge'
|
botBadge.className = 'bot-badge'
|
||||||
|
|
@ -179,7 +176,7 @@ function handleSubmit(e) {
|
||||||
})
|
})
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
submitButton.disabled = true
|
submitButton.disabled = true
|
||||||
submitButton.innerHTML = `
|
submitButton.innerHTML = `
|
||||||
<svg class="svg-spin" fill="#ffffff" width="30px" height="30px" viewBox="0 0 9.6 9.6" id="Flat" xmlns="http://www.w3.org/2000/svg"><path d="M5.1 1.2v1.2a0.3 0.3 0 0 1 -0.6 0V1.2a0.3 0.3 0 0 1 0.6 0m3.3 3.3h-1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0 -0.6m-1.691 1.785a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 1 0 0.424 -0.424ZM4.8 6.9a0.3 0.3 0 0 0 -0.3 0.3v1.2a0.3 0.3 0 0 0 0.6 0v-1.2a0.3 0.3 0 0 0 -0.3 -0.3m-1.909 -0.615L2.042 7.133a0.3 0.3 0 0 0 0.424 0.424l0.849 -0.849a0.3 0.3 0 0 0 -0.424 -0.424M2.7 4.8a0.3 0.3 0 0 0 -0.3 -0.3H1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0.3 -0.3m-0.233 -2.758a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 0 0 0.424 -0.424Z"/></svg>
|
<svg class="svg-spin" fill="#ffffff" width="30px" height="30px" viewBox="0 0 9.6 9.6" id="Flat" xmlns="http://www.w3.org/2000/svg"><path d="M5.1 1.2v1.2a0.3 0.3 0 0 1 -0.6 0V1.2a0.3 0.3 0 0 1 0.6 0m3.3 3.3h-1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0 -0.6m-1.691 1.785a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 1 0 0.424 -0.424ZM4.8 6.9a0.3 0.3 0 0 0 -0.3 0.3v1.2a0.3 0.3 0 0 0 0.6 0v-1.2a0.3 0.3 0 0 0 -0.3 -0.3m-1.909 -0.615L2.042 7.133a0.3 0.3 0 0 0 0.424 0.424l0.849 -0.849a0.3 0.3 0 0 0 -0.424 -0.424M2.7 4.8a0.3 0.3 0 0 0 -0.3 -0.3H1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0.3 -0.3m-0.233 -2.758a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 0 0 0.424 -0.424Z"/></svg>
|
||||||
`
|
`
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
|
||||||
|
|
@ -43,11 +43,6 @@ const captcha = document.querySelectorAll('.captcha')
|
||||||
const captchaInput = document.querySelectorAll('.captcha-input')
|
const captchaInput = document.querySelectorAll('.captcha-input')
|
||||||
const captchaVerifyButton = document.querySelectorAll('.captcha-verify')
|
const captchaVerifyButton = document.querySelectorAll('.captcha-verify')
|
||||||
const botBadge = document.createElement('div')
|
const botBadge = document.createElement('div')
|
||||||
|
|
||||||
// Form fields
|
|
||||||
const subjectField = document.getElementById('subject')
|
|
||||||
const messageField = document.getElementById('description')
|
|
||||||
|
|
||||||
if (debugEnabled) {
|
if (debugEnabled) {
|
||||||
botBadge.className = 'bot-badge'
|
botBadge.className = 'bot-badge'
|
||||||
document.body.appendChild(botBadge)
|
document.body.appendChild(botBadge)
|
||||||
|
|
@ -107,9 +102,6 @@ function handleMouseMove(event) {
|
||||||
function checkForBotBehavior() {
|
function checkForBotBehavior() {
|
||||||
let timeSpent = (Date.now() - startTime) / 1000
|
let timeSpent = (Date.now() - startTime) / 1000
|
||||||
botDetected =
|
botDetected =
|
||||||
subjectField.value === 'I promised.' ||
|
|
||||||
// or if messageField Has string "Hi, this is" in it
|
|
||||||
messageField.value.startsWith('Hi, this is') ||
|
|
||||||
!userInteracted ||
|
!userInteracted ||
|
||||||
interactionCount === 0 ||
|
interactionCount === 0 ||
|
||||||
honeypotInput1.value !== '' ||
|
honeypotInput1.value !== '' ||
|
||||||
|
|
@ -139,33 +131,9 @@ function checkForBotBehavior() {
|
||||||
' honeypotInput2:' +
|
' honeypotInput2:' +
|
||||||
honeypotInput2.value +
|
honeypotInput2.value +
|
||||||
' verifyEmailInput:' +
|
' verifyEmailInput:' +
|
||||||
verifyEmailInput.value +
|
verifyEmailInput.value
|
||||||
' subjectField:' +
|
|
||||||
subjectField.value +
|
|
||||||
' messageField:' +
|
|
||||||
messageField.value
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// function logSubmission() {
|
|
||||||
// console.log('in logSubmission()')
|
|
||||||
// const data = { logData: 'Hi, this is some log data from JavaScript.' }
|
|
||||||
// fetch('/php/log.php', {
|
|
||||||
// method: 'POST',
|
|
||||||
// headers: {
|
|
||||||
// 'Content-Type': 'application/json',
|
|
||||||
// },
|
|
||||||
// body: JSON.stringify(data),
|
|
||||||
// })
|
|
||||||
// .then((response) => response.json())
|
|
||||||
// .then((data) => {
|
|
||||||
// console.log('Success:', data)
|
|
||||||
// })
|
|
||||||
// .catch((error) => {
|
|
||||||
// console.error('Error:', error)
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
function handleSubmit(e) {
|
function handleSubmit(e) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|
||||||
|
|
@ -176,14 +144,11 @@ function handleSubmit(e) {
|
||||||
fakeOut()
|
fakeOut()
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
const formData = new FormData(form)
|
const formData = new FormData(form)
|
||||||
const formDataEncoded = new URLSearchParams(formData).toString()
|
const formDataEncoded = new URLSearchParams(formData).toString()
|
||||||
const formURL = form.action + '.json'
|
const formURL = form.action + '.json'
|
||||||
|
|
||||||
// logSubmission()
|
|
||||||
// fakeOut()
|
|
||||||
// return false
|
|
||||||
|
|
||||||
fetch(formURL, {
|
fetch(formURL, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
|
|
@ -199,7 +164,7 @@ function handleSubmit(e) {
|
||||||
})
|
})
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
submitButton.disabled = true
|
submitButton.disabled = true
|
||||||
submitButton.innerHTML = `
|
submitButton.innerHTML = `
|
||||||
<svg class="svg-spin" fill="#ffffff" width="30px" height="30px" viewBox="0 0 9.6 9.6" id="Flat" xmlns="http://www.w3.org/2000/svg"><path d="M5.1 1.2v1.2a0.3 0.3 0 0 1 -0.6 0V1.2a0.3 0.3 0 0 1 0.6 0m3.3 3.3h-1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0 -0.6m-1.691 1.785a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 1 0 0.424 -0.424ZM4.8 6.9a0.3 0.3 0 0 0 -0.3 0.3v1.2a0.3 0.3 0 0 0 0.6 0v-1.2a0.3 0.3 0 0 0 -0.3 -0.3m-1.909 -0.615L2.042 7.133a0.3 0.3 0 0 0 0.424 0.424l0.849 -0.849a0.3 0.3 0 0 0 -0.424 -0.424M2.7 4.8a0.3 0.3 0 0 0 -0.3 -0.3H1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0.3 -0.3m-0.233 -2.758a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 0 0 0.424 -0.424Z"/></svg>
|
<svg class="svg-spin" fill="#ffffff" width="30px" height="30px" viewBox="0 0 9.6 9.6" id="Flat" xmlns="http://www.w3.org/2000/svg"><path d="M5.1 1.2v1.2a0.3 0.3 0 0 1 -0.6 0V1.2a0.3 0.3 0 0 1 0.6 0m3.3 3.3h-1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0 -0.6m-1.691 1.785a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 1 0 0.424 -0.424ZM4.8 6.9a0.3 0.3 0 0 0 -0.3 0.3v1.2a0.3 0.3 0 0 0 0.6 0v-1.2a0.3 0.3 0 0 0 -0.3 -0.3m-1.909 -0.615L2.042 7.133a0.3 0.3 0 0 0 0.424 0.424l0.849 -0.849a0.3 0.3 0 0 0 -0.424 -0.424M2.7 4.8a0.3 0.3 0 0 0 -0.3 -0.3H1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0.3 -0.3m-0.233 -2.758a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 0 0 0.424 -0.424Z"/></svg>
|
||||||
`
|
`
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
@ -224,7 +189,7 @@ function handleSubmit(e) {
|
||||||
}
|
}
|
||||||
function fakeOut() {
|
function fakeOut() {
|
||||||
submitButton.disabled = true
|
submitButton.disabled = true
|
||||||
submitButton.innerHTML = `
|
submitButton.innerHTML = `
|
||||||
<svg class="svg-spin" fill="#ffffff" width="30px" height="30px" viewBox="0 0 9.6 9.6" id="Flat" xmlns="http://www.w3.org/2000/svg"><path d="M5.1 1.2v1.2a0.3 0.3 0 0 1 -0.6 0V1.2a0.3 0.3 0 0 1 0.6 0m3.3 3.3h-1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0 -0.6m-1.691 1.785a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 1 0 0.424 -0.424ZM4.8 6.9a0.3 0.3 0 0 0 -0.3 0.3v1.2a0.3 0.3 0 0 0 0.6 0v-1.2a0.3 0.3 0 0 0 -0.3 -0.3m-1.909 -0.615L2.042 7.133a0.3 0.3 0 0 0 0.424 0.424l0.849 -0.849a0.3 0.3 0 0 0 -0.424 -0.424M2.7 4.8a0.3 0.3 0 0 0 -0.3 -0.3H1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0.3 -0.3m-0.233 -2.758a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 0 0 0.424 -0.424Z"/></svg>
|
<svg class="svg-spin" fill="#ffffff" width="30px" height="30px" viewBox="0 0 9.6 9.6" id="Flat" xmlns="http://www.w3.org/2000/svg"><path d="M5.1 1.2v1.2a0.3 0.3 0 0 1 -0.6 0V1.2a0.3 0.3 0 0 1 0.6 0m3.3 3.3h-1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0 -0.6m-1.691 1.785a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 1 0 0.424 -0.424ZM4.8 6.9a0.3 0.3 0 0 0 -0.3 0.3v1.2a0.3 0.3 0 0 0 0.6 0v-1.2a0.3 0.3 0 0 0 -0.3 -0.3m-1.909 -0.615L2.042 7.133a0.3 0.3 0 0 0 0.424 0.424l0.849 -0.849a0.3 0.3 0 0 0 -0.424 -0.424M2.7 4.8a0.3 0.3 0 0 0 -0.3 -0.3H1.2a0.3 0.3 0 0 0 0 0.6h1.2a0.3 0.3 0 0 0 0.3 -0.3m-0.233 -2.758a0.3 0.3 0 0 0 -0.424 0.424l0.849 0.849a0.3 0.3 0 0 0 0.424 -0.424Z"/></svg>
|
||||||
`
|
`
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ CH-8253 Diessenhofen
|
||||||
|
|
||||||
079 393 86 83
|
079 393 86 83
|
||||||
|
|
||||||
support"at"verua.ch
|
support@verua.ch
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ CH-8253 Diessenhofen
|
||||||
|
|
||||||
079 393 86 83
|
079 393 86 83
|
||||||
|
|
||||||
support"at"verua.ch
|
support@verua.ch
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -42,4 +42,4 @@ support"at"verua.ch
|
||||||
|
|
||||||
{{% /columns %}}
|
{{% /columns %}}
|
||||||
|
|
||||||
{{% /aligncenter %}}
|
{{% /aligncenter %}}
|
||||||
|
|
@ -27,7 +27,7 @@ try {
|
||||||
// Es handelt sich wahrscheinlich um einen Bot
|
// Es handelt sich wahrscheinlich um einen Bot
|
||||||
$subject = 'Botverdacht - ' . $subject;
|
$subject = 'Botverdacht - ' . $subject;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($name) || !filter_var($email, FILTER_VALIDATE_EMAIL) || empty($message)) {
|
if (empty($name) || !filter_var($email, FILTER_VALIDATE_EMAIL) || empty($message)) {
|
||||||
// Invalid input
|
// Invalid input
|
||||||
throw new Exception('Ungültige Eingabedaten.');
|
throw new Exception('Ungültige Eingabedaten.');
|
||||||
|
|
@ -44,9 +44,11 @@ try {
|
||||||
$mail->Port = 465; // TCP port for the connection
|
$mail->Port = 465; // TCP port for the connection
|
||||||
|
|
||||||
// Recipients
|
// Recipients
|
||||||
$mail->setFrom('support@verua.ch', 'Verua Support'); // Sender address
|
$mail->setFrom($email, $name); // Sender address
|
||||||
$mail->addAddress('ah@mediendesign-hnida.de', 'Andreas Hnida'); // Add recipient
|
$mail->addAddress('ah@mediendesign-hnida.de', 'Andreas Hnida'); // Add recipient
|
||||||
$mail->addAddress('support@verua.ch', 'Verua Support'); // Add another recipient
|
// $mail->addAddress('bettina.rasberger@rabe-web.ch', 'Bettina Rasberger'); // Add another recipient
|
||||||
|
// $mail->addAddress('norbert.wagner@verua.ch'); // Add another recipient
|
||||||
|
$mail->addReplyTo($email, $name); // Set reply address
|
||||||
$mail->addBCC('ah@mediendesign-hnida.de'); // Add bounce email address as BCC
|
$mail->addBCC('ah@mediendesign-hnida.de'); // Add bounce email address as BCC
|
||||||
|
|
||||||
// Content
|
// Content
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue