ge-include pagina "ververst" niet na Submit

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Kevin Rovers

Kevin Rovers

16/08/2010 19:51:15
Quote Anchor link
Hallo allemaal,

Ik heb een probleempje waar ik niet helemaal uit kom.

Ik heb een Text-based "Crime" game gemaakt.
Hierin kunnen gebruikers "crimes" doen, auto's stelen, reizen, etc.

de opzet is als volgt:
index.php: heeft standaard <HTML> e.d. + include() functie waarmee alle opgevraagde pagina's worden opgenomen.

het probleem is, als er een crime is gedaan (SUBMIT) dan krijg ik netjes de tekst: "You tried to commit a crime!". Hier zou dan ook een teller moeten komen, zodat de user maar 1x in 2 minuten een Crime kan doen, en de SUBMIT button wordt gedeactiveerd.

Echter gebeurt dit pas als ik nogmaals in mijn menu op de crime-pagina klik. (dus een nieuwe/herlaadde versie van die pagina.)

Ik zou graag willen dat, als ik op SUBMIT klik gelijk alles weergegeven wordt. Zo ook dat het ontvangen bedrag na het succesvol uitvoeren van de "crime" direct zichtbaar opgeteld is bij het oude bedrag welke de user al had.

Ik snap dat de vraag wat complex is, maar hoop dat jullie mij kunnen helpen.

Gr.
Kevin
 
PHP hulp

PHP hulp

11/07/2020 07:49:51
 
Niels K

Niels K

16/08/2010 19:56:51
Quote Anchor link
Ik volg je niet helemaal, maar op zich moet dit toch niet zo moeilijk zijn? Als jij op de submit button klikt dan refesht de pagina zichzelf toch al?
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:00:56
Quote Anchor link
ja dat is wel de bedoeling, maar dat gebeurt dus niet.

Ik krijg NA Submit wel: de tekst dat de crime is voldaan, maar alle gegevens worden pas ge-update nadat er een nieuwe pagina wordt geopend.

aan de rechterkant staat: Money $ 500
ik doe een crime, succesvol en verdien $ 67 (dit krijg ik te zien na Submit maar de stats aan de rechterkant zijn nog niet bijgewerkt)
zodra ik een nieuwe pagina openklik wordt het bedrag aan de rechterkant pas zichtbaar.
 
Niels K

Niels K

16/08/2010 20:10:05
Quote Anchor link
Ok. En in de database zijn de gegevens weggeschreven?

Kan je code laten zien over:

- Hoe een nieuwe crime wordt gedaan
- Hoe het geld uit de database wordt gehaald.

Let op bij het plaatsen van de codes wordt verwacht dat je deze tussen tags zet. Voor PHP gebruik je

<?php
?>
Gewijzigd op 16/08/2010 20:11:57 door Niels K
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:20:23
Quote Anchor link
crimes.php

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
<?php
    $now
