View Single Post
  #33  
Old 09-20-2002, 07:50 AM
crazza's Avatar
crazza crazza is offline
 
Join Date: Sep 2002
Location: The Lowlands
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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\");");
}


Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02317 seconds
  • Memory Usage 1,769KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete