Ik ben bezig met een crime game ik heb een script die ik graag wil gebruiken.

<?php /* ------------------------- */

  include("_include-config.php");
  if(! check_login()) {
    header("Location: login.php");
    exit;
  }

  mysql_query("UPDATE `[users]` SET `online`=NOW() WHERE `login`='{$data->login}'");

/* ------------------------- */ ?>
<html>


<head>
<title> CrimeGame || Attack</title>
<link rel="stylesheet" type="text/css" href="<?php echo ($_COOKIE['v'] == 2) ? "css-v2.css" : "css-v1.css"; ?>">

</head>


<body style="background: #136E1D; margin: 0px;">
<table width=100%>
  <tr><td class="subTitle"><b>Attack</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");
    if($def = mysql_fetch_object($dbres)) {
      if($def->login == $data->login)
        print "  <tr><td class=\"mainTxt\">Je slaat jezelf tegen je hoofd en valt bewusteloos neer...</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 mag niet mede-clan members aanvallen</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 {
        $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) <= 5) {
          $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) ." 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} WHERE `login`='{$data->login}'");
              mysql_query("UPDATE `[users]` SET `cash`=". ($def->cash+$money) .",`defwins`=". ($def->defwins+1) ." WHERE `login`='{$def->login}'");
            }

            print "  <tr><td class=\"mainTxt\">Je valt {$def->login} aan en... {$text[0]}<br>Je hebt \$$money {$text[1]}...</td></tr>\n";
            mysql_query("SELECT RELEASE_LOCK('attack_{$def->login}')");
          }
          else {
            $type			= Array("","junkies","klonen","agenten");
            $type			= $type[$data->type];
            print "  <tr><td class=\"mainTxt\">Je $type zijn nog moe van de vorige aanval...</td></tr>\n";
          }
        }
        else
          print "  <tr><td class=\"mainTxt\">Je hebt {$def->login} al 5x aangevallen vandaag...</td></tr>\n";
      }
    }
  }
  else
    print "  <tr><td class=\"mainTxt\">Je kunt niemand aanvallen wanneer je onder bescherm staat</td></tr>\n";

/* ------------------------- */ ?>
</table>

</body>


</html>


Nu zit er een fout in dat je jezelf kan aanvallen.
Hoe kan ik dat eruit halen?
Door de fout op te zoeken en op te lossen?

Meer dan dit kan ik niet zeggen, tot dat je met meer informatie op de proppen komt.
'Nu zit er een fout in'


Nou er zit er wel meer dan 1 in hoor, je kan beter vragen op welke regels niet
Ok, er zitten dus veel fouten in, zou jullie me kunnen helpen?
Ik ben nogal een beginneling en ik wil toch graag wat vordering krijgen.
Door er een vergelijking in te zetten.

Bijv.

If user =! de gebruiker die je wil aanvalen,{ script wat er dan moet gebeuren } else {echo "Je kan je eigen niet aanvallen.";}

zoiets
Stel.

If user =! ikee
else {echo "Je kan je eigen niet aanvallen.";}

Moet ik dat dan voor elk persoon erin gaan zetten?
if($def->login == $data->login)
die zullen wel niet gelijk zijn
Waar die $data vandaan komt kan ik al niet zien.
Ik ben ook nieuwsgierig waarom je fetch_object gebruikt, dat is de meest langzaamze fetch methode

Verder heb je nergens foutcontrole, is het gebruik van ' of [] in een query af te raden.
Ook is het verstandig je variabelen buiten quotes te halen.
Ga eerst zelf rustig php leren en maak dan je eigen spel. Bovenstaand is echt een zooitje.
Dit script komt uit blauwe criminals, heeft iemand een goede voor me?
Het is != en niet =!.

Daarnaast lees ik alleen jouw reactie en zag deze fout. Je kan ook gebruik maken van een array en dan in_array gebruiken om te controleren.

Maar als je jezelf alleen niet mag wijzigen (aanvallen) of wat dan ook, hoef je maar 1 if-statement te maken. En controleren of de bezoeker toevallig de aanvaller is.
if($def->login == $data->login)
print " <tr><td class=\"mainTxt\">Je slaat jezelf tegen je hoofd en valt bewusteloos neer...</td></tr>\n";


Dus dat klopt niet, of kan hij nergens $data vandaan halen?

Reageren