After checking the code four times, installing the hack on a brand spanking new installation of VBulletin 2.2.6 I discovered that I did nothing wrong in the first place.
Route 1.
When entering a thread by clicking the thread's title (e.g. ..../forums/showthread.php?s=&threadid=6055) the thread is only called by threadid.
After entering something in the QuickReply box AND clicking either close or open.. the exact same link will be called as stated above, thus showing you an 'old copy' of the page, without your new post.
Route 2.
When entering a thread by clicking the 'last post' button for this thread (e.g. ..../forums/showthread.php?s=&goto=lastpost&threadid=6055) a 'forced query' is run to determine what the actual lastpost is.
After entering something in the QRB and doing an open or close.. the exact same link will be called.. the same query will be run.. and voila.. there's your post.
Conclusion
Reloading the same page without running the extra query doesn't update correctly when closing or opening the thread. This can be fixed by forcing the reload to run the query (i.e. adding a 'lastpost' statement).
Code change
Only the php code for newreply.php needs to be altered in two places [around lines 308 and 450]
Old code:
Quote:
$threadinfo[notes]="Thread $action by $bbuserinfo[username] on ".vbdate($dateformat." ".$timeformat,time()).". $threadinfo[notes]";
$DB_site->query("UPDATE thread SET open=$threadinfo[open],notes='".addslashes($threadinfo[notes])."' WHERE threadid='$threadid'");
eval("standardredirect(\"".gettemplate("redirect_o penclose")."\",\"showthread.php?s=$session[sessionhash]&threadid=$threadid\");");
} else {
eval("standardredirect(\"".gettemplate("redirect_p ostthanks")."\",\"$goto\");");
}
|
New Code:
Quote:
$threadinfo[notes]="Thread $action by $bbuserinfo[username] on ".vbdate($dateformat." ".$timeformat,time()).". $threadinfo[notes]";
$DB_site->query("UPDATE thread SET open=$threadinfo[open],notes='".addslashes($threadinfo[notes])."' WHERE threadid='$threadid'");
$goto="showthread.php?s=&goto=lastpost&threadid=$t hreadid";
eval("standardredirect(\"".gettemplate("redirect_o penclose")."\",\"$goto\");");
} else {
eval("standardredirect(\"".gettemplate("redirect_p ostthanks")."\",\"$goto\");");
}
|