• Login
  • Register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Advanced
  1. Dé plek voor IT
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Unresolved Threads
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Members
    1. Users Online
    2. Team
    3. Search Members
  8. Downloads
  1. Dé plek voor IT
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Unresolved Threads
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Members
    1. Users Online
    2. Team
    3. Search Members
  8. Downloads
  1. Dé plek voor IT
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Unresolved Threads
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Members
    1. Users Online
    2. Team
    3. Search Members
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Herkent deze Notion-structuurscan echte problemen?

    FreelanceAP October 6, 2026 at 4:48 PM
  • 🚀 WE ZOEKEN TESTERS! 🚀

    Servertjee October 3, 2026 at 10:56 AM
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Syntax October 1, 2026 at 11:11 AM
  • Luchtvaartsoftware: Hoe technologie de moderne luchtvaart verandert

    saggy2829 September 30, 2026 at 7:31 PM
  • Hoe gebruiken jullie WhatsApp voor marketing en klantopvolging?

    aiqanobzfsej5 September 29, 2026 at 12:55 PM
  • [PROJECT] Gamekeuring.nl - Hét onafhankelijke keuringsplatform voor maffiagames & RPG's!

    frio September 22, 2026 at 4:40 PM
  • Ictscripters / Koen

    Aaron September 22, 2026 at 3:07 PM
  • Kweekrijk - van stekje tot Imperium

    Lijno September 14, 2026 at 11:00 PM

Marktplaats

  • Te koop: Port Father, afgewerkt online maffiaspel in PHP/MySQL, klaar voor de Play Store

    frio October 11, 2026 at 2:02 PM
  • [TE KOOP] Likeboost24.nl: complete SMM-webshop met eigen merk, volautomatische levering en betalen op de eigen pagina

    frio October 11, 2026 at 1:43 PM
  • Verschillende domeinen te koop (sommige hebben website / content)

    frio October 2, 2026 at 2:45 PM

