Itemshop

10/10/2010 19:46 rapido96#1
Hallo
Wenn ich in meinem Itemshopscript sachen kaufe kommen sie doppelt ins lager
Itemshop script:
PHP Code:
<h2>Itemshop</h2>
<?PHP

  
if(isset($_SESSION['user_admin']) && checkInt($_SESSION['user_admin']) && $_SESSION['user_admin']>=0) {
    if(isset(
$_GET['k']) && checkInt($_GET['k'])) {
      
$sqlCmdS="SELECT * FROM ".SQL_HP_DB.".is_items WHERE kategorie_id='".$_GET['k']."' ORDER BY id DESC";
    }
    else {
      
$sqlCmdS="SELECT * FROM ".SQL_HP_DB.".is_items ORDER BY id DESC";
    }
  
?>
  <div id="isleft">
    <table>
      <?PHP
        $sqlCmd 
"SELECT * FROM ".SQL_HP_DB.".is_kategorien ORDER BY titel ASC;";
        
$sqlQry mysql_query($sqlCmd,$sqlHp);
        
$step 1;
        while(
$getKats mysql_fetch_object($sqlQry)) {
          echo
'<td><a href="index.php?s=itemshop&k='.$getKats->id.'">'.$getKats->titel.'</a></td>';
          if (
$step == 6){
            echo
'<tr/>';
            
$step 1;
          }else{
            
$step += 1;
          }
        }
      
?>
    </table>
  </div>
  <div id="isright">
      <table>
    <?PHP
      $sqlQry
=mysql_query($sqlCmdS,$sqlHp);
      while(
$getItems=mysql_fetch_object($sqlQry)) {
        
$aktItem compareItems($getItems->vnum);
        
$itemStufe = (checkInt($aktItem['stufe'])) ? "+".$aktItem['stufe'] : '';
        
?>
        <tr>
          <th colspan="4" class="istop" id="istop"><?PHP echo $aktItem['item'].$itemStufe?> (<?PHP echo $getItems->preis?> Coins)</th>
        </tr>
        <tr class="ismiddel">
          <td class="isImg">
            <?PHP 
              
if(!empty($getItems->bild)) echo'<img src="./is_img/'.$getItems->bild.'" title="'.$aktItem['item'].'" alt="'.$aktItem['item'].'"/>';
              if(empty(
$getItems->bild)) echo'<img src="./img/none.gif" title="no_img" alt="no_img"/>';
            
?>
          </td>
          <td class="tdunkel"><?PHP echo $getItems->beschreibung?></td>
          <td class="iskaufen" align="center">
            <input type="button" value="Kaufen" name="submit" href="index.php?s=rankings" id="iskaufen" onClick="self.location.href='index.php?s=is_buy&id=<?PHP echo $getItems->id?>'"/>
            <!--<a id = "iskaufen" href="index.php?s=is_buy&id=<?PHP echo $getItems->id?>">Kaufen</a>-->
          </td>
        </tr>
        <tr>
            <th colspan="4" class="isfooter">&nbsp;</td>
        </tr>
        <?PHP
      
}
    
?>
      </table>
  </div>
  <?PHP
  
}
  else {
    echo
'<p class="meldung">Sie müssen für diesen Bereich angemeldet sein.</p>';
  }
?>
Itemshop_buy script :
PHP Code:
<?PHP

  
if(isset($_SESSION['user_admin']) && checkInt($_SESSION['user_admin']) && $_SESSION['user_admin']>=0) {
  
    if(isset(
$_GET['id']) && checkInt($_GET['id'])) {
    
      
$sqlCmd="SELECT vnum, preis, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, socket0, socket1, socket2 FROM ".SQL_HP_DB.".is_items WHERE id='".$_GET['id']."' LIMIT 1";
      
$sqlQry=mysql_query($sqlCmd,$sqlHp);
      if(
mysql_num_rows($sqlQry)==1) {
      
        
$getItem=mysql_fetch_object($sqlQry);
        if(
$_SESSION['user_coins']>=$getItem->preis) {
      
          
$getGroesse compareItems($getItem->vnum);
          
$belPos checkPos($_SESSION['user_id']);
          
$possiblePos findPos($belPos['islager'],$getGroesse['groesse']);
          if(!empty(
$possiblePos)) {
          
            
$sqlCmd="UPDATE account.account SET coins=coins-".$getItem->preis." WHERE id='".$_SESSION['user_id']."' LIMIT 1";
            
$sqlQry=mysql_query($sqlCmd,$sqlServ);
            
$sqlLog="INSERT INTO ".SQL_HP_DB.".is_log (account_id,vnum,preis,zeitpunkt) VALUES ('".$_SESSION['user_id']."','".$getItem->vnum."','".$getItem->preis."','".$sqlZeit."')";
            
$qryLog=mysql_query($sqlLog,$sqlHp);
            
$sqlItem="INSERT INTO player.item 
            (owner_id,window,pos,count,vnum,attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, socket0, socket1, socket2)
            VALUES 
            ('"
.$_SESSION['user_id']."','MALL','".$possiblePos[0]."','1','".$getItem->vnum."','".$getItem->attrtype0."', '".$getItem->attrvalue0."', '".$getItem->attrtype1."', '".$getItem->attrvalue1."', '".$getItem->attrtype2."', '".$getItem->attrvalue2."', '".$getItem->attrtype3."', '".$getItem->attrvalue3."', '".$getItem->attrtype4."', '".$getItem->attrvalue4."', '".$getItem->attrtype5."', '".$getItem->attrvalue5."', '".$getItem->attrtype6."', '".$getItem->attrvalue6."', '".$getItem->socket0."', '".$getItem->socket1."', '".$getItem->socket2."')";
            
$qryItem=mysql_query($sqlItem,$sqlServ) or die(mysql_error());
            echo
'<p class="meldung">Das item wurde erfolgreich gekauft. Sollte das Item nicht im Lager erscheinen, bitte umgehend bei einem Admin melden.</p>';
            
          }
          else {
            echo
'<p>Sie haben nicht genügend Platz in ihrem Itemshop-Lager. Ihr Guthaben wurde nicht verändert.</p>';
          }
          
        }
        else {
          echo
'<p class="meldung">Sie haben nicht genug Coins.</p>';
        }
      }
      else {
        echo
'<p class="meldung">Das angegebe Item existiert nicht.</p>';
      }
    }
    else {
      echo
'<p class="meldung">Es wurde keine gültige ID eingegeben.</p>';
    }
    echo
'<p><a href="javascript:history.back()">zurück</a></p>';
  }
  else {
    echo
'<p class="meldung">Sie müssen für diesen Bereich angemeldet sein.</p>';
  }
?>
Würde mich über hilfe freuen :)
10/12/2010 00:05 #SoNiice#2
PHP Code:
<?PHP

