Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 02-08-2005, 08:52 AM
Killkenny Killkenny is offline
 
Join Date: Sep 2004
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Calling in a external database query

Hi,

I'm really new to PHP so I'm sorry if any of these questions are really dumb.

I am trying to check weather people registering on my site are part of my current database. So what I have done is the following:

1. I have added two fields to the registration template. User ID number and User Membership number.

2. I have added the following code to register.php:

PHP Code:
    // Custom check for membership
    
require_once('./includes/functions_membership.php');
    if (!
check_membership($_POST['memberid'], $_POST['membernumber']))
    {
        
$errors[991] = "Invalid membership information given, please check.";
    } 
3. I then created a file called functions_membership.php. And put the following code in it... (I'm pretty sure this is where you will all start laughing at me )

PHP Code:
<?php
error_reporting
(E_ALL & ~E_NOTICE);

function 
check_membership($membershipID$membershipnumber)
{

   
$SAIMClink mysql_connect"localhost""myUsername""myPassword" );
   if ( ! 
$SAIMClink ) {
      die ( 
"Couldn't connect to MySQL: ".mysqlerror() );
   }

   
mysql_select_db"saimc"$SAIMClink )
      or die ( 
"Couldn't connect to MySQL: ".mysqlerror() );

   
$result mysql_query "SELECT name FROM users WHERE ID = '$membershipID' AND certificateNumber = 'membershipnumber'" );
   
$num_rows mysql_num_rows$result );


   
$i=0;
   while (
$i $num_rows) {
      
$NameExists mysql_result $result$i"name" );
      
$i++;
   }
    
mysql_close$SAIMClink );
    
    if (
$NameExists != ""){
       return 
true;
    }else{
       return 
false;
    }
    
}

?>
When I try to go through the registration process I get the following errors:

Warning: mysql_query(): 1 is not a valid MySQL-Link resource in /includes/db_mysql.php on line 212

Warning: mysql_error(): 1 is not a valid MySQL-Link resource in /includes/db_mysql.php on line 357

Warning: mysql_errno(): 1 is not a valid MySQL-Link resource in /includes/db_mysql.php on line 358

There seems to have been a slight problem with the BB Test Forum Database.
Please try again by pressing the refresh button in your browser.

An E-Mail has been dispatched to our Technical Staff, who you can also contact if the problem persists.

We apologise for any inconvenience.

Warning: mysql_query(): 1 is not a valid MySQL-Link resource in /includes/db_mysql.php on line 212

Warning: mysql_error(): 1 is not a valid MySQL-Link resource in /includes/db_mysql.php on line 357

Warning: mysql_errno(): 1 is not a valid MySQL-Link resource in /includes/db_mysql.php on line 358

Any ideas where I might be going wrong?
Reply With Quote
  #2  
Old 02-08-2005, 09:06 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't see hwere you go wrong right now.

Nut please remove your license number from the php code.

PS Are you sure that thise code snippet is causing it?
Reply With Quote
  #3  
Old 02-08-2005, 09:08 AM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

@Killkenny
Please do not post files that contain your license number, as this violates the license agreement and our rules.
Thank you.
Reply With Quote
  #4  
Old 02-08-2005, 09:14 AM
Killkenny Killkenny is offline
 
Join Date: Sep 2004
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by KirbyDE
@Killkenny
Please do not post files that contain your license number, as this violates the license agreement and our rules.
Thank you.
Sorry about the license number... My bad! Won't happen again.

I can't see what else the problem could be.

I removed the code in the register.php file and the registration went through fine...

Any ideas?
Reply With Quote
  #5  
Old 02-08-2005, 09:21 AM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Do you use the same username/password for the other database as for vBulletin?
Then this is the problem:
The code in check_membership will use the current connection (for vBulletin) - but you close the connection, so it won't be available in vBulletin any longer after the call.

Try
PHP Code:
$SAIMClink mysql_connect"localhost""myUsername""myPassword"true ); 
This should create a new link, even if user/password are the same.

Another approach would be to use vBulletins DB-Class, and change the DB upon call end return.

Or use a different user/password.
Reply With Quote
  #6  
Old 02-08-2005, 10:08 AM
Killkenny Killkenny is offline
 
Join Date: Sep 2004
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by KirbyDE
Do you use the same username/password for the other database as for vBulletin?
Then this is the problem:
The code in check_membership will use the current connection (for vBulletin) - but you close the connection, so it won't be available in vBulletin any longer after the call.

Try
PHP Code:
$SAIMClink mysql_connect"localhost""myUsername""myPassword"true ); 
This should create a new link, even if user/password are the same.

Another approach would be to use vBulletins DB-Class, and change the DB upon call end return.

Or use a different user/password.
Alright. After a whole lot of testing and changing of code I found out that:

PHP Code:
// Custom check for membership
    
require_once('./includes/functions_membership.php');
    if (!
check_membership($_POST['memberid'], $_POST['membernumber']))
    {
        
$errors[991] = "Invalid membership information given, please check.";
    } 
Should in fact be:

PHP Code:
// Custom check for membership
    
require_once('./includes/functions_membership.php');
    if (
check_membership($_POST['memberid'], $_POST['membernumber']))
    {
        
$errors[991] = "Invalid membership information given, please check.";
    } 
I removed the "!" at the begining of the function, if you didn't catch it.

However it was the username and password stuff that was stopping me from accessing the DB. So thanks SO much for your help. I would never had guessed that was the problem!

So I'm sorted and happy and my programme is working great and all is right with the world!

Again thanks for your help!
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 10:27 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.04421 seconds
  • Memory Usage 2,235KB
  • 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
  • (6)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)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