Attack.php

  • Wotfnl
  • March 29, 2009 at 7:12 PM
  • Closed
  • Wotfnl
    Beginner
    Posts
    28
    • March 29, 2009 at 7:12 PM
    • #1

    Beste leden,

    Als je bij ons spel iemand aanvalt die bijv. 9 miljard contant hebt staan, kom je zelf in de min te staan als je hebt gewonnen. Weet iemand hoe dit komt? Wij snappen het niet.

    Hier de attack.php:


    PHP
    <?php /* ------------------------- */
    
    
      include("_include-config.php");
      if(! check_login()) {
        header("Location: login.php");
        exit;
      }
    
    
    
    
    $pagename = "Attack";
    include("counter.inc.php");
    
    
      mysql_query("UPDATE `[users]` SET `online`=NOW() WHERE `login`='{$data->login}'");
    
    
        if ($data->leven == 1){
        print <<<ENDHTML
    <html>
    
    
    
    
    <head>
    	<META HTTP-EQUIV="Page-Enter" content="blendTrans(Duration=0.5)">
    <title>War of the Future</title>
    <link rel="stylesheet" type="text/css" href="css.css">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
    
    
    </style></head>
      <table width=100%>
        <tr><td class="subTitle"><b>Sorry</b></td></tr>
        <tr><td class="mainTxt">
    	<center>Je bent geraakt, ga naar het ziekenhuis om je te laten behandelen!
    	</center>
        </td></tr>
      </table>
    </body>
    
    
    </html>
    ENDHTML;
        exit;
        }
    
    
    if($def->vermoord >10) 
    {
        print <<<ENDHTML
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base target="mainFrame" />
    <link rel="stylesheet" type="text/css" href="css-v1.css">
    </head>
    <table align="center" width=100%>
      <tr><td class="subTitle"><b>ZiekenHuis</b></td></tr>
      <tr><td class="mainTxt">
    	<center>
    <center><b>Je zit in het ziekenhuis</b><br><br>
    <b>Geen energie had je meer over! dus ben je met spoed naar het dichtbij zijnde ziekenhuis gebracht!
    Je moet ff wat energie weer kopem om ontslagen uit het ziekenhuis te worden!</b>
      </td></tr>
    </table>
    <table align="center" width=100%>
      <tr><td class="subTitle"><b>Niks te doen? Speel dan een Spelletje!</b></td></tr>
      <tr><td class="mainTxt">
    	<Input type="radio" value="xw" name="spel1" onClick="window.location=('games/neave_asteroids.php')">  Asteroids<br>
    	<Input type="radio" value="xw" name="spel2" onClick="window.location=('games/neave_hexxagon.php')">  Hexxagon<br>
    	<Input type="radio" value="xw" name="spel3" onClick="window.location=('games/neave_simon.php')">  Simon<br>
    	<Input type="radio" value="xw" name="spel4" onClick="window.location=('games/neave_snake.php')">  Snake<br>
    	<Input type="radio" value="xw" name="spel5" onClick="window.location=('games/neave_tetris.php')">  Tetris
    </td></tr></table>
    </body>
    
    
    </html>
    ENDHTML;
    exit;
      }
    
    
    
    
    
    
    /* ------------------------- */ ?>
    <html>
    
    
    
    
    <head>
    <title>Wotf.nl</title>
    <link rel="stylesheet" type="text/css" href="<?php echo ($_COOKIE['v'] == 2) ? "css-v2.css" : "css-v1.css"; ?>">
    
    
    </head>
    
    
    
    
    
    
    <table width=100%>
      <tr><td class="subTitle"><b><img src=/icons/bomb.png border= 0> Attack <img src=/icons/bomb.png border= 0></b></td></tr>
    <?php /* ------------------------- */
    
    
      if(round($data->signup/3600-time()/3600) + 12 <= 0) {
          $dbres				= mysql_query("SELECT `login`,UNIX_TIMESTAMP(`signup`) AS `signup`,`attack`,`defence`,`clicks`,`attlosses`,`attwins`,`deflosses`,`defwins`,`cash`,`type`,`clan` FROM `[users]` WHERE `login`='{$_GET['x']}' AND `activated`=1");
    
    
    $land                                        = Array("","Amsterdam","Almere","Utrecht","Hilversum","Assen","Tilburg","Rotterdam","Delft","Haarlem","Beverwijk","Venlo","Arnhem","Zwolle","Eindhoven");
    $land = $land[$data->land];
    
    
       
    if($def = mysql_fetch_object($dbres)) {
    if($def->login == $data->login)
            print "  <tr><td class="mainTxt">Je kan jezelf niet aanvallen!</td></tr>n";
    else if($def->type == 3 && $data->type == 3)
            print "  <tr><td class="mainTxt">Agenten mogen elkaar niet aanvallen</td></tr>n";
    else if($def->clan == $data->clan && $def->clan != "")
            print "  <tr><td class="mainTxt">Je zit in dezelfde squad als deze persoon. Dan kan je hem niet aanvallen</td></tr>n";
        else if($def->payprotection > 0 )
            print "  <tr><td class="mainTxt">{$def->login} heeft bescherming gekocht. </td></tr>n";
          else if(round($def->signup/3600-time()/3600) + 12 > 0)
            print "  <tr><td class="mainTxt">{$def->login} staat nog onder bescherming. </td></tr>n";
            else if ($data->vermoord == 0 && $def->vermoord == 24)
            print "  <tr><td class="mainTxt">{$def->login} staat nog onder bescherming. </td></tr>n";
          else {
            $dbres				= mysql_query("SELECT * FROM `[logs]` WHERE `login`='{$data->login}' AND `person`='{$def->login}' AND FLOOR(UNIX_TIMESTAMP(`time`)/(60*60*24))=FLOOR(UNIX_TIMESTAMP(NOW())/(60*60*24)) AND `area`='attack'");
            if(($numattacks = mysql_num_rows($dbres)+1) <= 300) {
              $dbres			= mysql_query("SELECT * FROM `[logs]` WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(`time`) < 10 AND `login`='{$data->login}' AND `area`='attack'");
              if(mysql_num_rows($dbres) == 0) {
                mysql_query("SELECT GET_LOCK('attack_{$def->login}',5)");
                $result			= (($data->attack+$data->clicks*5)*rand(90,115) >= ($def->defence+$def->clicks*5)*rand(90,115)) ? 1 : 0;
                $money			= ($result == 1) ? (int)($def->cash*rand(40,75)/100) : (int)($data->cash*rand(25,40)/100);
                $text			= ($result == 1) ? Array("je hebt gewonnen!","gewonnen") : Array("je verliest.","verloren");
    
    
                $forwardedFor		= ($_SERVER['HTTP_X_FORWARDED_FOR'] != "") ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['HTTP_CLIENT_IP'];
                $forwardedFor		= preg_replace('/, .+/','',$forwardedFor);
                mysql_query("INSERT INTO `[logs]`(`time`,`IP`,`forwardedFor`,`login`,`person`,`code`,`area`) values(NOW(),'{$_SERVER['REMOTE_ADDR']}','$forwardedFor','{$data->login}','{$def->login}',($money << 1) | $result,'attack')");
                if($result == 1) {
                  mysql_query("UPDATE `[users]` SET `cash`=". ($def->cash-$money) .",`deflosses`=". ($def->deflosses+1) .",`leven`=`leven`-2  WHERE `login`='{$def->login}'");
                  $data->cash		+= $money;
                  $data->attwins++;
                  mysql_query("UPDATE `[users]` SET `cash`={$data->cash},`attwins`={$data->attwins} WHERE `login`='{$data->login}'");
                }
                else {
                  $data->cash		-= $money;
                  $data->attlosses++;
                  mysql_query("UPDATE `[users]` SET `cash`={$data->cash},`attlosses`={$data->attlosses},`leven`=`leven`-2 WHERE `login`='{$data->login}'");
                  mysql_query("UPDATE `[users]` SET `cash`=". ($def->cash+$money) .",`defwins`=". ($def->defwins+1) ." WHERE `login`='{$def->login}'");
                }
    
    
          print "     <table width=100% align=center>n";
        print "  <td class=subTitle width=60><b>{$data->login}</b></td>n";
        print "  <td class=mainTxt width=5%><center></center></td>n";
       print "   <center><td class=subTitle width=60><b>{$def->login}</b></td>  </tr>    <tr></center>n";
       print " </tr>n";
       print " </table>n";
      print "  <table width=60% align=center><td class=mainTxt><b><img src=/icons/bomb.png border= 0> Je valt {$def->login} aan en {$text[0]}<br>Je hebt €$money {$text[1]}!<center></td></tr></table>n";
                mysql_query("SELECT RELEASE_LOCK('attack_{$def->login}')");
              }
              else {
                $type			= Array("","soldaten","oorlogsmisdadigers","wapenhandelaren");
                $type			= $type[$data->type];
                print "  <tr><td class="mainTxt">Je $type zijn nog moe van de vorige aanval, over een paar secondes kan je weer aanvallen</td></tr>n";
              }
            }
            else
              print "  <tr><td class="mainTxt">Je hebt {$def->login} al 5x aangevallen vandaag, zoek iemand anders om aan te vallen</td></tr>n";
          }
        }
      }
      else
        print "  <tr><td class="mainTxt">Je kunt niemand aanvallen wanneer je onder bescherming staat, ga naar je thuisbasisr om je bescherming weg te halen!</td></tr>n";
    
    
    
    
    
    
    /* ------------------------- */ ?>
    </table>
    
    
    </body>
    
    
    
    
    </html>
    
    
    <? mysql_close(); ?>
    Display More
  • Guest, wil je besparen op je domeinnamen? (ad)
  • Durk
    Intermediate
    Posts
    365
    • March 29, 2009 at 7:49 PM
    • #2

    Het is een bekende bug, is mij al vaker opgevallen.
    Die persoon zijn contant geld eens naar 0 zetten, en als het eerlijk geld is, overplaatsen naar de bank.
    Kijk dan eens of het beter is, want heb er zelf ook nog niet een fix voor kunnen vinden.

  • Luc
    Software Engineer
    Posts
    1,986
    • March 29, 2009 at 8:23 PM
    • #3

    Deze bug zit niet in het script maar in de database. Wanneer een speler hoger komt dan een betaald bedrag dat maximaal is toegestaan door de database komt het geld wat hij teveel heeft in de min. Hierdor komt het dus dat je in de min komt. Dit is op te lossen dfoor van int(255) bigint(255) te maken in de velden waar je grote getallen wilt toelaten.

    Ik hoop dat jullie bijde iets met deze uitleg kunnen.

    Mvg, Luc

    Website: https://devimo.nl
    Skype: https://join.skype.com/invite/dJyYILTt7Eqh

  • Durk
    Intermediate
    Posts
    365
    • March 29, 2009 at 9:47 PM
    • #4

    Hallo Luc,

    Je reactie is nuttig, alleen staat zijn contant al op een bigint, omdat er meer dan 2.147.xxx.xxx contant heeft.
    Is het een normale int, dan had het niet meer dan 2.1 miljard kunnen zijn..
    Die fix zal dus ook niet werken.
    Op me oude website had ik hetzelfde, en zette je zijn/haar contant geld naar 0, en zijn/haar contant geld naar de bank, was het gefixt.

  • Stefan.J
    Master
    Posts
    2,358
    • March 30, 2009 at 11:34 AM
    • #5

    Je hebt waarschijnlijk al een BIGINT inderdaad. Je kunt de maximale waarde van deze BIGINT verdubbelen door er een UNSIGNED BIGINT van te maken i.p.v. een (standaard) SIGNED. UNSIGNED velden (numeriek) kunnen geen negatieve getallen bevatten, maar daarin tegen wel twee keer zo hoge positieve getallen.

    Voorbeeld:
    Een SIGNED TINYINT loopt van -128 tot 127, een UNSIGNED TINYINT van 0 tot 255.

  • Wotfnl
    Beginner
    Posts
    28
    • May 14, 2009 at 8:36 PM
    • #6

    Heb ik al geprobeerd.. werkt allemaal niet. Weten jullie nog iets? Hij staat al op een UNSIGNED BIGINT 255.

  • MrMees
    De causeur!
    Posts
    464
    • May 14, 2009 at 9:23 PM
    • #7

    Zorg er gewoon voor dat er niet zoveel geld in het spel komt.

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • Durk
    Intermediate
    Posts
    365
    • May 14, 2009 at 10:39 PM
    • #8

    Jep.
    Wanneer gebruiker een bedrag boven de x miljard heeft, dat er x miljard naar de bank word gezet, of zorg dat er niet zo snel verdiend word..

  • Wotfnl
    Beginner
    Posts
    28
    • May 14, 2009 at 10:51 PM
    • #9

    Durk, hoe bedoel je precies met naar de bank zetten?

  • Patrick
    Back in the game
    Posts
    1,417
    • May 14, 2009 at 10:54 PM
    • #10

    x aantal miljard auto over transfere naar de bank door middel van een qeury, deze check kan je bijv in config.php doen.

  • Durk
    Intermediate
    Posts
    365
    • May 15, 2009 at 6:47 AM
    • #11
    PHP
    <?php
    //Gebruiker 8 miljard contant = naar bank
    if($data->bank >= 8000000000){
    mysql_query("UPDATE users SET contant=contant-'8000000000', bank=bank+'8000000000' WHERE login='" . $data->login . "'");

    Heb even een simpele voorbeeldcode gebruikt, welke je in je config kan stoppen. De query moet je aanpassen als je velden enz. niet zo heten. Op deze manier komt er niet meer dan 8 miljard contant geld in het spel.

  • Stefan.J
    Master
    Posts
    2,358
    • May 15, 2009 at 7:12 AM
    • #12

    Dat ik dat hier niet heb gezien... In het script converteer je het geld ($money) naar een intiger. Deze kent dus weer een lage limiet, je zult die convertatie eruit moeten halen (int).

  • Durk
    Intermediate
    Posts
    365
    • May 15, 2009 at 7:24 AM
    • #13

    Van die INT moet een BIGINT in het script gemaakt worden, bedoel je?
    Lijn 129

  • borrie
    Beginner
    Posts
    33
    • May 15, 2009 at 10:00 AM
    • #14

    Of doe dat de user een bericht krijgt als hij bijvoorbeeld meer dan 1 miljard contant heeft.

    PHP
    <?php
    if($data->contant >= 8000000000){
    echo "U kunt pas weer verder spelen waarneer u een deel van het geld op uw bank heeft gezet."; }

    Zoiets?

    Ik heb nu 2 jaar niet meer gescript, dus kunnen fouten in zitten.

    of zoiets?

    PHP
    <?php
    if($def->contant == 80000000){
    echo "U kunt nu niet aanvallen, probeer het later nog eens."; }
  • Stefan.J
    Master
    Posts
    2,358
    • May 15, 2009 at 10:33 AM
    • #15

    Nee... Geen BIGINT. PHP kent het datatype BIGINT niet... Je moet het gewoon niet meer converteren. Het is ook niet nodig, aangezien je de waardes uit de database haalt. Wel kun je even afronden met round(), mocht dat nodig zijn.

  • borrie
    Beginner
    Posts
    33
    • May 15, 2009 at 10:57 AM
    • #16

    @ Killingdevil

    Dit zou toch ook gewoon moeten werken?

    PHP
    <?php
    if($def->contant == 80000000){
    echo "U kunt nu niet aanvallen, probeer het later nog eens."; }
  • Stefan.J
    Master
    Posts
    2,358
    • May 15, 2009 at 11:42 AM
    • #17

    Ja, en dat vinden de spelers ook vast leuk? Je kunt bugs ook gewoon oplossen i.p.v. een work-around maken.

  • borrie
    Beginner
    Posts
    33
    • May 15, 2009 at 3:14 PM
    • #18

    Of je doet in de Cron-second als ik het goed heb, of iets wat daar op lijkt;

    PHP
    if($data->cash == 800000000000000000000000000){
    mysql_query("UPDATE users SET contant=contant-'8000000000000000000', bank=bank+'8000000000' WHERE login='" . $data->login . "'");

    of in de bank iets van

    PHP
    if($data->cash == 8000000000){
    echo "U heeft te véél geld op zak, uw geld word nu automatisch op uw bank gezet."
    mysql_query("UPDATE users SET contant=contant-'8000000000000000000', bank=bank+'8000000000' WHERE login='" . $data->login . "'");

    Hoop dat je nu geholpen bent?

  • Wotfnl
    Beginner
    Posts
    28
    • May 15, 2009 at 3:28 PM
    • #19
    Quote

    Ja, en dat vinden de spelers ook vast leuk? Je kunt bugs ook gewoon oplossen i.p.v. een work-around maken.

    Inderdaad, want dit is natuurlijk als een paraplu van hout maken.

  • Db-maffia
    Professional
    Posts
    1,356
    • May 15, 2009 at 3:42 PM
    • #20

    Wotfnl lol :P

    Je kan ook gewoon zorgen dat ze maar een X-bedrag per keer kunnen opnemen.. want lijkt me niet dat je 9miljard cash laat staan heel de dag als je aan het spelen bent?

    Project Maffiadeluxe.nl

Word lid en discussieer mee!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login

Blogs

  • Functioneel ontwerp

    Dees December 28, 2014 at 12:38 PM
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN December 28, 2018 at 12:35 PM
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN December 29, 2018 at 12:37 PM
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design