Jump to content
MakeWebGames

Recommended Posts

Posted

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

Posted

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

Posted

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...