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 03-06-2004, 10:15 AM
burnist's Avatar
burnist burnist is offline
 
Join Date: Jul 2003
Location: Ireland
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default some help with code please !!

Okay, I need some help with this code block. It worked fine on vb2 and now i've upgraded to vb3 it dosn't and im not shure if i missed anything else that needs changed. It is my own version of an itemshop. It takes the users money from the profile field, the cost of the item from the item table then subtracts the cost. Next it pulls the users current item puts a space then the item's id so str replace can be used not to limit the number of items a user can have.

PHP Code:
 if ($action == "buy"){
  
$item $_GET['item'];
  
$itemquery $DB_site->query("SELECT * FROM items WHERE id = '".$item."' ");
  
$iteminfo $DB_site->fetch_array($itemquery);
  if ((
$bbuserinfo["field5"] >= $iteminfo["price"])) {
    
$newmoney = ($bbuserinfo["field5"]-$iteminfo["price"]);
    
$newitems $bbuserinfo['items']." ".$item;
    
$DB_site->query("UPDATE userfield SET field5 = '".$newmoney."' WHERE userid = '".$bbuserinfo['userid']."';");
    
$DB_site->query("UPDATE user SET items = '".$newitems."' WHERE userid = '".$bbuserinfo['userid']."';");
    
$url "shop.php?action=thanks";
    eval(
print_standard_redirect('itemshop_purchaseokay'));
  } else 
eval(
print_standard_error('itemshop_notenough'));

It dosn't produce any parse errors or sql errors either so that all I can tell you about it.
Reply With Quote
  #2  
Old 03-06-2004, 11:59 AM
Xenon's Avatar
Xenon Xenon is offline
 
Join Date: Oct 2001
Location: Bavaria
Posts: 12,878
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

replace $action with $_REQUEST['action']
Reply With Quote
  #3  
Old 03-06-2004, 12:47 PM
burnist's Avatar
burnist burnist is offline
 
Join Date: Jul 2003
Location: Ireland
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

it still didn't work.

Heres the whole file just incase there is something in it thats causing the problem and not just in that section
PHP Code:
<?php


// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('GET_EDIT_TEMPLATES'true);
define('THIS_SCRIPT''shop');

$globaltemplates = array(
'itemshop_chocoboitemhead',
'itemshop_canbuy',
'itemshop_chocoboitembit',
'itemshop_home',
'itemshop_purchaseokay',
'itemshop_notenough'
);

require(
"./global.php");
$show $_GET['show'];


//////////////////display chocobo items///////////////
if (($show]  == "chocobo") OR ($show == "")) {
  
$iteminfo $DB_site->query("SELECT * FROM items WHERE itemtype = 'chocobo' ORDER BY 'id' ASC ");

  eval(
"\$chocoboitemhead .= \"".fetch_template("itemshop_chocoboitemhead")."\";");
  while (
$item $DB_site->fetch_array($iteminfo)){
    if (
$item["itemtype"] == "chocobo") {
      eval(
"\$canbuy .= \"".fetch_template("itemshop_canbuy")."\";");
      eval(
"\$itembits .= \"".fetch_template("itemshop_chocoboitembit")."\";");
    }
  }
  eval(
"print_output(\"".fetch_template("itemshop_home")."\");");
}


//////////////////pay for items///////////////
if ($_REQUEST['action'] == "buy"){
  
$item $_REQUEST['item'];
  
$itemquery $DB_site->query("SELECT * FROM items WHERE id = '".$item."' ");
  
$iteminfo $DB_site->fetch_array($itemquery);
  if ((
$bbuserinfo["field5"] >= $iteminfo["price"])) {
    
$newmoney = ($bbuserinfo["field5"]-$iteminfo["price"]);
    
$newitems $bbuserinfo['items']." ".$item;
    
$DB_site->query("UPDATE userfield SET field5 = '".$newmoney."' WHERE userid = '".$bbuserinfo['userid']."';");
    
$DB_site->query("UPDATE user SET items = '".$newitems."' WHERE userid = '".$bbuserinfo['userid']."';");
    
$url "shop.php?action=thanks";
    eval(
print_standard_redirect('itemshop_purchaseokay'));
  } else 
eval(
print_standard_error('itemshop_notenough'));
}
?>
Reply With Quote
  #4  
Old 03-06-2004, 12:51 PM
assassingod's Avatar
assassingod assassingod is offline
 
Join Date: Jul 2002
Posts: 3,337
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try using:
PHP Code:
if($HTTP_POST_VARS['action']=="buy"
Reply With Quote
  #5  
Old 03-06-2004, 12:58 PM
burnist's Avatar
burnist burnist is offline
 
Join Date: Jul 2003
Location: Ireland
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

still getting nothing in either table
Reply With Quote
  #6  
Old 03-06-2004, 04:06 PM
Xenon's Avatar
Xenon Xenon is offline
 
Join Date: Oct 2001
Location: Bavaria
Posts: 12,878
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

are you sure your templates are correct an the action value is set up?
Reply With Quote
  #7  
Old 03-06-2004, 04:32 PM
burnist's Avatar
burnist burnist is offline
 
Join Date: Jul 2003
Location: Ireland
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

it worked fine on vb 2 and i didn't change anything in it except the template calls and as far as i know, those are working okay expect for the final redirect, which you wouldn't get because its in the action == buy section. Its probobly some simple variable that i've missed or something when changing it to vb3 but i can see what it is
Reply With Quote
  #8  
Old 03-06-2004, 06:55 PM
AN-net's Avatar
AN-net AN-net is offline
 
Join Date: Dec 2003
Location: AnimationTalk.com
Posts: 2,367
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

to make the if statement work right anyways it shouldnt be this:
PHP Code:
  } else 
eval(
print_standard_error('itemshop_notenough')); 

?> 
it should be:
PHP Code:
  
else{
eval(
print_standard_error('itemshop_notenough')); 

?> 
Reply With Quote
  #9  
Old 03-06-2004, 08:31 PM
mr e's Avatar
mr e mr e is offline
 
Join Date: Dec 2001
Posts: 461
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't know if this changes anything, but is this supposed to have the ']' in it?
PHP Code:
if (($show]  == "chocobo") OR ($show == "")) { 
shouldn't it be
PHP Code:
if (($show  == "chocobo") OR ($show == "")) { 
Reply With Quote
  #10  
Old 03-07-2004, 08:05 AM
burnist's Avatar
burnist burnist is offline
 
Join Date: Jul 2003
Location: Ireland
Posts: 72
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

okay, at mr e that was an error that got in while moving the file into the php tag on here somehow. and at AN NET it had no effect but, if that was the case the file would have parse errored wouldn't it :S ?
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 02:50 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.04655 seconds
  • Memory Usage 2,285KB
  • 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
  • (7)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (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_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