Puckdropper
So the front end is basically
Fri May 3, 2019 6:42am
99.155.22.188

unordered lists with a margin property. It's been suggested to use DIVs for that, so it doesn't interfere with the side-effect heavy CSS if you actually want a HTML list.

So it's like:
CSS:
div.comment
margin:50px

HTML
div class="comment"
div class="comment"
Etc
] <- Lisp uses that, I think, to indicate you want to close all the parenthesis. < /div > < /div> is truly wonderful.

My HTML/CSS is for demonstration purposes only, it's been a while since I wrote any! I know I left the < and > off, I didn't want the messageboard interpreting my code as code.

\
Does escaping work?
\


FWIW, here's my almost 15-year old idea on threaded comments:
Notes on Comments
+-----------------------------------------------------------------------+
+ Comments are identified by their referral_ID, Thread_ID, and +
+ Comment_ID. The Referral_ID posts to the post in which the +
+ comment is referring, the thread_ID refers to the thread within +
+ the Referral_ID and the comment_ID refers to the specific post. +
+ +
+ This will create a threaded view such as that used on forums, but +
+ does not allow for sub-threads to be formed. Possible updates +
+ include the modification of this structure to allow for that feature. +
+ +
+ Structure: +
+ Referral_ID +
+ Thread_ID +
+ Comment_ID +
+-----------------------------------------------------------------------+

So more thoughts:
Your table structure looks good, but it's been a while since I've done any programming. Blog release 1.0 is pretty close to the last database programming I've done......... Oof, that was 2012-Jun-03! Anything else was just a hack or a script edit.

There's been some interesting changes to how PHP handles MySQL. It's using something called prepared statements now, I guess. They're kinda neat in that they prevent SQL injection by telling the processor the thing you're feeding in is a variable and not part of a SQL statement. I want to say I used them in Perl, but never learned how to do that in PHP.

As far as spam prevention goes, registration usually does a great job. It sucks because everybody makes you register. I don't know if a rotating type of CAPTCHA would be good--UCL uses "enter this number" and it killed off spammy registrations dramatically. You don't even need to add, just match the pictures on the keyboard to those on the screen!
V1. Spam bots can't do math so to post on this website please solve this system of equations.
V2. Ok spambots can do math, and quite quickly. Please take between 5 and 20 minutes to solve this system of equations.
V3. Wow, spambots are now using random amounts of time to solve this system of equations. So please show your work.
V4. Mrs. Buttersworth, I realize you find some pretty nice problems on our site, but could you ask the students NOT to click register when they're done?
V5. Ok, we've added a "check my answer" link.
V6. Well if they're not going to use "check my answer", we'll at least make them show their work.
V7. Added a module to show them where they went wrong. Swapped "Register" and "Check my Answer" buttons.
V8. We give up. Mrs. Buttersworth, here's the code for the Numerical Enput Mathematic Board. We've included three real reviews that say how much better of teacher our software is than you. Oh and if your students solve 20 of these in 20 minutes they get to play Wry until they die. Get used to hearing that theme music! Duh dah da dah duh duhhh duh duhhh

Honestly I don't know what to do with IP addresses when I have them. Yeah, you can maybe track them back and file a complaint but that's a lot of work for something that's best deleted and moved on from. Where it may come in handy--and this is above our pay grade--is to detect an attack and disable the IP-range temporarily--like 24 hours. (Permanent bans caused all sorts of trouble for UCL members. I spent a lot of time unbanning IPs when we rebuilt the site.)


WOW, THAT WAS LIKE A BABEL FROM THE OLD DAYS!

  • Hopefully the front end isn't too bad...Erik, Thu May 2 3:46pm
    Formatting wise, hopefully we can just "borrow" a bunch of the source that's already on the page. My thoughts on possible implementation in just a off the top of my head lists: Database Thread table... more
    • So the front end is basically ☻ Puckdropper, Fri May 3 6:42am
      • Little Bobby TablesErik, Tue May 21 2:45am
        I remember back when I was working on my first actual work project, an internal ticketing system for my old company, my lead used the "Bobby Tables" xkcd comic to explain how important prepared... more
        • sujErik, Tue Jul 23 2:39am
          jkljlkj
    • Nested thread/reply stored procErik, Thu May 2 5:16pm
      Dug around and found one. Wasn't exactly the one I was thinking of so I'll have to do more digging. This one works backwards from bottom reply to top thread instead of top thread to bottom reply like ... more
Click here to receive daily updates
"Don't quote me." - Erik