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

Reply
 
Thread Tools Display Modes
  #1  
Old 01-04-2005, 02:04 PM
Slybone Slybone is offline
 
Join Date: Sep 2003
Posts: 87
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help with this small script (MYSQL) (Help running a query)

Ok, I have this script made so when a user from outwar visits the script page it basically creates their account for them by inserting lines and what not into the SQL base... however I cannot get it to run this query
"$query="UPDATE user SET options=87 WHERE userid=$newid";"
its in BOLD in the code, so check where its placed and see if I did anything wrong... if anyone could help me get it to run that query I would be very thankful
-Slybone

Code:
<?

$password = $_GET['password'];
$newpassword = $_GET['newpassword'];
$newusername = $_GET['newusername'];
$level = $_GET['level'];
$hash = $_GET['hash'];
$newid = $_GET['newid'];
$srvid = $_GET['srvid'];

if($password<>"PASSWORD")
{
	echo "Invalid password";
	exit;
}	

$newid = addslashes($newid);

$hostname="localhost";
$db_username="username";
$db_password="PASSWORD";
$database="db";

$connection=MYSQL_CONNECT($hostname, $db_username, $db_password);

$thehash = md5($newusername . $newpassword . $level. "adgodaghaeoh1");
if($thehash!=$hash)
{
	echo "Hash Error";
	exit;
}





if($srvid==2) // Torax
{
        $newid = $newid + 100000000;
}
ELSE if($srvid==3) // Fabar
{
        $newid = $newid + 200000000;
}

$query="SELECT count(*) as c FROM user WHERE userid=$newid";
$query="UPDATE user SET options=87 WHERE userid=$newid";
$res1 = mysql_db_query($database, $query, $connection) or die ("Error in query: " . htmlentities($query) . " " . htmlentities(mysql_error($connection)));
$res = mysql_fetch_assoc($res1);

if(!$res[c]) //none
{
	$query="INSERT INTO user (userid, lastvisit, usertitle, usergroupid, username, password, passworddate, joindate, reputation, reputationlevelid, timezoneoffset, startofweek)
 	VALUES($newid, UNIX_TIMESTAMP(), 'Member', 2, '$newusername', '" . $newpassword . "', NOW(), UNIX_TIMESTAMP(), 10, 5, -5, 1)";
	mysql_db_query($database, $query, $connection) or die("Error");	

	$query="INSERT INTO userfield (userid)
 	VALUES($newid)";
	mysql_db_query($database, $query, $connection) or die ("Error in query: " . htmlentities($query) . " " . htmlentities(mysql_error($connection)));	

	$query="INSERT INTO usertextfield (userid)
 	VALUES($newid)";
	mysql_db_query($database, $query, $connection) or die ("Error in query: " . htmlentities($query) . " " . htmlentities(mysql_error($connection)));	

}
ELSE
{
		$query="UPDATE user SET username='" . addslashes($newusername) . "', password='" . addslashes($newpassword) . "' WHERE userid=$newid";
		mysql_db_query($database, $query, $connection) or die ("Error in query: " . htmlentities($query) . " " . htmlentities(mysql_error($connection)));
}

/*
if($level==1)
{ //Prefered Player      
	
	$query="SELECT usergroupid as c FROM user WHERE userid=$newid";
	$res1 = mysql_db_query($database, $query, $connection) or die ("Error in query: " . htmlentities($query) . " " . htmlentities(mysql_error($connection)));
	$res = mysql_fetch_assoc($res1);

	if($res[c]==2)
	{
		$query="UPDATE user SET usergroupid=10 WHERE userid=$newid";
		$query="UPDATE user SET options=87 WHERE userid=$newid";
		mysql_db_query($database, $query, $connection) or die ("Error in query: " . htmlentities($query) . " " . htmlentities(mysql_error($connection)));
	}
}
ELSE
{
                $query="UPDATE user SET usergroupid=2 WHERE userid=$newid";
		  $query="UPDATE user SET options=87 WHERE userid=$newid";
                mysql_db_query($database, $query, $connection) or die ("Error in query: " . htmlentities($query) . " " . htmlentities(mysql_error($connection)));
}
*/
Reply With Quote
  #2  
Old 01-04-2005, 02:19 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hmm you first try to run a count query (you store it in $query) but that one is never executed because you overwrite the var immediate with the new update query.

Is this an old code where you're trying to add the UPDATE query?

And are you sure the query is not getting executed, or do you base that on teh fact you don't get the output you expect?
Reply With Quote
  #3  
Old 01-04-2005, 02:41 PM
rake's Avatar
rake rake is offline
 
Join Date: Nov 2002
Posts: 311
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

try using mysql_affected_rows to see if the query ran
Reply With Quote
  #4  
Old 01-04-2005, 02:56 PM
Slybone Slybone is offline
 
Join Date: Sep 2003
Posts: 87
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MarcoH64
Hmm you first try to run a count query (you store it in $query) but that one is never executed because you overwrite the var immediate with the new update query.

Is this an old code where you're trying to add the UPDATE query?

And are you sure the query is not getting executed, or do you base that on teh fact you don't get the output you expect?
I base it on the fact that the "options" dont get updated to 87 they stay at 15... ill give the count query a try thanks
Reply With Quote
  #5  
Old 01-04-2005, 03:21 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Maybe stupid question, but are you sure that $newid (or $newid + 100000000 (or 200000000)) already exist in the database when you execute this quesry. I notice that after the update you (condionally) insert a new user row with that userid.

And what is/was the purpose of that count above the update?
Reply With Quote
  #6  
Old 01-04-2005, 04:49 PM
Slybone Slybone is offline
 
Join Date: Sep 2003
Posts: 87
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Let me explain how our system works, you cannot register on the forums, the only way to get an account on the forums is to have an account on outwar, since outwar has 3 playing servers. www, torax, and fabar we need to change the way it gives people userID's & names
If a user on www has the username vBulletin and their ID is 5
and a user on Torax has the username vBulletin and their ID is 1
then It would end up having 2 different ID's but the same name, thus screwing the DB
or...if a user has the same ID but different names then it will just delete the old user
so users on the www server keep thier regular id
torax users get +100000000
and fabar users get +200000000
to stop this from happening, this hasnt caused any issues.
and to answer your first question im not sure if the table in users already exsits before it runs the query, It should...
Reply With Quote
  #7  
Old 01-04-2005, 06:19 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well you could quickly start checking by running the following manual query from ACP, before and after you run the script:
PHP Code:
select usernameoptions from user where userid=<userid
Replacing the <userid> by the userid you want to modify (maybe also run it for the 2 higher userids based on the other servers). See if and what output you get.

This would be the first to start working on a solution.
Reply With Quote
  #8  
Old 01-04-2005, 07:49 PM
Slybone Slybone is offline
 
Join Date: Sep 2003
Posts: 87
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Results: 1, Page 1 of 1
username options
torax_123kkk123 15

yes it does exsist
Reply With Quote
  #9  
Old 01-04-2005, 08:07 PM
rake's Avatar
rake rake is offline
 
Join Date: Nov 2002
Posts: 311
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

did you try what i told you? mysql_affected_rows to see if your update query worked or not?
Reply With Quote
  #10  
Old 01-04-2005, 08:23 PM
Slybone Slybone is offline
 
Join Date: Sep 2003
Posts: 87
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Actually rake, I can't say I know how to execute that code to check, sorry
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:39 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.04532 seconds
  • Memory Usage 2,267KB
  • 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
  • (1)bbcode_code
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete