mirror of
https://github.com/tmdinosaurcenter/kiosk-guestbook.git
synced 2025-04-04 03:11:23 -06:00
Add dynamic comment field display
- Hide comment field by default. - Add JavaScript to reveal comment field when first name, last name, and location have at least 3 characters. - Update form instructions to inform users about the comment field.
This commit is contained in:
parent
b51f88344d
commit
4ba6a77ff2
53
app.py
53
app.py
@ -2,6 +2,7 @@ from flask import Flask, render_template, request, redirect, url_for
|
|||||||
import sqlite3
|
import sqlite3
|
||||||
import re
|
import re
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
|
|
||||||
# Set up basic logging
|
# Set up basic logging
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
@ -10,6 +11,42 @@ logger = logging.getLogger(__name__)
|
|||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
DATABASE = 'guestbook.db'
|
DATABASE = 'guestbook.db'
|
||||||
|
|
||||||
|
def load_banned_words():
|
||||||
|
"""Load a set of banned words from a local file.
|
||||||
|
|
||||||
|
Expects 'en.txt' to be in the same directory as this script.
|
||||||
|
If the file is missing, a minimal fallback set is used.
|
||||||
|
"""
|
||||||
|
banned_words = set()
|
||||||
|
file_path = os.path.join(os.path.dirname(__file__), 'en.txt')
|
||||||
|
if os.path.exists(file_path):
|
||||||
|
try:
|
||||||
|
with open(file_path, 'r', encoding='utf-8') as f:
|
||||||
|
for line in f:
|
||||||
|
word = line.strip().lower()
|
||||||
|
if word:
|
||||||
|
banned_words.add(word)
|
||||||
|
logger.info("Loaded %d banned words from file.", len(banned_words))
|
||||||
|
except Exception as e:
|
||||||
|
logger.error("Error reading banned words file: %s", e)
|
||||||
|
banned_words = {"fuck", "shit", "damn", "bitch", "asshole", "cunt", "dick", "piss", "crap", "hell"}
|
||||||
|
else:
|
||||||
|
logger.warning("Banned words file not found. Using fallback minimal list.")
|
||||||
|
banned_words = {"fuck", "shit", "damn", "bitch", "asshole", "cunt", "dick", "piss", "crap", "hell"}
|
||||||
|
return banned_words
|
||||||
|
|
||||||
|
# Load the banned words using the helper function.
|
||||||
|
BANNED_WORDS = load_banned_words()
|
||||||
|
|
||||||
|
def contains_banned_words(text):
|
||||||
|
"""Check if the provided text contains any banned words."""
|
||||||
|
words = text.lower().split()
|
||||||
|
for word in words:
|
||||||
|
word_clean = word.strip(".,!?;:\"'")
|
||||||
|
if word_clean in BANNED_WORDS:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def init_db():
|
def init_db():
|
||||||
conn = sqlite3.connect(DATABASE)
|
conn = sqlite3.connect(DATABASE)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
@ -20,6 +57,7 @@ def init_db():
|
|||||||
last_name TEXT NOT NULL,
|
last_name TEXT NOT NULL,
|
||||||
email TEXT,
|
email TEXT,
|
||||||
location TEXT NOT NULL,
|
location TEXT NOT NULL,
|
||||||
|
comment TEXT,
|
||||||
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
|
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||||
)
|
)
|
||||||
''')
|
''')
|
||||||
@ -28,7 +66,6 @@ def init_db():
|
|||||||
logger.info("Database initialized.")
|
logger.info("Database initialized.")
|
||||||
|
|
||||||
def is_valid_email(email):
|
def is_valid_email(email):
|
||||||
# A simple regex for basic email validation
|
|
||||||
pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
|
pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
|
||||||
return re.match(pattern, email)
|
return re.match(pattern, email)
|
||||||
|
|
||||||
@ -41,17 +78,19 @@ def index():
|
|||||||
last_name = request.form.get('last_name', '').strip()
|
last_name = request.form.get('last_name', '').strip()
|
||||||
email = request.form.get('email', '').strip()
|
email = request.form.get('email', '').strip()
|
||||||
location = request.form.get('location', '').strip()
|
location = request.form.get('location', '').strip()
|
||||||
|
comment = request.form.get('comment', '').strip()
|
||||||
|
|
||||||
# Basic validation checks (email is optional)
|
|
||||||
if not (first_name and last_name and location):
|
if not (first_name and last_name and location):
|
||||||
error = "First name, last name, and location are required."
|
error = "First name, last name, and location are required."
|
||||||
logger.warning("Validation error: Missing required fields (first name, last name, location).")
|
logger.warning("Validation error: Missing required fields.")
|
||||||
elif email and not is_valid_email(email):
|
elif email and not is_valid_email(email):
|
||||||
error = "Invalid email address."
|
error = "Invalid email address."
|
||||||
logger.warning("Validation error: Invalid email address '%s'.", email)
|
logger.warning("Validation error: Invalid email address '%s'.", email)
|
||||||
|
elif comment and contains_banned_words(comment):
|
||||||
|
error = "Your comment contains inappropriate language. Please revise."
|
||||||
|
logger.warning("Validation error: Inappropriate language detected in comment.")
|
||||||
|
|
||||||
if error:
|
if error:
|
||||||
# Retrieve guest entries to display on the page.
|
|
||||||
conn = sqlite3.connect(DATABASE)
|
conn = sqlite3.connect(DATABASE)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
c.execute('SELECT first_name, location FROM guests ORDER BY id DESC')
|
c.execute('SELECT first_name, location FROM guests ORDER BY id DESC')
|
||||||
@ -59,19 +98,17 @@ def index():
|
|||||||
conn.close()
|
conn.close()
|
||||||
return render_template('index.html', error=error, guests=guests)
|
return render_template('index.html', error=error, guests=guests)
|
||||||
|
|
||||||
# If validations pass, insert the data into the database.
|
|
||||||
conn = sqlite3.connect(DATABASE)
|
conn = sqlite3.connect(DATABASE)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
c.execute(
|
c.execute(
|
||||||
'INSERT INTO guests (first_name, last_name, email, location) VALUES (?, ?, ?, ?)',
|
'INSERT INTO guests (first_name, last_name, email, location, comment) VALUES (?, ?, ?, ?, ?)',
|
||||||
(first_name, last_name, email, location)
|
(first_name, last_name, email, location, comment)
|
||||||
)
|
)
|
||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
logger.info("New guest entry added: %s from %s.", first_name, location)
|
logger.info("New guest entry added: %s from %s.", first_name, location)
|
||||||
return redirect(url_for('index'))
|
return redirect(url_for('index'))
|
||||||
|
|
||||||
# For GET requests, retrieve guest entries to display.
|
|
||||||
conn = sqlite3.connect(DATABASE)
|
conn = sqlite3.connect(DATABASE)
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
c.execute('SELECT first_name, location FROM guests ORDER BY id DESC')
|
c.execute('SELECT first_name, location FROM guests ORDER BY id DESC')
|
||||||
|
958
en.txt
Normal file
958
en.txt
Normal file
@ -0,0 +1,958 @@
|
|||||||
|
2 girls 1 cup
|
||||||
|
2g1c
|
||||||
|
4r5e
|
||||||
|
5h1t
|
||||||
|
5hit
|
||||||
|
a55
|
||||||
|
a_s_s
|
||||||
|
acrotomophilia
|
||||||
|
alabama hot pocket
|
||||||
|
alaskan pipeline
|
||||||
|
anal
|
||||||
|
anilingus
|
||||||
|
anus
|
||||||
|
apeshit
|
||||||
|
ar5e
|
||||||
|
arrse
|
||||||
|
arse
|
||||||
|
arsehole
|
||||||
|
ass
|
||||||
|
ass-fucker
|
||||||
|
ass-hat
|
||||||
|
ass-pirate
|
||||||
|
assbag
|
||||||
|
assbandit
|
||||||
|
assbanger
|
||||||
|
assbite
|
||||||
|
assclown
|
||||||
|
asscock
|
||||||
|
asscracker
|
||||||
|
asses
|
||||||
|
assface
|
||||||
|
assfucker
|
||||||
|
assfukka
|
||||||
|
assgoblin
|
||||||
|
asshat
|
||||||
|
asshead
|
||||||
|
asshole
|
||||||
|
assholes
|
||||||
|
asshopper
|
||||||
|
assjacker
|
||||||
|
asslick
|
||||||
|
asslicker
|
||||||
|
assmonkey
|
||||||
|
assmunch
|
||||||
|
assmuncher
|
||||||
|
asspirate
|
||||||
|
assshole
|
||||||
|
asssucker
|
||||||
|
asswad
|
||||||
|
asswhole
|
||||||
|
asswipe
|
||||||
|
auto erotic
|
||||||
|
autoerotic
|
||||||
|
b!tch
|
||||||
|
b00bs
|
||||||
|
b17ch
|
||||||
|
b1tch
|
||||||
|
babeland
|
||||||
|
baby batter
|
||||||
|
baby juice
|
||||||
|
ball gag
|
||||||
|
ball gravy
|
||||||
|
ball kicking
|
||||||
|
ball licking
|
||||||
|
ball sack
|
||||||
|
ball sucking
|
||||||
|
ballbag
|
||||||
|
balls
|
||||||
|
ballsack
|
||||||
|
bampot
|
||||||
|
bangbros
|
||||||
|
bareback
|
||||||
|
barely legal
|
||||||
|
barenaked
|
||||||
|
bastard
|
||||||
|
bastardo
|
||||||
|
bastinado
|
||||||
|
bbw
|
||||||
|
bdsm
|
||||||
|
beaner
|
||||||
|
beaners
|
||||||
|
beastial
|
||||||
|
beastiality
|
||||||
|
beastility
|
||||||
|
beaver cleaver
|
||||||
|
beaver lips
|
||||||
|
bellend
|
||||||
|
bestial
|
||||||
|
bestiality
|
||||||
|
bi+ch
|
||||||
|
biatch
|
||||||
|
big black
|
||||||
|
big breasts
|
||||||
|
big knockers
|
||||||
|
big tits
|
||||||
|
bimbos
|
||||||
|
birdlock
|
||||||
|
bitch
|
||||||
|
bitcher
|
||||||
|
bitchers
|
||||||
|
bitches
|
||||||
|
bitchin
|
||||||
|
bitching
|
||||||
|
black cock
|
||||||
|
blonde action
|
||||||
|
blonde on blonde action
|
||||||
|
bloody
|
||||||
|
blow job
|
||||||
|
blow your load
|
||||||
|
blowjob
|
||||||
|
blowjobs
|
||||||
|
blue waffle
|
||||||
|
blumpkin
|
||||||
|
boiolas
|
||||||
|
bollock
|
||||||
|
bollocks
|
||||||
|
bollok
|
||||||
|
bollox
|
||||||
|
bondage
|
||||||
|
boner
|
||||||
|
boob
|
||||||
|
boobie
|
||||||
|
boobs
|
||||||
|
booobs
|
||||||
|
boooobs
|
||||||
|
booooobs
|
||||||
|
booooooobs
|
||||||
|
booty call
|
||||||
|
breasts
|
||||||
|
brown showers
|
||||||
|
brunette action
|
||||||
|
buceta
|
||||||
|
bugger
|
||||||
|
bukkake
|
||||||
|
bulldyke
|
||||||
|
bullet vibe
|
||||||
|
bullshit
|
||||||
|
bum
|
||||||
|
bung hole
|
||||||
|
bunghole
|
||||||
|
bunny fucker
|
||||||
|
busty
|
||||||
|
butt
|
||||||
|
butt-pirate
|
||||||
|
buttcheeks
|
||||||
|
butthole
|
||||||
|
buttmunch
|
||||||
|
buttplug
|
||||||
|
c0ck
|
||||||
|
c0cksucker
|
||||||
|
camel toe
|
||||||
|
camgirl
|
||||||
|
camslut
|
||||||
|
camwhore
|
||||||
|
carpet muncher
|
||||||
|
carpetmuncher
|
||||||
|
cawk
|
||||||
|
chinc
|
||||||
|
chink
|
||||||
|
choad
|
||||||
|
chocolate rosebuds
|
||||||
|
chode
|
||||||
|
cipa
|
||||||
|
circlejerk
|
||||||
|
cl1t
|
||||||
|
cleveland steamer
|
||||||
|
clit
|
||||||
|
clitface
|
||||||
|
clitoris
|
||||||
|
clits
|
||||||
|
clover clamps
|
||||||
|
clusterfuck
|
||||||
|
cnut
|
||||||
|
cock
|
||||||
|
cock-sucker
|
||||||
|
cockbite
|
||||||
|
cockburger
|
||||||
|
cockface
|
||||||
|
cockhead
|
||||||
|
cockjockey
|
||||||
|
cockknoker
|
||||||
|
cockmaster
|
||||||
|
cockmongler
|
||||||
|
cockmongruel
|
||||||
|
cockmonkey
|
||||||
|
cockmunch
|
||||||
|
cockmuncher
|
||||||
|
cocknose
|
||||||
|
cocknugget
|
||||||
|
cocks
|
||||||
|
cockshit
|
||||||
|
cocksmith
|
||||||
|
cocksmoker
|
||||||
|
cocksuck
|
||||||
|
cocksuck
|
||||||
|
cocksucked
|
||||||
|
cocksucked
|
||||||
|
cocksucker
|
||||||
|
cocksucking
|
||||||
|
cocksucks
|
||||||
|
cocksuka
|
||||||
|
cocksukka
|
||||||
|
cok
|
||||||
|
cokmuncher
|
||||||
|
coksucka
|
||||||
|
coochie
|
||||||
|
coochy
|
||||||
|
coon
|
||||||
|
coons
|
||||||
|
cooter
|
||||||
|
coprolagnia
|
||||||
|
coprophilia
|
||||||
|
cornhole
|
||||||
|
cox
|
||||||
|
crap
|
||||||
|
creampie
|
||||||
|
cum
|
||||||
|
cumbubble
|
||||||
|
cumdumpster
|
||||||
|
cumguzzler
|
||||||
|
cumjockey
|
||||||
|
cummer
|
||||||
|
cumming
|
||||||
|
cums
|
||||||
|
cumshot
|
||||||
|
cumslut
|
||||||
|
cumtart
|
||||||
|
cunilingus
|
||||||
|
cunillingus
|
||||||
|
cunnie
|
||||||
|
cunnilingus
|
||||||
|
cunt
|
||||||
|
cuntface
|
||||||
|
cunthole
|
||||||
|
cuntlick
|
||||||
|
cuntlick
|
||||||
|
cuntlicker
|
||||||
|
cuntlicker
|
||||||
|
cuntlicking
|
||||||
|
cuntlicking
|
||||||
|
cuntrag
|
||||||
|
cunts
|
||||||
|
cyalis
|
||||||
|
cyberfuc
|
||||||
|
cyberfuck
|
||||||
|
cyberfucked
|
||||||
|
cyberfucker
|
||||||
|
cyberfuckers
|
||||||
|
cyberfucking
|
||||||
|
d1ck
|
||||||
|
dammit
|
||||||
|
damn
|
||||||
|
darkie
|
||||||
|
date rape
|
||||||
|
daterape
|
||||||
|
deep throat
|
||||||
|
deepthroat
|
||||||
|
dendrophilia
|
||||||
|
dick
|
||||||
|
dickbag
|
||||||
|
dickbeater
|
||||||
|
dickface
|
||||||
|
dickhead
|
||||||
|
dickhole
|
||||||
|
dickjuice
|
||||||
|
dickmilk
|
||||||
|
dickmonger
|
||||||
|
dickslap
|
||||||
|
dicksucker
|
||||||
|
dickwad
|
||||||
|
dickweasel
|
||||||
|
dickweed
|
||||||
|
dickwod
|
||||||
|
dike
|
||||||
|
dildo
|
||||||
|
dildos
|
||||||
|
dingleberries
|
||||||
|
dingleberry
|
||||||
|
dink
|
||||||
|
dinks
|
||||||
|
dipshit
|
||||||
|
dirsa
|
||||||
|
dirty pillows
|
||||||
|
dirty sanchez
|
||||||
|
dlck
|
||||||
|
dog style
|
||||||
|
dog-fucker
|
||||||
|
doggie style
|
||||||
|
doggiestyle
|
||||||
|
doggin
|
||||||
|
dogging
|
||||||
|
doggy style
|
||||||
|
doggystyle
|
||||||
|
dolcett
|
||||||
|
domination
|
||||||
|
dominatrix
|
||||||
|
dommes
|
||||||
|
donkey punch
|
||||||
|
donkeyribber
|
||||||
|
doochbag
|
||||||
|
dookie
|
||||||
|
doosh
|
||||||
|
double dong
|
||||||
|
double penetration
|
||||||
|
douche
|
||||||
|
douchebag
|
||||||
|
dp action
|
||||||
|
dry hump
|
||||||
|
duche
|
||||||
|
dumbshit
|
||||||
|
dumshit
|
||||||
|
dvda
|
||||||
|
dyke
|
||||||
|
eat my ass
|
||||||
|
ecchi
|
||||||
|
ejaculate
|
||||||
|
ejaculated
|
||||||
|
ejaculates
|
||||||
|
ejaculating
|
||||||
|
ejaculatings
|
||||||
|
ejaculation
|
||||||
|
ejakulate
|
||||||
|
erotic
|
||||||
|
erotism
|
||||||
|
escort
|
||||||
|
eunuch
|
||||||
|
f u c k
|
||||||
|
f u c k e r
|
||||||
|
f4nny
|
||||||
|
f_u_c_k
|
||||||
|
fag
|
||||||
|
fagbag
|
||||||
|
fagg
|
||||||
|
fagging
|
||||||
|
faggit
|
||||||
|
faggitt
|
||||||
|
faggot
|
||||||
|
faggs
|
||||||
|
fagot
|
||||||
|
fagots
|
||||||
|
fags
|
||||||
|
fagtard
|
||||||
|
fanny
|
||||||
|
fannyflaps
|
||||||
|
fannyfucker
|
||||||
|
fanyy
|
||||||
|
fart
|
||||||
|
farted
|
||||||
|
farting
|
||||||
|
farty
|
||||||
|
fatass
|
||||||
|
fcuk
|
||||||
|
fcuker
|
||||||
|
fcuking
|
||||||
|
fecal
|
||||||
|
feck
|
||||||
|
fecker
|
||||||
|
felatio
|
||||||
|
felch
|
||||||
|
felching
|
||||||
|
fellate
|
||||||
|
fellatio
|
||||||
|
feltch
|
||||||
|
female squirting
|
||||||
|
femdom
|
||||||
|
figging
|
||||||
|
fingerbang
|
||||||
|
fingerfuck
|
||||||
|
fingerfucked
|
||||||
|
fingerfucker
|
||||||
|
fingerfuckers
|
||||||
|
fingerfucking
|
||||||
|
fingerfucks
|
||||||
|
fingering
|
||||||
|
fistfuck
|
||||||
|
fistfucked
|
||||||
|
fistfucker
|
||||||
|
fistfuckers
|
||||||
|
fistfucking
|
||||||
|
fistfuckings
|
||||||
|
fistfucks
|
||||||
|
fisting
|
||||||
|
flamer
|
||||||
|
flange
|
||||||
|
fook
|
||||||
|
fooker
|
||||||
|
foot fetish
|
||||||
|
footjob
|
||||||
|
frotting
|
||||||
|
fuck
|
||||||
|
fuck buttons
|
||||||
|
fucka
|
||||||
|
fucked
|
||||||
|
fucker
|
||||||
|
fuckers
|
||||||
|
fuckhead
|
||||||
|
fuckheads
|
||||||
|
fuckin
|
||||||
|
fucking
|
||||||
|
fuckings
|
||||||
|
fuckingshitmotherfucker
|
||||||
|
fuckme
|
||||||
|
fucks
|
||||||
|
fucktards
|
||||||
|
fuckwhit
|
||||||
|
fuckwit
|
||||||
|
fudge packer
|
||||||
|
fudgepacker
|
||||||
|
fuk
|
||||||
|
fuker
|
||||||
|
fukker
|
||||||
|
fukkin
|
||||||
|
fuks
|
||||||
|
fukwhit
|
||||||
|
fukwit
|
||||||
|
futanari
|
||||||
|
fux
|
||||||
|
fux0r
|
||||||
|
g-spot
|
||||||
|
gang bang
|
||||||
|
gangbang
|
||||||
|
gangbanged
|
||||||
|
gangbanged
|
||||||
|
gangbangs
|
||||||
|
gay sex
|
||||||
|
gayass
|
||||||
|
gaybob
|
||||||
|
gaydo
|
||||||
|
gaylord
|
||||||
|
gaysex
|
||||||
|
gaytard
|
||||||
|
gaywad
|
||||||
|
genitals
|
||||||
|
giant cock
|
||||||
|
girl on
|
||||||
|
girl on top
|
||||||
|
girls gone wild
|
||||||
|
goatcx
|
||||||
|
goatse
|
||||||
|
god damn
|
||||||
|
god-dam
|
||||||
|
god-damned
|
||||||
|
goddamn
|
||||||
|
goddamned
|
||||||
|
gokkun
|
||||||
|
golden shower
|
||||||
|
goo girl
|
||||||
|
gooch
|
||||||
|
goodpoop
|
||||||
|
gook
|
||||||
|
goregasm
|
||||||
|
gringo
|
||||||
|
grope
|
||||||
|
group sex
|
||||||
|
guido
|
||||||
|
guro
|
||||||
|
hand job
|
||||||
|
handjob
|
||||||
|
hard core
|
||||||
|
hardcore
|
||||||
|
hardcoresex
|
||||||
|
heeb
|
||||||
|
hell
|
||||||
|
hentai
|
||||||
|
heshe
|
||||||
|
ho
|
||||||
|
hoar
|
||||||
|
hoare
|
||||||
|
hoe
|
||||||
|
hoer
|
||||||
|
homo
|
||||||
|
homoerotic
|
||||||
|
honkey
|
||||||
|
honky
|
||||||
|
hooker
|
||||||
|
hore
|
||||||
|
horniest
|
||||||
|
horny
|
||||||
|
hot carl
|
||||||
|
hot chick
|
||||||
|
hotsex
|
||||||
|
how to kill
|
||||||
|
how to murder
|
||||||
|
huge fat
|
||||||
|
humping
|
||||||
|
incest
|
||||||
|
intercourse
|
||||||
|
jack off
|
||||||
|
jack-off
|
||||||
|
jackass
|
||||||
|
jackoff
|
||||||
|
jail bait
|
||||||
|
jailbait
|
||||||
|
jap
|
||||||
|
jelly donut
|
||||||
|
jerk off
|
||||||
|
jerk-off
|
||||||
|
jigaboo
|
||||||
|
jiggaboo
|
||||||
|
jiggerboo
|
||||||
|
jism
|
||||||
|
jiz
|
||||||
|
jiz
|
||||||
|
jizm
|
||||||
|
jizm
|
||||||
|
jizz
|
||||||
|
juggs
|
||||||
|
kawk
|
||||||
|
kike
|
||||||
|
kinbaku
|
||||||
|
kinkster
|
||||||
|
kinky
|
||||||
|
kiunt
|
||||||
|
knob
|
||||||
|
knobbing
|
||||||
|
knobead
|
||||||
|
knobed
|
||||||
|
knobend
|
||||||
|
knobhead
|
||||||
|
knobjocky
|
||||||
|
knobjokey
|
||||||
|
kock
|
||||||
|
kondum
|
||||||
|
kondums
|
||||||
|
kooch
|
||||||
|
kootch
|
||||||
|
kum
|
||||||
|
kumer
|
||||||
|
kummer
|
||||||
|
kumming
|
||||||
|
kums
|
||||||
|
kunilingus
|
||||||
|
kunt
|
||||||
|
kyke
|
||||||
|
l3i+ch
|
||||||
|
l3itch
|
||||||
|
labia
|
||||||
|
leather restraint
|
||||||
|
leather straight jacket
|
||||||
|
lemon party
|
||||||
|
lesbo
|
||||||
|
lezzie
|
||||||
|
lmfao
|
||||||
|
lolita
|
||||||
|
lovemaking
|
||||||
|
lust
|
||||||
|
lusting
|
||||||
|
m0f0
|
||||||
|
m0fo
|
||||||
|
m45terbate
|
||||||
|
ma5terb8
|
||||||
|
ma5terbate
|
||||||
|
make me come
|
||||||
|
male squirting
|
||||||
|
masochist
|
||||||
|
master-bate
|
||||||
|
masterb8
|
||||||
|
masterbat*
|
||||||
|
masterbat3
|
||||||
|
masterbate
|
||||||
|
masterbation
|
||||||
|
masterbations
|
||||||
|
masturbate
|
||||||
|
menage a trois
|
||||||
|
milf
|
||||||
|
minge
|
||||||
|
missionary position
|
||||||
|
mo-fo
|
||||||
|
mof0
|
||||||
|
mofo
|
||||||
|
mothafuck
|
||||||
|
mothafucka
|
||||||
|
mothafuckas
|
||||||
|
mothafuckaz
|
||||||
|
mothafucked
|
||||||
|
mothafucker
|
||||||
|
mothafuckers
|
||||||
|
mothafuckin
|
||||||
|
mothafucking
|
||||||
|
mothafuckings
|
||||||
|
mothafucks
|
||||||
|
mother fucker
|
||||||
|
motherfuck
|
||||||
|
motherfucked
|
||||||
|
motherfucker
|
||||||
|
motherfuckers
|
||||||
|
motherfuckin
|
||||||
|
motherfucking
|
||||||
|
motherfuckings
|
||||||
|
motherfuckka
|
||||||
|
motherfucks
|
||||||
|
mound of venus
|
||||||
|
mr hands
|
||||||
|
muff
|
||||||
|
muff diver
|
||||||
|
muffdiver
|
||||||
|
muffdiving
|
||||||
|
mutha
|
||||||
|
muthafecker
|
||||||
|
muthafuckker
|
||||||
|
muther
|
||||||
|
mutherfucker
|
||||||
|
n1gga
|
||||||
|
n1gger
|
||||||
|
nambla
|
||||||
|
nawashi
|
||||||
|
nazi
|
||||||
|
negro
|
||||||
|
neonazi
|
||||||
|
nig nog
|
||||||
|
nigg3r
|
||||||
|
nigg4h
|
||||||
|
nigga
|
||||||
|
niggah
|
||||||
|
niggas
|
||||||
|
niggaz
|
||||||
|
nigger
|
||||||
|
niggers
|
||||||
|
niglet
|
||||||
|
nimphomania
|
||||||
|
nipple
|
||||||
|
nipples
|
||||||
|
nob
|
||||||
|
nob jokey
|
||||||
|
nobhead
|
||||||
|
nobjocky
|
||||||
|
nobjokey
|
||||||
|
nsfw images
|
||||||
|
nude
|
||||||
|
nudity
|
||||||
|
numbnuts
|
||||||
|
nutsack
|
||||||
|
nympho
|
||||||
|
nymphomania
|
||||||
|
octopussy
|
||||||
|
omorashi
|
||||||
|
one cup two girls
|
||||||
|
one guy one jar
|
||||||
|
orgasim
|
||||||
|
orgasim
|
||||||
|
orgasims
|
||||||
|
orgasm
|
||||||
|
orgasms
|
||||||
|
orgy
|
||||||
|
p0rn
|
||||||
|
paedophile
|
||||||
|
paki
|
||||||
|
panooch
|
||||||
|
panties
|
||||||
|
panty
|
||||||
|
pawn
|
||||||
|
pecker
|
||||||
|
peckerhead
|
||||||
|
pedobear
|
||||||
|
pedophile
|
||||||
|
pegging
|
||||||
|
penis
|
||||||
|
penisfucker
|
||||||
|
phone sex
|
||||||
|
phonesex
|
||||||
|
phuck
|
||||||
|
phuk
|
||||||
|
phuked
|
||||||
|
phuking
|
||||||
|
phukked
|
||||||
|
phukking
|
||||||
|
phuks
|
||||||
|
phuq
|
||||||
|
piece of shit
|
||||||
|
pigfucker
|
||||||
|
pimpis
|
||||||
|
pis
|
||||||
|
pises
|
||||||
|
pisin
|
||||||
|
pising
|
||||||
|
pisof
|
||||||
|
piss
|
||||||
|
piss pig
|
||||||
|
pissed
|
||||||
|
pisser
|
||||||
|
pissers
|
||||||
|
pisses
|
||||||
|
pissflap
|
||||||
|
pissflaps
|
||||||
|
pissin
|
||||||
|
pissin
|
||||||
|
pissing
|
||||||
|
pissoff
|
||||||
|
pissoff
|
||||||
|
pisspig
|
||||||
|
playboy
|
||||||
|
pleasure chest
|
||||||
|
pole smoker
|
||||||
|
polesmoker
|
||||||
|
pollock
|
||||||
|
ponyplay
|
||||||
|
poo
|
||||||
|
poof
|
||||||
|
poon
|
||||||
|
poonani
|
||||||
|
poonany
|
||||||
|
poontang
|
||||||
|
poop
|
||||||
|
poop chute
|
||||||
|
poopchute
|
||||||
|
porn
|
||||||
|
porno
|
||||||
|
pornography
|
||||||
|
pornos
|
||||||
|
prick
|
||||||
|
pricks
|
||||||
|
prince albert piercing
|
||||||
|
pron
|
||||||
|
pthc
|
||||||
|
pube
|
||||||
|
pubes
|
||||||
|
punanny
|
||||||
|
punany
|
||||||
|
punta
|
||||||
|
pusies
|
||||||
|
pusse
|
||||||
|
pussi
|
||||||
|
pussies
|
||||||
|
pussy
|
||||||
|
pussylicking
|
||||||
|
pussys
|
||||||
|
pusy
|
||||||
|
puto
|
||||||
|
queaf
|
||||||
|
queef
|
||||||
|
queerbait
|
||||||
|
queerhole
|
||||||
|
quim
|
||||||
|
raghead
|
||||||
|
raging boner
|
||||||
|
rape
|
||||||
|
raping
|
||||||
|
rapist
|
||||||
|
rectum
|
||||||
|
renob
|
||||||
|
retard
|
||||||
|
reverse cowgirl
|
||||||
|
rimjaw
|
||||||
|
rimjob
|
||||||
|
rimming
|
||||||
|
rosy palm
|
||||||
|
rosy palm and her 5 sisters
|
||||||
|
ruski
|
||||||
|
rusty trombone
|
||||||
|
s hit
|
||||||
|
s&m
|
||||||
|
s.o.b.
|
||||||
|
s_h_i_t
|
||||||
|
sadism
|
||||||
|
sadist
|
||||||
|
santorum
|
||||||
|
scat
|
||||||
|
schlong
|
||||||
|
scissoring
|
||||||
|
screwing
|
||||||
|
scroat
|
||||||
|
scrote
|
||||||
|
scrotum
|
||||||
|
semen
|
||||||
|
sex
|
||||||
|
sexo
|
||||||
|
sexy
|
||||||
|
sh!+
|
||||||
|
sh!t
|
||||||
|
sh1t
|
||||||
|
shag
|
||||||
|
shagger
|
||||||
|
shaggin
|
||||||
|
shagging
|
||||||
|
shaved beaver
|
||||||
|
shaved pussy
|
||||||
|
shemale
|
||||||
|
shi+
|
||||||
|
shibari
|
||||||
|
shit
|
||||||
|
shit-ass
|
||||||
|
shit-bag
|
||||||
|
shit-bagger
|
||||||
|
shit-brain
|
||||||
|
shit-breath
|
||||||
|
shit-cunt
|
||||||
|
shit-dick
|
||||||
|
shit-eating
|
||||||
|
shit-face
|
||||||
|
shit-faced
|
||||||
|
shit-fit
|
||||||
|
shit-head
|
||||||
|
shit-heel
|
||||||
|
shit-hole
|
||||||
|
shit-house
|
||||||
|
shit-load
|
||||||
|
shit-pot
|
||||||
|
shit-spitter
|
||||||
|
shit-stain
|
||||||
|
shitass
|
||||||
|
shitbag
|
||||||
|
shitbagger
|
||||||
|
shitblimp
|
||||||
|
shitbrain
|
||||||
|
shitbreath
|
||||||
|
shitcunt
|
||||||
|
shitdick
|
||||||
|
shite
|
||||||
|
shiteating
|
||||||
|
shited
|
||||||
|
shitey
|
||||||
|
shitface
|
||||||
|
shitfaced
|
||||||
|
shitfit
|
||||||
|
shitfuck
|
||||||
|
shitfull
|
||||||
|
shithead
|
||||||
|
shitheel
|
||||||
|
shithole
|
||||||
|
shithouse
|
||||||
|
shiting
|
||||||
|
shitings
|
||||||
|
shitload
|
||||||
|
shitpot
|
||||||
|
shits
|
||||||
|
shitspitter
|
||||||
|
shitstain
|
||||||
|
shitted
|
||||||
|
shitter
|
||||||
|
shitters
|
||||||
|
shittiest
|
||||||
|
shitting
|
||||||
|
shittings
|
||||||
|
shitty
|
||||||
|
shitty
|
||||||
|
shity
|
||||||
|
shiz
|
||||||
|
shiznit
|
||||||
|
shota
|
||||||
|
shrimping
|
||||||
|
skank
|
||||||
|
skeet
|
||||||
|
slanteye
|
||||||
|
slut
|
||||||
|
slutbag
|
||||||
|
sluts
|
||||||
|
smeg
|
||||||
|
smegma
|
||||||
|
smut
|
||||||
|
snatch
|
||||||
|
snowballing
|
||||||
|
sodomize
|
||||||
|
sodomy
|
||||||
|
son-of-a-bitch
|
||||||
|
spac
|
||||||
|
spic
|
||||||
|
spick
|
||||||
|
splooge
|
||||||
|
splooge moose
|
||||||
|
spooge
|
||||||
|
spread legs
|
||||||
|
spunk
|
||||||
|
strap on
|
||||||
|
strapon
|
||||||
|
strappado
|
||||||
|
strip club
|
||||||
|
style doggy
|
||||||
|
suck
|
||||||
|
sucks
|
||||||
|
suicide girls
|
||||||
|
sultry women
|
||||||
|
swastika
|
||||||
|
swinger
|
||||||
|
t1tt1e5
|
||||||
|
t1tties
|
||||||
|
tainted love
|
||||||
|
tard
|
||||||
|
taste my
|
||||||
|
tea bagging
|
||||||
|
teets
|
||||||
|
teez
|
||||||
|
testical
|
||||||
|
testicle
|
||||||
|
threesome
|
||||||
|
throating
|
||||||
|
thundercunt
|
||||||
|
tied up
|
||||||
|
tight white
|
||||||
|
tit
|
||||||
|
titfuck
|
||||||
|
tits
|
||||||
|
titt
|
||||||
|
tittie5
|
||||||
|
tittiefucker
|
||||||
|
titties
|
||||||
|
titty
|
||||||
|
tittyfuck
|
||||||
|
tittywank
|
||||||
|
titwank
|
||||||
|
tongue in a
|
||||||
|
topless
|
||||||
|
tosser
|
||||||
|
towelhead
|
||||||
|
tranny
|
||||||
|
tribadism
|
||||||
|
tub girl
|
||||||
|
tubgirl
|
||||||
|
turd
|
||||||
|
tushy
|
||||||
|
tw4t
|
||||||
|
twat
|
||||||
|
twathead
|
||||||
|
twatlips
|
||||||
|
twatty
|
||||||
|
twink
|
||||||
|
twinkie
|
||||||
|
two girls one cup
|
||||||
|
twunt
|
||||||
|
twunter
|
||||||
|
undressing
|
||||||
|
upskirt
|
||||||
|
urethra play
|
||||||
|
urophilia
|
||||||
|
v14gra
|
||||||
|
v1gra
|
||||||
|
va-j-j
|
||||||
|
vag
|
||||||
|
vagina
|
||||||
|
venus mound
|
||||||
|
viagra
|
||||||
|
vibrator
|
||||||
|
violet wand
|
||||||
|
vjayjay
|
||||||
|
vorarephilia
|
||||||
|
voyeur
|
||||||
|
vulva
|
||||||
|
w00se
|
||||||
|
wang
|
||||||
|
wank
|
||||||
|
wanker
|
||||||
|
wanky
|
||||||
|
wet dream
|
||||||
|
wetback
|
||||||
|
white power
|
||||||
|
whoar
|
||||||
|
whore
|
||||||
|
willies
|
||||||
|
willy
|
||||||
|
wrapping men
|
||||||
|
wrinkled starfish
|
||||||
|
xrated
|
||||||
|
xx
|
||||||
|
xxx
|
||||||
|
yaoi
|
||||||
|
yellow showers
|
||||||
|
yiffy
|
||||||
|
zoophilia
|
||||||
|
🖕
|
0
scripts/guestbook.db
Normal file
0
scripts/guestbook.db
Normal file
@ -70,6 +70,11 @@
|
|||||||
<label for="location" class="form-label">Location:</label>
|
<label for="location" class="form-label">Location:</label>
|
||||||
<input type="text" class="form-control" id="location" name="location" required>
|
<input type="text" class="form-control" id="location" name="location" required>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Comment field hidden by default -->
|
||||||
|
<div class="mb-3" id="comment-field" style="display: none;">
|
||||||
|
<label for="comment" class="form-label">Comment (Optional):</label>
|
||||||
|
<textarea class="form-control" id="comment" name="comment" rows="3"></textarea>
|
||||||
|
</div>
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@ -85,6 +90,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- JavaScript to reveal the comment field -->
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
|
const firstNameInput = document.getElementById('first_name');
|
||||||
|
const lastNameInput = document.getElementById('last_name');
|
||||||
|
const locationInput = document.getElementById('location');
|
||||||
|
const commentField = document.getElementById('comment-field');
|
||||||
|
|
||||||
|
function checkFields() {
|
||||||
|
if (firstNameInput.value.trim().length >= 3 &&
|
||||||
|
lastNameInput.value.trim().length >= 3 &&
|
||||||
|
locationInput.value.trim().length >= 3) {
|
||||||
|
commentField.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
commentField.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
firstNameInput.addEventListener('input', checkFields);
|
||||||
|
lastNameInput.addEventListener('input', checkFields);
|
||||||
|
locationInput.addEventListener('input', checkFields);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
<!-- Bootstrap JS (optional) -->
|
<!-- Bootstrap JS (optional) -->
|
||||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js"></script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user