Snatchy Posted June 21, 2007 Posted June 21, 2007 ok is what is happening is when someone buys something from a shop it allows the user to buy as many of whatever and go into negative values of money and crystals. i need the itembuy to not let them buy anyhting if they don't have enough money or crystals on hand. this is what i have at the moment. <?php /*----------------------------------------------------- -- Mono Country v1.0 BETA -- A product of DBS-entertainment -- Copyright held 2005 by Dabomstew -- INDEX.php -----------------------------------------------------*/ session_start(); require "global_func.php"; if($_SESSION['loggedin']==0) { header("Location: login.php");exit; } $userid=$_SESSION['userid']; require "header.php"; $h = new headers; $h->startheaders(); include "mysql.php"; global $c; $is=mysql_query("SELECT u.*,us.* FROM users u LEFT JOIN userstats us ON u.userid=us.userid WHERE u.userid=$userid",$c) or die(mysql_error()); $ir=mysql_fetch_array($is); check_level(); $fm=money_formatter($ir['money']); $cm=money_formatter($ir['crystals'],''); $lv=date('F j, Y, g:i a',$ir['laston']); $h->userdata($ir,$lv,$fm,$cm); $h->menuarea(); $_GET['ID']= abs((int) $_GET['ID']); $_POST['qty']= abs((int) $_POST['qty']); if(!$_GET['ID'] || !$_POST['qty']) { print "Invalid use of file"; } else if($_POST['qty'] <= 0) { print "You have been added to the delete list for trying to cheat the game."; } else { $q=mysql_query("SELECT * FROM items WHERE itmid={$_GET['ID']}",$c); if(mysql_num_rows($q) == 0) { print "Invalid item ID"; } else { $itemd=mysql_fetch_array($q); if($ir['money'] < $itemd['itmbuyprice']*$_POST['qty']) //$itemn=mysql_fetch_array($q); //if($ir['crystals'] < $itemn['itmnugbuy']*$_POST['qty']) { print "You don't have enough money or nuggets to buy this item!"; } else //$h->endpage(); //exit; { $itemd=mysql_fetch_array($q); if($ir['crystals'] < $itemd['itmnugbuy']*$_POST['qty']) { print "You don't have enough nuggets to buy this item!"; $h->endpage(); exit; } if($itemd['itmbuyable'] == 0) { print "This item can't be bought!"; $h->endpage(); exit; } } $price=($itemd['itmbuyprice']*$_POST['qty']); $pricen=($itemd['itmnugbuy']*$_POST['qty']); mysql_query("INSERT INTO inventory VALUES('',{$_GET['ID']},$userid,{$_POST['qty']});",$c); mysql_query("UPDATE users SET money=money-$price WHERE userid=$userid",$c); mysql_query("UPDATE users SET crystals=crystals-$pricen WHERE userid=$userid",$c); mysql_query("INSERT INTO itembuylogs VALUES ('', $userid, {$_GET['ID']}, $price, {$_POST['qty']}, unix_timestamp(), '{$ir['username']} bought {$_POST['qty']} {$itemd['itmname']}(s) for {$price}')", $c); { print "You bought {$_POST['qty']} {$itemd['itmname']}(s) for \$$price and $pricen Nuggets"; } } } $h->endpage(); ?> i hope someone can shed some light on the problem. Cheers Snatchy Quote
krownx Posted June 21, 2007 Posted June 21, 2007 Re: itembuy.php what was happening is that it would print the "you dont have enough money" and then finish through the script... what you need is to stop the script there... here is the edit: <?php /*----------------------------------------------------- -- Mono Country v1.0 BETA -- A product of DBS-entertainment -- Copyright held 2005 by Dabomstew -- INDEX.php -----------------------------------------------------*/ session_start(); require "global_func.php"; if($_SESSION['loggedin']==0) { header("Location: login.php");exit; } $userid=$_SESSION['userid']; require "header.php"; $h = new headers; $h->startheaders(); include "mysql.php"; global $c; $is=mysql_query("SELECT u.*,us.* FROM users u LEFT JOIN userstats us ON u.userid=us.userid WHERE u.userid=$userid",$c) or die(mysql_error()); $ir=mysql_fetch_array($is); check_level(); $fm=money_formatter($ir['money']); $cm=money_formatter($ir['crystals'],''); $lv=date('F j, Y, g:i a',$ir['laston']); $h->userdata($ir,$lv,$fm,$cm); $h->menuarea(); $_GET['ID']= abs((int) $_GET['ID']); $_POST['qty']= abs((int) $_POST['qty']); if(!$_GET['ID'] || !$_POST['qty']) { print "Invalid use of file"; } else if($_POST['qty'] <= 0) { print "You have been added to the delete list for trying to cheat the game."; } else { $q=mysql_query("SELECT * FROM items WHERE itmid={$_GET['ID']}",$c); if(mysql_num_rows($q) == 0) { print "Invalid item ID"; } else { $itemd=mysql_fetch_array($q); $totalm = ($itemd['itmbuyprice']*$_POST['qty']); $itemn=mysql_fetch_array($q); $totaln = ($itemn['itmnugbuy']*$_POST['qty']); if($ir['money'] < $totalm) { print("You don't have enough money to buy this item!"); $h->endpage(); exit; } if($ir['crystals'] < $totaln) { print("You don't have enough nuggets to buy this item!"); $h->endpage(); exit; } else { $itemd=mysql_fetch_array($q); if($ir['crystals'] < $itemd['itmnugbuy']*$_POST['qty']) { print "You don't have enough nuggets to buy this item!"; $h->endpage(); exit; } if($itemd['itmbuyable'] == 0) { print "This item can't be bought!"; $h->endpage(); exit; } } $price=($itemd['itmbuyprice']*$_POST['qty']); $pricen=($itemd['itmnugbuy']*$_POST['qty']); mysql_query("INSERT INTO inventory VALUES('',{$_GET['ID']},$userid,{$_POST['qty']});",$c); mysql_query("UPDATE users SET money=money-$price WHERE userid=$userid",$c); mysql_query("UPDATE users SET crystals=crystals-$pricen WHERE userid=$userid",$c); mysql_query("INSERT INTO itembuylogs VALUES ('', $userid, {$_GET['ID']}, $price, {$_POST['qty']}, unix_timestamp(), '{$ir['username']} bought {$_POST['qty']} {$itemd['itmname']}(s) for {$price}')", $c); { print "You bought {$_POST['qty']} {$itemd['itmname']}(s) for \$$price and $pricen Nuggets"; } } } $h->endpage(); ?> Hope this helps! I also re-enabled the nuggets Quote
Snatchy Posted June 26, 2007 Author Posted June 26, 2007 Re: itembuy.php thanks for the help in fixing this but it's still not quite right. it stops you from buying stuff when you havn't got enough money or crystals on hand but when you have enough to buy something it comes up as this item can not be bought. Quote
Snatchy Posted June 26, 2007 Author Posted June 26, 2007 Re: itembuy.php i really can't figure this out, it jsut keeps coming up with this item can't be bought... please help Quote
Snatchy Posted June 27, 2007 Author Posted June 27, 2007 Re: itembuy.php it's ok i have had it fixed. Quote
~Spooky~ Posted June 27, 2007 Posted June 27, 2007 Re: itembuy.php the item always has to be 1 in DB to be buyable. Quote
krownx Posted June 28, 2007 Posted June 28, 2007 Re: itembuy.php Im glad I could be of some help! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.