if(isset($_SESSION['user_admin']) && checkInt($_SESSION['user_admin']) && $_SESSION['user_admin']>=0) {


if(isset(
$_GET['id']) && checkInt($_GET['id'])) {


$sqlCmd="SELECT vnum, preis, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, socket0, socket1, socket2 FROM ".SQL_HP_DB.".is_items WHERE id='".$_GET['id']."' AND anzeigen='J' LIMIT 1";

$sqlQry=mysql_query($sqlCmd,$sqlHp);

if(
mysql_num_rows($sqlQry)==1) {


$getItem=mysql_fetch_object($sqlQry);


$sqlCoins "SELECT coins FROM account.account WHERE id='".mysql_real_escape_string($_SESSION['user_id'])."' LIMIT 1";

$qryCoins mysql_query($sqlCoins,$sqlServ);

$getCoins mysql_fetch_object($qryCoins);


if((
$getCoins->coins)>=$getItem->preis) {


$getGroesse compareItems($getItem->vnum);

$belPos checkPos($_SESSION['user_id']);

$possiblePos findPos($belPos['islager'],$getGroesse['groesse']);

if(!empty(
$possiblePos)) {


$nCoins $getCoins->coins-$getItem->preis;


$sqlCmd="UPDATE account.account SET coins='".mysql_real_escape_string($nCoins)."' WHERE id='".mysql_real_escape_string($_SESSION['user_id'])."' LIMIT 1";

$sqlQry=mysql_query($sqlCmd,$sqlServ);


$sqlLog="INSERT INTO ".SQL_HP_DB.".is_log (account_id,vnum,preis,zeitpunkt) VALUES ('".mysql_real_escape_string($_SESSION['user_id'])."','".$getItem->vnum."','".$getItem->preis."','".$sqlZeit."')";

$qryLog=mysql_query($sqlLog,$sqlHp);


$sqlItem="INSERT INTO player.item 

(owner_id,window,pos,count,vnum,attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6, socket0, socket1, socket2)

VALUES 

('"
.mysql_real_escape_string($_SESSION['user_id'])."','MALL','".$possiblePos[0]."','1','".$getItem->vnum."','".$getItem->attrtype0."', '".$getItem->attrvalue0."', '".$getItem->attrtype1."', '".$getItem->attrvalue1."', '".$getItem->attrtype2."', '".$getItem->attrvalue2."', '".$getItem->attrtype3."', '".$getItem->attrvalue3."', '".$getItem->attrtype4."', '".$getItem->attrvalue4."', '".$getItem->attrtype5."', '".$getItem->attrvalue5."', '".$getItem->attrtype6."', '".$getItem->attrvalue6."', '".$getItem->socket0."', '".$getItem->socket1."', '".$getItem->socket2."')";

$qryItem=mysql_query($sqlItem,$sqlServ) or die(mysql_error());


echo
'<p class="green">Das item wurde erfolgreich gekauft. Sollte das Item nicht im Lager erscheinen, bitte umgehend bei einem Admin melden.</p>';


}

else {

echo
'<p class="red">Sie haben nicht genügend Platz in ihrem Itemshop-Lager. Ihr Guthaben wurde nicht verändert.</p>';

}


}

else {

echo
'<p class="red">Sie haben nicht genug Coins.</p>';

}

}

else {

echo
'<p class="red">Das angegebe Item existiert nicht.</p>';

}

}

else {

echo
'<p class="red">Es wurde keine gültige ID eingegeben.</p>';

}

echo
'<p><a href="javascript:history.back()">Zurück</a></p>';

}

else {

echo
'<p class="red">Sie müssen für diesen Bereich angemeldet sein.</p>';

}

?>
2 Bugs aufeinmal gefixxt ;O
10/13/2010 00:44 rapido96#3
Leider bekomme ich durch .SoNiice#´s script kein item mehr ins lager !