- Mollom session
entity_type VARCHAR(32), entity_id INT
- Or whatever is suitable for your app; required to map a
contentId
orcaptchaId
to a locally stored entity.
- Or whatever is suitable for your app; required to map a
content_id VARCHAR(32) NULL
- Text analysis only.
- Note: Certain database engines/drivers care for case-sensitivity (e.g., Postgres); for maximum compatibility use
content_id
instead ofcontentId
.
captcha_id VARCHAR(32) NULL
- Only exists when a post involved a CAPTCHA in any way.
- Note: Certain database engines/drivers care for case-sensitivity (e.g., Postgres); for maximum compatibility use
captcha_id
instead ofcaptchaId
.
created INT(11)/DATE NOT NULL DEFAULT NOW()
- Used to prune out obsolete session data older than 6 months.
- CMP: Content Moderation Platform
- Form flow: Basic assumed form workflow stages:
- Form construction (initial; no user input)
- Form validation (user input, possibly throwing errors that cause the form to be re-rendered)
- Form submission (only reached if there are no validation errors)
-
Content ID, commonly
contentId
ormollom[contentId]
. -
CAPTCHA ID, commonly
captchaId
ormollom[captchaId]
. -
Honeypot field
- Wrap the text input element in a container with a CSS class that gets
display: none;
applied. - Use an "attractive" name for the input element; e.g.,
name="mollom-homepage"
orname="mollom[homepage]"
.
- Wrap the text input element in a container with a CSS class that gets
-
Mollom privacy policy link
By submitting this form, you accept the <a href="//mollom.com/web-service-privacy-policy" target="_blank" rel="nofollow">Mollom privacy policy</a>.
- On form construction:
- --
- On form validation:
- Check (unsure) CAPTCHA, if a CAPTCHA ID was submitted.
- Regardless of whether the
solution
is empty.
- Regardless of whether the
- Check content (using submitted content ID, if any).
- Output new content ID as hidden form input value.
- React to
spamClassification
:spam
: Throw form validation error (blocking submission).unsure
: Retrieve + output CAPTCHA associated withcontentId
+ throw form validation error (blocking submission).ham
: Accept post- Remove the CAPTCHA ID from the form's HTML markup to not re-trigger the CAPTCHA validation again.
- Check (unsure) CAPTCHA, if a CAPTCHA ID was submitted.
- On form submission:
- Store MollomSession data locally, including entity type + ID mapping.
- If CMP integration is enabled, mark content as stored + provide meta/context info:
stored=1
url=http://example.com/articles/123#comment-456
contextUrl=http://example.com/articles/123
contextTitle=Article title
- On form construction:
- Retrieve a new CAPTCHA.
- Start local session to store CAPTCHA ID + URL with
solved=0
+url=http://...
- Disable page caching + ensure to send proper HTTP headers to notify reverse-proxies.
- Output CAPTCHA + CAPTCHA ID as hidden form input +
solution
text form input element.
- On form validation:
- Check CAPTCHA
solution
using submitted CAPTCHA ID. - Output new CAPTCHA ID as hidden form input value.
- React to
solved
:0
: Throw form validation error (blocking submission) + output CAPTCHA again.1
: Accept post.
- Check CAPTCHA
- On form submission:
- Store MollomSession data locally, including entity type + ID mapping.