Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 09-19-2008, 10:29 PM
Marco Marco is offline
 
Join Date: Nov 2001
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default vBulletin and datastore

Through a custom script (which runs outside of vBulletin), I am adding IP addresses to the vBulletin ban list. First I add it to the setting table, like so:

PHP Code:
$banlist mysql_fetch_array(mysql_query("SELECT value FROM setting WHERE varname = 'banip'"));
$addban $banip " " $banlist['value'];
$updatebanlist mysql_query("UPDATE setting SET value = '$addban' WHERE varname = 'banip'"); 
($banip is the IP address I am adding)

Because vBulletin also saves a cached copy of the options in the datastore table, I then refresh the options in the datastore like so:

PHP Code:
$q mysql_query("
    SELECT varname,value
    FROM setting"
);

while (
$setting mysql_fetch_array($q))
{
    
$newsetting[$setting['varname']] = $setting['value'];
}

$new_ds serialize($newsetting);

mysql_query("
    UPDATE datastore
    SET data = '
$new_ds'
    WHERE title = 'options'
"
); 
Up until recently (I have no idea what broke it), this was working great. Actually it still works; when I add an IP address, it gets added to the setting table, I can see it in the Admin CP - User Banning options and I can see through phpMyAdmin that it gets added to the datastore too. However, the IP ban still isn't effective until I manually save the User Banning options in the Admin CP.

This is driving me nuts and majorly pissing me off by now. Can anyone see what's wrong? I mean, the correct information is in the database, in both places ('setting' and 'datastore') yet vBulletin (3.7.3) doesn't seem to care. Is there maybe another place this information is cached?

(And no, I cannot use the build_options() function from vB, since I'm running a standalone script.)
Reply With Quote
  #2  
Old 09-20-2008, 03:10 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Are you using datastore_cache? It needs to get added into there also (I think - I'm a total n00b when it comes to datastore_cache).
Reply With Quote
  #3  
Old 09-20-2008, 08:55 AM
Marco Marco is offline
 
Join Date: Nov 2001
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

We are not, but your post did put me on the right track! It turns out we are using APC now (we upgraded to PHP5 a few days ago) and that was the culprit. I put the following code at the end of my "datastore-update" code:

PHP Code:
apc_delete("options");
apc_store("options"$new_ds); 
It works great now.
Reply With Quote
  #4  
Old 09-20-2008, 12:08 PM
oegis oegis is offline
 
Join Date: Sep 2008
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks.. very helpful
Reply With Quote
  #5  
Old 09-20-2008, 02:15 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Marco View Post
It works great now.
I'm glad I was able to trigger that lightbulb to go off in your head.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:51 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03595 seconds
  • Memory Usage 2,198KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete