Forum Moderators: coopster
I'm building a website at the moment. It's a RPG Game which uses MySQL and PHP.
I'm having some trouble getting a certain thing to work. Basically, a user can buy "credits" from the website - that works. When they buy credits, the MySQL code inputs how many credits they bought into that usernames table in the database. The user can then choose what to buy with these credits, in this game they have the option to buy metal and crystal.
So I made a form, with MySQL querys telling the database to "deduct" a certain amount of credits depending on what the user buys. Now, when I go to this page in my internet browser, and pick for example, metal for 100 credits, it doesn't deduct any credits and it doesn't give any errors. It just looks like the page refreshes. I have tried so many things but can't seem to get it working. I'd appreciate if someone could help me out. Many thanks!
Here is the code:
<?
define('INSIDE' , true);
define('INSTALL' , false);
$ugamela_root_path = './';
include($ugamela_root_path . 'extension.inc');
include($ugamela_root_path . 'common.' . $phpEx);
$planetrow = doquery("SELECT * FROM {{table}} WHERE id={$user['current_planet']}",'planets',true);
$galaxyrow = doquery("SELECT * FROM {{table}} WHERE id_planet={$planetrow['id']}",'galaxy',true);
$dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];
//Bovenstaande moet in ieder admin script worden geplaatst.
#
$select = mysql_query("SELECT * FROM `game_planets`");
#
$page = mysql_fetch_object($select);
$login=$user['name'];
?>
<link rel="stylesheet" type="text/css" href="skins/basic/formate.css">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script language="JavaScript">
function f(target_url,win_name) {
var new_win = window.open(target_url,win_name,'resizable=yes,scrollbars=yes,menubar=no,toolbar=no,width=550,height=280,top=0,left=0');
new_win.focus();
}
</script>
</head>
<body >
<BR><BR>
<table width="441" align="center" border=1>
</td></tr>
</table>
<?php
if($user['belcredits'] < 0){
echo " <tr><td class=\"mainTxt\" align=\"center\"><font color=red><b><center>eRRoR</b></center></font></td></tr>";
mysql_query("UPDATE game_planets SET `belcredits`=0 WHERE username = '" . $login . "' LIMIT 1") or die(mysql_error());
exit;
}
?>
<link rel="stylesheet" type="text/css" href="skins/basic/formate.css">
<form method="post" action="creditshop.php" name="f">
<table width="441" align="center"><BR><BR>
<tr><td class=subTitle colspan=3><b>Buy VIP Options</b></td></tr>
<tr><td class=mainTxt>
<tr>
<td class=subTitle width=20> #</td><td class=subTitle width="208"><b>Options</b></td>
<td class=subTitle width="199">
<b>Credits</b></td>
</tr>
<tr>
</tr>
<tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="metaal"></td>
<td class=mainTxt width="208">+20.000 Metal</td><td class=mainTxt width="199">50 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="crystal"></td>
<td class=mainTxt width="208">+20.000 Crystal</td><td class=mainTxt width="199">60 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="deuterium"></td>
<td class=mainTxt width="208">+20.000 Deuterium</td><td class=mainTxt width="199">60 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="heavyhunter"></td>
<td class=mainTxt width="208">+5 Heavy Hunters<font color=red><b></b></font></td><td class=mainTxt width="199">75 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="biglaser"></td>
<td class=mainTxt width="208">+5 Big Lasers<font color=red><b></b></font></td><td class=mainTxt width="199">75 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="solar_plant"></td>
<td class=mainTxt width="208">Upgrade Solar Plant Level<font color=red><b></b></font></td><td class=mainTxt width="199">60 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="lab"></td>
<td class=mainTxt width="208">Upgrade Laboratorium Level<font color=red><b></b></font></td><td class=mainTxt width="199">100 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="fusion_plant"></td>
<td class=mainTxt width="208">Upgrade Fusion Plant Level<font color=red><b></b></font></td><td class=mainTxt width="199">100 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="hangar"></td>
<td class=mainTxt width="208">Upgrade Hangar Level<font color=red><b></b></font></td><td class=mainTxt width="199">100 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="silo"></td>
<td class=mainTxt width="208">Upgrade Rocket Silo Level<font color=red><b></b></font></td><td class=mainTxt width="199">100 Credits</td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=gebruik value="big_protection_shield"></td>
<td class=mainTxt width="208">Buy Big Protection Shield<font color=red><b></b></font></td><td class=mainTxt width="199">200 Credits</td>
</tr>
<link rel="stylesheet" type="text/css" href="skins/basic/formate.css">
<tr>
<table width="441" align="center">
<td colspan=2 class=mainTxt><BR><b>Total VIP Credits:</b><?php echo $page->belcredits; ?></td>
<td align=right class=mainTxt width="199"><BR>
<p align="left"><input type="text" value="1" size=3 name="bieden" maxlength=2>x
<input type="submit" value="Buy" name="submit">
</tr></td>
<?
$planetrow = doquery("SELECT * FROM {{table}} WHERE id={$user['current_planet']}",'planets',true);
$galaxyrow = doquery("SELECT * FROM {{table}} WHERE id_planet={$planetrow['id']}",'galaxy',true);
?>
<?php
$select = mysql_query("SELECT * FROM `game_planets`");
$page = mysql_fetch_object($select);
?>
<?PHP
if (isset($_POST['gebruik'])) {
$aantal = htmlspecialchars(addslashes($_POST['bieden']));
$aantal = substr($aantal,0,2);
if(!is_numeric($aantal)){
echo 'Ongeldige invoer';
exit;
}
if($gebruik == "crystal") {
$gebruik=htmlspecialchars(addslashes($_POST['gebruik']));
$kost = 60; //per aantal
$kosttotaal = $kost*$aantal; // totale kost
$wat = 20000; // hoeveel krijg je per keer
$krijgen = $wat*$aantal; // totaal aantal dat men krijgt
}
if($kosttotaal > $page->belcredits){
print " <tr><td class=\"mainTxt\" align=\"center\">You dont have enough credits. Buy some new one first</td></tr>\n";
exit;
}
if($aantal ==0) {
print " <tr><td class=\"mainTxt\" align=\"center\">Chose more then 0...</td></tr>\n";
exit;
}
if($aantal > 100) {
print " <tr><td class=\"mainTxt\" align=\"center\">Maximum 100 each time!</td></tr>\n";
exit;
}
if($aantal < 0) {
print " <tr><td class=\"mainTxt\" align=\"center\">Minimum 1 each time</td></tr>\n";
exit;
}
if($gebruik == "crystal") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `crystal`=`crystal`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." crystal</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "metaal") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `metal`=`metal`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." metal</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "deuterium") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `deuterium`=`deuterium`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." deuterium</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "hangar") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `ally_deposit`=`ally_deposit`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." hangar</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "silo") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `silo`=`silo`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." silo</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "big_protection_shield") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `big_protection_shield`=`big_protection_shield`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." Big Protection Shield</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "energie") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `energy_max`=`energy_max`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." Energie</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "lab") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `laboratory`=`laboratory`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." laboratorium</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "heavyhunter") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `heavy_hunter`=`heavy_hunter`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." Heavy Hunters</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "biglaser") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `big_laser`=`big_laser`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." Big Lasera</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "solar_plant") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `solar_plant`=`solar_plant`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." Solar Plants</b> <b>$aantal</b> times <br></td></tr>\n";
}
if($gebruik == "fusion_plant") {
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'");
mysql_query("UPDATE `game_planets` SET `fusion_plant`=`fusion_plant`+'$krijgen' WHERE `name`='$login'");
print " <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$wat." Fusion Plants</b> <b>$aantal</b> times <br></td></tr>\n";
};
include("config.php");
//mysql_query("INSERT INTO `[bestellingen]` ( `login` , `datum`, `ip` , `gameid`, `belcredits`, `wat`, `aantal`) VALUES ('$data->login', NOW(), '{$_SERVER['REMOTE_ADDR']}', '{$gameid}', '{$kosttotaal}', '{$gebruik}', '{$aantal}')") or die(mysql_error());
}
exit;
?>
mysql_query("UPDATE `game_planets` SET `belcredits`=`belcredits`-'$kosttotaal' WHERE `name`='$login'") or [url=http://www.php.net/die]die[/url]([url=http://www.php.net/mysql-error]mysql_error[/url]());
You might also want to echo the query to the browser to see if it's being constructed correctly.