= date('Y-m-d H:i:s ');

    //random number
    srand ((double) microtime( )*1000000);
    $random = rand(0,100);
    
    $perc1 = round($crimesexp*1, 0) ; // 100
    $perc2 = round($crimesexp*0.4, 0) ; // 250
    $perc3 = round($crimesexp*0.174, 0) ; // 575
    $perc4 = round($crimesexp*0.0833, 0) ; // 1200
    $perc5 = round($crimesexp*0.04, 0) ; // 2500
    $perc6 = round($crimesexp*0.01904, 0) ; // 5250
    
    if ($perc1 >= 100) { $perc1 = 100 ; }
    if ($perc2 >= 100) { $perc2 = 100 ; }
    if ($perc3 >= 100) { $perc3 = 100 ; }
    if ($perc4 >= 100) { $perc4 = 100 ; }
    if ($perc5 >= 100) { $perc5 = 100 ; }
    if ($perc6 >= 100) { $perc6 = 100 ; }

    
    if(isset($_POST['submit'])){
    
        
        
        $crime = $_REQUEST['crime'];
        $crimestimernew = $_REQUEST['crimestimernew'];
        

        if ($crime == '1') {
        
            if ($random <= $perc1 ) {
            
                $crimevalue = 3 ;
                $expcrime = $crimesexp + $crimevalue ;
                $crimeupdate = $crimessucces + 1 ;
                
                srand ((double) microtime( )*1000000);
                $crimemoney = rand(10,250);
                
                $moneyupdate = $money + $crimemoney ;
                
                
                mysql_query("UPDATE `DATABASE`.`TABLE` SET `crimessucces` = '$crimeupdate', `crimestimer` = '$crimestimernew' WHERE `TABLE`.`username` ='$usernamedbinfo' LIMIT 1") ;
                mysql_query("UPDATE `DATABASE`.`TABLE` SET `money` = '$moneyupdate', `crimesEXP` = '$expcrime' WHERE `TABLE`.`username` ='$usernamedbinfo' LIMIT 1") ;
                
                $message = "You succeeded, and earned £ $crimemoney";
            
            }
else {
            
                $crimevalue = 0.4 ;
                $expcrime = $crimesexp + $crimevalue ;
                $crimeupdate = $crimesfail + 1 ;
                
                mysql_query("UPDATE `DATABASE`.`TABLE` SET `crimesfail` = '$crimeupdate', `crimestimer` = '$crimestimernew' WHERE `TABLE`.`username` ='$usernamedbinfo' LIMIT 1") ;
                mysql_query("UPDATE `DATABASE`.`TABLE` SET `crimesEXP` = '$expcrime' WHERE `TABLE`.`username` ='$usernamedbinfo' LIMIT 1") ;
                
                $message = "You failed";
            }
        }
    }

?>

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
<table align="center" width="90%">
    <tr>
        <td colspan="2" align="center"><h1>Crimes</h1></td>
    </tr>
    <?php
        if ($now < $crimestimer) { echo "<tr><td colspan='2' align='center' id='remain'></td></tr>"; }
    ?>

    <tr>
        <td align="center">
            <?php
                if(isset($_POST['submit'])){
                    if ($crime != '') { echo "You tried to commit a crime!<br />"; }
                    echo "$message";
                }

            ?>

            <br /><br />
            <form method="post">
                <table align="center">
                    <tr>
                        <td><input type="radio" name="crime" value="6">Steal a Money Courier Van</td>
                        <td><?php if($crimesexp >= 630) { echo "$perc6"; } else { echo "0"; } ?>%</td>
                    </tr>
                    <tr>
                        <td><input type="radio" name="crime" value="5">Rob a Petrol Station</td>
                        <td><?php if($crimesexp >= 300) { echo "$perc5"; } else { echo "0"; } ?>%</td>
                    </tr>
                    <tr>
                        <td><input type="radio" name="crime" value="4">Rob a Post Office</td>
                        <td><?php if($crimesexp >= 144) { echo "$perc4"; } else { echo "0"; } ?>%</td>
                    </tr>
                    <tr>
                        <td><input type="radio" name="crime" value="3">Steal from a Rich Housing Estate</td>
                        <td><?php if($crimesexp >= 69) { echo "$perc3"; } else { echo "0"; } ?>%</td>
                    </tr>
                    <tr>
                        <td><input type="radio" name="crime" value="2">Steal from a Car</td>
                        <td><?php if($crimesexp >= 30) { echo "$perc2"; } else { echo "0"; } ?>%</td>
                    </tr>
                    <tr>
                        <td><input type="radio" name="crime" value="1">Steal from a Pedestrian</td>
                        <td><?php echo "$perc1"; ?>%</td>
                    </tr>
                    <tr>
                        <input type="hidden" name="crimestimernew" value="<?php echo date('Y-m-d H:i:s', strtotime('+2 minutes')); ?>">
                        <td colspan="2" align="center"><input type="submit" value="Commit" name="submit" <?php if ($now < $crimestimer) { echo "disabled"; } ?>></td>
                    </tr>
                </table>
            </form>
        </td>
    </tr>
</table>


hoop dat ik het zo goed heb gedaan..

Toevoeging op 16/08/2010 20:22:33:

Alle database info wordt opgehaald door: dbinfo.php

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
<?php
                $select
