Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 02-23-2012, 08:47 PM
PleaseHelp PleaseHelp is offline
 
Join Date: Jan 2012
Posts: 27
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Strange DB Error when integrating "global.php" in a live site. PLEASE HELP.

We are trying to integrate global.php file on a live site and are getting a very strange error.

This particular site works with classes (each page of the site is a class called by the index.php) and connects to its own Database, which is different to the vB Database.

The page where we want to integrate the forum is just another class (called "Forum") that gets called by the main index.php file of the site.

All we added to this "Forum" class was the line require_once('[vb dir]/global.php'); to test it. But when we run it on our live site, it echo's the standard vB Database error:

PHP Code:
mysql_connect(): Unknown MySQL server host '[database name]' (3)
[
site]/includes/class_core.php on line 315 
(We should add that the vB error page contains the HTML for a full page (with <html></html> tags and everything in between) even though it is being called within another page which has already opened the <html> and <body> tags.)

So we looked into class_core.php and have narrowed the error down to this line:

PHP Code:
$link $this->functions[$usepconnect 'pconnect' 'connect']("$servername:$port"$username$password); 
Now here is where it gets really strange.

We've edited that class_core.php file to do an echo of the following variables contained in that line:
  • $usepconnect
  • $servername
  • $port
  • $username
  • $password

What's strange is that it is echoing those values TWICE, which must mean require_once ('[vb dir]/global.php'); is calling that vB line / function two times (and we have no idea why). However, it only calls it twice when we are logged into our site, because if we are logged off, it only calls it once and no VB / Database error is produced. When we are logged-in and it calls it twice, the first time it gets called, all the values are correct, but the second time (lower in the page), they are wrong and seem to contain values from the main Database of the site and that's why it's producing a MySQL connection error. (To be clear, our "Forum" class is NOT getting called twice, not even when logged-in, so it's not that).

It gets stranger. We had the script echo the microtime() before and after global.php gets called in our "Forum" class, and before and after the line above gets executed within the class_core.php to see at what point that line is getting executed a second time and echoing that error. Well, that line is getting executed the second time several microseconds AFTER the microsecond that appears after global.php gets called in the "Forum" class, so how in the world is this line getting called a second time and AFTER global.php has already run?

This must be some kind of Database conflict with the live site, but we don't know how to isolate it or resolve it, nor do we know how to find out exactly what is causing this.

Can anyone please help us solve this mystery?

Thanks!
Reply With Quote
  #2  
Old 02-23-2012, 10:09 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I can't explain what you're seeing, but I have a couple of ideas. I believe it's possible to be sent a redirect when you include global.php, so maybe you're redirecting to one of the vb scripts (and that's responsile for the second call?). Another thing is that when you include global.php, your current directory has to be the vb forum directory or it won't work correctly (because some files are included by relative path). Also it's written to be included at the "global" level, so if you're including it inside a function things also won't work correctly unless you declare a number of variables to be global first (I wish I could tell you which ones, but I don't remember).

ETA: Here's a thread where we talked about the global issue before: https://vborg.vbsupport.ru/showthread.php?p=2270753
Reply With Quote
Reply


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 12:09 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03594 seconds
  • Memory Usage 2,174KB
  • Queries Executed 13 (?)
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
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)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_postinfo_query
  • fetch_postinfo
  • 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