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
| [reply] |
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. | [reply] |
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.
| [reply] |
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.
| [reply] [d/l] |
| [reply] |
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.
| [reply] |