= mysql_query("SELECT * FROM Users WHERE username='$usernamedbinfo'");
                $aantal = mysql_num_rows($select);

                for ($i=0; $i < $aantal; $i = $i + 1) {
                    $unid = mysql_result($select,$i,0) ;
                    $username = mysql_result($select,$i,1) ;
                    $email = mysql_result($select,$i,2) ;
                    $password = mysql_result($select,$i,3) ;
                    $ipadress = mysql_result($select,$i,4) ;
                    $joindate = mysql_result($select,$i,5) ;
                    $profilemsg = mysql_result($select,$i,6) ;
                    
                }


                
                
                $select = mysql_query("SELECT * FROM Userstats WHERE username='$usernamedbinfo'");
                $aantal = mysql_num_rows($select);

                for ($i=0; $i < $aantal; $i = $i + 1) {
                    $unid = mysql_result($select,$i,0) ;
                    $username = mysql_result($select,$i,1) ;
                    $crew = mysql_result($select,$i,2) ;
                    $gun = mysql_result($select,$i,3) ;
                    $bullets = mysql_result($select,$i,4) ;
                    $protection = mysql_result($select,$i,5) ;
                    $health = mysql_result($select,$i,6) ;
                    $money = mysql_result($select,$i,7) ;
                    $exp = mysql_result($select,$i,8) ;
                    $rank = mysql_result($select,$i,9) ;
                    $state = mysql_result($select,$i,10) ;
                    $crimesexp = mysql_result($select,$i,11) ;
                    $gtaexp = mysql_result($select,$i,12) ;
                }

                
                if($money <= 0) { $money = 0 ;}

                
                
                $select = mysql_query("SELECT * FROM Userstats2 WHERE username='$usernamedbinfo'");
                $aantal = mysql_num_rows($select);

                for ($i=0; $i < $aantal; $i = $i + 1) {
                    $unid = mysql_result($select,$i,0) ;
                    $username = mysql_result($select,$i,1) ;
                    $crimessucces = mysql_result($select,$i,2) ;
                    $crimesfail = mysql_result($select,$i,3) ;
                    $gtasucces = mysql_result($select,$i,4) ;
                    $gtafail = mysql_result($select,$i,5) ;
                    $forumposts = mysql_result($select,$i,6) ;
                    $forumreplies = mysql_result($select,$i,7) ;
                    $bustssucces = mysql_result($select,$i,8) ;
                    $bustsfail = mysql_result($select,$i,9) ;
                    $killssucces = mysql_result($select,$i,10) ;
                    $killsfail = mysql_result($select,$i,11) ;
                    $brsucces = mysql_result($select,$i,12) ;
                    $brfail = mysql_result($select,$i,13) ;
                    $travelcar = mysql_result($select,$i,14) ;
                    $traveltrain = mysql_result($select,$i,15) ;
                    $crimestimer = mysql_result($select,$i,16) ;
                    $gtatimer = mysql_result($select,$i,17) ;
                }

            ?>
Gewijzigd op 16/08/2010 20:28:05 door Kevin Rovers
 
Karl Karl

Karl Karl

16/08/2010 20:22:49
Quote Anchor link
Gebruik alsjeblieft [code] en [/code] tags.
Gewijzigd op 16/08/2010 20:24:03 door Karl Karl
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:23:41
Quote Anchor link
als je uitlegt hoe, doe ik het met plezier ;)

ik ben nieuw hier
 
Karl Karl

Karl Karl

16/08/2010 20:24:50
Quote Anchor link
Kevin Rovers op 16/08/2010 20:23:41:
als je uitlegt hoe, doe ik het met plezier ;)

ik ben nieuw hier


Die verdomde kut parser kan niet ignore. Terwijl dat wel zou moeten.
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:28:30
Quote Anchor link
Aangepast :)
 
Niels K

Niels K

16/08/2010 20:29:02
Quote Anchor link
Als ik heel eerlijk ben vind ik het een rotzooi..

- Foute queries
- backticks
- Geen foutenafhandeling
- Gebruik van oud PHP
- SQL injection mogelijk
- Geen commentaar in de code
- Variablen buiten de quotes
- Je gebruikt hele vage queries.. UPDATE DATABASE . $TABLE ?:O

Waarschijnlijk ook XSS injection mogelijk.

En zo kunnen we nog wel even door gaan.. Heb je dit script van internet gedownload?

