Fout in script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marcel V

Marcel V

26/02/2009 16:12:00
Quote Anchor link
Ik ben bezig met een crime game ik heb een script die ik graag wil gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?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?
 
PHP hulp

PHP hulp

29/11/2024 22:02:01
 
- Ariën  -
Beheerder

- Ariën -

26/02/2009 16:15:00
Quote Anchor link
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.
 
Jacco Engel

Jacco Engel

26/02/2009 16:17:00
Quote Anchor link
'Nu zit er een fout in'


Nou er zit er wel meer dan 1 in hoor, je kan beter vragen op welke regels niet
 
Marcel V

Marcel V

26/02/2009 16:18:00
Quote Anchor link
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.
 
Nigel

Nigel

26/02/2009 16:19:00
Quote Anchor link
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
 
Marcel V

Marcel V

26/02/2009 16:20:00
Quote Anchor link
Stel.

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

Moet ik dat dan voor elk persoon erin gaan zetten?
 
TJVB tvb

TJVB tvb

26/02/2009 16:22:00
Quote Anchor link
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.
 
- SanThe -

- SanThe -

26/02/2009 16:22:00
Quote Anchor link
Ga eerst zelf rustig php leren en maak dan je eigen spel. Bovenstaand is echt een zooitje.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Marcel V

Marcel V

26/02/2009 16:23:00
Quote Anchor link
Dit script komt uit blauwe criminals, heeft iemand een goede voor me?
 
Dennis Mertens

Dennis Mertens

26/02/2009 16:23:00
Quote Anchor link
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.
 
Marcel V

Marcel V

26/02/2009 16:25:00
Quote Anchor link
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?
 
TJVB tvb

TJVB tvb

26/02/2009 16:29:00
Quote Anchor link
SanThe schreef op 26.02.2009 16:22:
Ga eerst zelf rustig php leren en maak dan je eigen spel. Bovenstaand is echt een zooitje.

Eigenlijk de meest verstandige opmerking die je hier kunt maken.
Marcel V schreef op 26.02.2009 16:23:
Dit script komt uit blauwe criminals, heeft iemand een goede voor me?

php.net
PostgrSQL
En phphulp zelf
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.