People submitting = not a thing you can really do. You can pull term matches or look for specific things like links or garbage words, and then simply discard or moderate it. Or of course you can always just moderate all, but that would depend on amount of expected legit posts.
Bots you can do a lot about. My personal approach is to use a form for which I randomly generate the actual input field names. Stack that with a few of the random hidden fields (visually blocked by css not by using the hidden input type) randomly ordered results in no spammage. Win.
header('HTTP/1.1 420 Enhance Your Calm');