If you do know that hitting reload causes duplicate submissions and you do know that ignorami such as myself are not in small number, then why not refuse submissions with the same node, with a message:

Sorry, such a node has been posted. Perhaps you should add commentary to url-of-original-node instead

I think this is a good idea. And thanks for the information about reload. I didn't know that.

Or, if you want to allow duplicate posts, by all means don't allow them from the exact same user within 30 minutes of the time he first submitted it.

Sound good?

  • Comment on Don't allow duplicate posts with the same title

Replies are listed 'Best First'.
RE: Don't allow duplicate posts with the same title
by Ozymandias (Hermit) on Sep 21, 2000 at 00:01 UTC
    Not quite. Suppose two people reply to my node here. I might want to reply to both of them, and I'm too lazy to change their node titles to be different. The submission system you propose would not allow that.

    I agree it might be nice to have a system in place for refusing duplicate nodes, but I don't think this is the way to do it. Right now, moderators can submit a node "for consideration", meaning duplicates that need deleting, etc. Very few people make this mistake twice; maybe all that's needed is to improve the message text in a few places to make it clear what's happening when you post a node.

    - email Ozymandias
RE: Don't allow duplicate posts with the same title
by Fastolfe (Vicar) on Sep 21, 2000 at 00:18 UTC
    I think Slashdot places a unique ID on the *form* page and tacks this onto the actual posted comment. If it detects the same ID is already in use (or perhaps the same ID with the same subject/title), it can infer that the user clicked Submit twice or hit Reload, and can ignore the 2nd post.

    The drawback, of course, is that I can't type up a comment, submit it, go back and type up a new/2nd comment, because the "ID" in the form will already be added to the system due to my previous comment. I'd have to refresh the page that has the form so as to get a new ID.

      I do the same kind of check in one of my scripts: I check if the ID has been already submitted, and in that case whether the form content is the same as what was submitted with the same ID. In this case, and in this case only, I consider the post to be a duplicate.

RE: Don't allow duplicate posts with the same title
by turnstep (Parson) on Sep 21, 2000 at 03:48 UTC

    One of the major problems with checking for "same post from same user" is that you have not taken into account anonymous monks. I wrote* a bulletin board (in Perl, naturally) and this is how I determine whether a post is a duplicate: if the previous post has the same title, and is from the same IP, it is marked as a duplicate and the person is encouraged to change the title if, indeed, they want to post it and it is not a duplicate.

    This approach may not be ideal here, in a place where new posts can appear very quickly, but it's one way to do it. For this site, I think that using a combination of lastnode_id, IP, and title would be best: if all three match, consider it a duplicate post, no matter how long it has been. Having the lastnode_id addresses Ozymandius' concern, as long as you reply to the person, and not to the top node (which is what you should do). Having the IP addresses the issue of 2 different anonymous monks being able to post replies to the same post, with the same title. As a final perk, you could have a simple "yes, I really want to post this" checkbox along with duplicate post message.

    In summary:

    $IP = $ENV{'REMOTE_ADDR'}; ## Yes, there are caveats here... $lastpost = $lastpost{$IP}; ## Stored in a database ## ($lastpost is a hashref) if ( $user eq $lastpost->{"USER"} and $Q::lastnode_id == $lastpost->{"LASTNODE"} and $Q::node eq $lastpost->{"NODE"} and !$Q::PostAnywayCheckbox ) { &DoubledPost; }

    *Wrote or "am writing"
    Perl scripts: artwork that never
    Assents to be done.

      That won't work well for a lot of corporate users. If someone uses a load balancer for outgoing posts then every post will come from an essentially random ID in some range.

      Instead lookup the last post on the user name. That should work much better for accidents (if not for spams).

        True, but most duplicate posts happen within a few seconds of each other, so it should work even for corporate users. More importantly, a lookup by user will not stop Anonymous Monks from double posting - hopefully, once you become a user, you are more aware of what you are doing and tend to make less mistakes. In reality, however, it seems as though registered users make double posts more often than AMs. Go figure.