EDIT:

Ja inderdaad karl, dat wilde ik dus bij mijn eerste post al doen.. maar toen merkte ik dat hij dat niet deed..
Gewijzigd op 16/08/2010 20:31:09 door Niels K
 
Karl Karl

Karl Karl

16/08/2010 20:30:34
Quote Anchor link
W00t wat voor onzin moet dbinfo.php voorstellen?
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:31:44
Quote Anchor link
enkel het mysql_query(UPDATE) heb ik gedeeltelijk van internet.

overige code heb ik zelf gemaakt.

Voor de duidelijkheid, ik heb een gedeelte van de code weggelaten aangezien hij 6x hetzelfde doet. (daar er 6 crimes zijn).
 
Niels K

Niels K

16/08/2010 20:32:02
Quote Anchor link
Haha, ja ik dacht ook van.. huh? Op een 1 of andere manier herken ik dit script van 1 van mijn oude klasgenoten.. en die had het gedownload van internet..

EDIT:

Ok dan, tja je zult je script toch drastisch moeten veranderen op de punten die ik in mijn vorige post heb aangegeven..
Gewijzigd op 16/08/2010 20:32:55 door Niels K
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:32:28
Quote Anchor link
Karl Karl op 16/08/2010 20:30:34:
W00t wat voor onzin moet dbinfo.php voorstellen?


Hier haalt hij alles op uit de database.
 
Niels K

Niels K

16/08/2010 20:33:30
Quote Anchor link
Lees mijn edit van de vorige post;)
 
Karl Karl

Karl Karl

16/08/2010 20:35:26
Quote Anchor link
Kevin Rovers op 16/08/2010 20:32:28:
Karl Karl op 16/08/2010 20:30:34:
W00t wat voor onzin moet dbinfo.php voorstellen?


Hier haalt hij alles op uit de database.


Selecteer wat je wilt hebben, gebruik niet *. Variabelen buiten quotes. De boel wordt daar gewoon overschreven omdat je steeds dezelfde variabele gebruikt. Ooit gehoord van mysql_fetch_assoc?
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:36:03
Quote Anchor link
ok, ben niet zo diepgaand bekend met php...

maar kan dit de fout zijn waardoor de pagina niet alles weergeeft?

Toevoeging op 16/08/2010 20:37:53:

Karl Karl op 16/08/2010 20:35:26:
Kevin Rovers op 16/08/2010 20:32:28:
Karl Karl op 16/08/2010 20:30:34:
W00t wat voor onzin moet dbinfo.php voorstellen?


Hier haalt hij alles op uit de database.


Selecteer wat je wilt hebben, gebruik niet *. Variabelen buiten quotes. De boel wordt daar gewoon overschreven omdat je steeds dezelfde variabele gebruikt. Ooit gehoord van mysql_fetch_assoc?


nee, helaas niet..
heb nog veel te leren merk ik.

ik snap wat je bedoelt met het overschrijven.
Ik moet inderdaad de database nog herschrijven..
 
Karl Karl

Karl Karl

16/08/2010 20:39:00
Quote Anchor link
Je overschrijft de variabelen.
Overigs zijn tabellen ook een big nono om je lay-out in te maken.
En dit is dus precies de reden waarom criminals zo slecht zijn.
 
Niels K

Niels K

16/08/2010 20:39:12
Quote Anchor link
Wat je het beste kan doen is even helemaal op nieuw beginnen en zonder 1 of andere content een nieuw formuliertje bouwen.

Let dan op de dingen die ik heb aangegeven. Lees desnoods nog even deze tutorial klik en deze klik en kijk eens naar dit script en dit script

Succes!

EDIT

Inderdaad karl, en TS misschien is het handig om deze discussie te volgen
Gewijzigd op 16/08/2010 20:40:49 door Niels K
 
Kevin Rovers

Kevin Rovers

16/08/2010 20:40:19
Quote Anchor link
ok bedankt! ik ga ermee aan de slag.
 
Niels K

Niels K

16/08/2010 20:41:09
Quote Anchor link
Succes, en als je vragen hebt horen wij dat uiteraard graag
 

Pagina: 1 2 volgende »



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.