Archiv verlassen und diese Seite im Standarddesign anzeigen : Check für Doppelpostings
Thomas P
24.10.2003, 21:16
Hallo,
ich habe die Anfrage schon mal bei vb.org gepostet, aber es kam dabei nichts passendes heraus.
Daher die Frage an Euch:
Gibt es einen Hack, der ähnlich wie in vb3 checkt, ob es sich bei einem posting um ein doppelposting handelt bzw. falls nicht, wie aufwendig wäre es sowas zu machen?
Bei uns nehmen Doppelpostings einfach überhand.
Danke,
-Tom
prinzipiell isses eigentlich nicht schwer, wenn du z.B in der newreply.php schaust, findest du diesen code:
// see if there has been a post identical to this in the last 5 mins. If so, update that one, as user has probably done a double post
$datecut=time()-300;
if ($prevpost=$DB_site->query_first("SELECT attachmentid,postid,visible FROM post WHERE threadid='$threadid' AND username='".addslashes($postusername)."' AND userid='$bbuserinfo[userid]' AND title='".addslashes(htmlspecialchars($title))."' AND dateline>$datecut AND pagetext='".addslashes($message)."'")) {
der überprüft ob derselbe post gerade schonmal gesendet wurde, aber halt eingeschränkt auf den thread.
wenn du "threadid='$threadid' AND " entfernst, dann prüft er nicht nur den thread, sondern alle threads, in denen ein identisches post vorkommt.
sollte als das erfüllen was du wolltest ;)
Man sollte aber bedenken, dass es zu Geschwindigkeitseinbußen kommen kann, wenn bei jedem neuen Beitrag alle Beiträge der letzten 5 Minuten auf ihren Inhalt überprüft werden. Je größer das Forum, desto größer die Belastung.
Thomas P
25.10.2003, 18:03
Danke, Xenon, werde das mal testen!
Vielleicht könnte man diesen check nur für user <10 Beiträge machen, den er kommt bei uns nur bei Newbies vor.
thx,
-Tom
pogo hat natürlich recht, wobei das beim newreply normalerweise nicht so sehr auffallen wird, wenn mans aber mit der 10 post hürde verbindet, isses kein problem mehr:
ich formatiere es jetzt mal sauberer:
if (($bbuserinfo['posts'] < 10 AND $prevpost = $DB_site->query_first("
SELECT attachmentid, postid, visible
FROM post
WHERE username = '" . addslashes($postusername) . "'
AND userid = '$bbuserinfo[userid]'
AND title = '" . addslashes(htmlspecialchars($title)) . "'
AND dateline > $datecut
AND pagetext = '" . addslashes($message) . "'"))
OR
($bbuserinfo['posts'] >= 10 AND $prevpost = $DB_site->query_first("
SELECT attachmentid, postid, visible
FROM post
WHERE threadid = '$threadid'
AND username = '" . addslashes($postusername) . "'
AND userid = '$bbuserinfo[userid]'
AND title = '" . addslashes(htmlspecialchars($title)) . "'
AND dateline > $datecut
AND pagetext = '" . addslashes($message) . "'"))
)
{
das sollte theoretisch gehn :)
Thomas P
27.10.2003, 13:00
Wow, Danke.
Werde das mal nachts checken.
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.