php fout.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- SanThe -

- SanThe -

10/03/2009 18:52:00
Quote Anchor link
Boaz schreef op 09.03.2009 19:01:
Je verhoogt de waarde wel, maar wijst 'm niet toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE gebruikers SET geld + 10

moet dus zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE gebruikers SET geld = geld + 10

@Carlo: Lees je de posts wel goed door?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
PHP hulp

PHP hulp

22/11/2024 12:01:59
 
Carlo  boy

carlo boy

10/03/2009 19:58:00
Quote Anchor link
Ja sorry maar ik verander dat dan, en dan verander ik weer de hele code, en vergeet ik dat :).
Maar hij zegt nu

Vraag 1 heeft u goed!
uw opgegeven andwoord: Carlo
u heeft '.11.' op uw rekening staan andwoord 2 is niet goed!

ja ik weet dat antwoord met een t moet schrijven :)

Maar hoe kan het dat antwoord 2 fout is?
Ik vul gewoon Demi in.
 
Carlo  boy

carlo boy

12/03/2009 08:03:00
Quote Anchor link
hoe kan ik controleren dat ze andwoord 1, 2, 3 en 4 goed hebben?
 
Dennis Mertens

Dennis Mertens

12/03/2009 09:33:00
Quote Anchor link
Hoofdletter gevoelig? Zet alles naar lowercase strtolower().
 
Carlo  boy

carlo boy

13/03/2009 15:39:00
Quote Anchor link
Ik weet niet hoe ik hierbij moet gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
//dit is een test
$a = $_POST['a'];
$a = strtolower($A);
echo $a;
?>

Moet ik het anders zo aan pakken?
Gewijzigd op 01/01/1970 01:00:00 door carlo boy
 
- SanThe -

- SanThe -

13/03/2009 15:44:00
Quote Anchor link
Waarom zoveel regels?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
//dit is een test
echo strtolower($_POST['a']);
?>
 
Carlo  boy

carlo boy

13/03/2009 19:58:00
Quote Anchor link
Wow niet aan gedacht, ik zal het eens proberen

EDIT: Helaas werkt dit niet, ik heb het veranderd. (ik post als het moet wel de code) Maar de 2de vraag is altijd fout..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
//grote en kleine letters gelijk maken
$a = strtolower($_POST['aa']);
$b = strtolower($_POST['ab']);
$c = strtolower($_POST['ac']);
$d = strtolower($_POST['ad']);
?>


weten jullie misschien een oplossing?
Gewijzigd op 01/01/1970 01:00:00 door carlo boy
 
Carlo  boy

carlo boy

14/03/2009 19:20:00
Quote Anchor link
Hoe kan het dat de 2de andwoord altijd fout is?
 
Carlo  boy

carlo boy

15/03/2009 20:55:00
Quote Anchor link
Het is opgelost!

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<?php
include("safe.php");
include("config.php");



//BEGIN INSETELLINGEN
//de vragen d staat de 'de' v staat voor 'vraag' a betekent welke vraag
//hier kan je de vragen instellen

//vraag 1:

$dva = 'waar kan je terecht als er problemen zijn in de punten aftrek  problemen met inloggen, enz?';
//vraag 2:
$dvb = 'Waar ka je terecht als er problemen zijn met de lagout van de pagina?';
//vraag 3:
$dvc = 'Uit hoeveel man bestaat onze team?';
//vraag4:
$dvd = 'Hoeveel geld krijg je in het begin van het spel?';

//de andwoorden, hier kan je het wijziggen.
$aa = 'carlo'; //andwoord van vraag 1
$ab = 'demi';  //andwoord van vraag 2
$ac = '3';     //andwoord van vraag 3
$ad = '1000';  //andwoord van vraag 4

//de andwoorden van de persoon omzetten in kortere tekst (verander hier niks!)
//grote en kleine letters gelijk maken

$va = strtolower($_POST['va']);
$vb = strtolower($_POST['vb']);
$vc = strtolower($_POST['vc']);
$vd = strtolower($_POST['vd']);



//wil je aan iedereen een bonis geven?
//verander dan die 0.
//laat anders die 0 staan!

$aantal = '0';

//Hoeveel punten krijgen ze als ze een andwoord goed hebben?
$hoeveel = '10';

//Welke waarden heeft dit spel?
$db_waarden = '1';

//je kan je script testen.
//(let erop dat je niet vergeet weg te halen!)
//
//zet op de volgende regel de 2// om de vragen en de andwoorden te zien
   /*
echo 'andwoorden: a=' . $aa . ' b= ' . $ab . ' c= ' . $ac . ' d=';
echo $ad;
echo '<br>';
echo 'vragen: a=' . $dva . ' b= ' . $dvb . ' c= ' . $dvd . ' d=';
echo $dvd;
echo '<br';
//zet dan ook 2 //'s voor de hier-na-komende regel
*/
//einde instellingen


//verander hier niks meer!


//sql opdracht uitvoeren

    $query = " SELECT
                id,
                status,
                wachtwoord,
                actief,
                geld,
        aantal_spel
                FROM
                gebruikers
                WHERE
                id = '"
. $_SESSION['user_id'] . "'
                AND
                status  = '"
. $_SESSION['user_status'] . "'
                "
;
    $result = mysql_query( $query );
    $rij    =    mysql_fetch_object($result);
    $geld   =  htmlspecialchars($rij->geld);
    $spel   =  htmlspecialchars($rij->aantal_spel);

if ($spel == 5){
echo 'Jammer genoeg je hebt al 5 keer dit spel gespeelt in een week';
}
else{
if ( isset( $_POST['submit']  )  )//controleerd als er op submit is geklikt:
{
echo 'heey';





if($aa = $va){
echo 'Goezo!<br>';
echo 'U heeft vraag1 goed ingevult!<br>';
echo $dva;
$aantal = $aantal + $hoeveel;
}
else{
echo " andwoord 1 is niet goed!";
echo '<br>';
}


if($ab = $vb){
echo 'Goezo!<br>';
echo 'U heeft vraag2 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}
else{
echo " andwoord 2 is niet goed!";
echo '<br>';
}


if($ac = $vc){
echo 'Goezo!<br>';
echo 'U heeft vraag3 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}
else{
echo " andwoord 3 is niet goed!";
echo '<br>';
}


if($ad = $vd){
echo 'Goezo!<br>';
echo 'U heeft vraag4 goed ingevult!<br>';
echo $dva;
echo '<br>';
$aantal = $aantal + $hoeveel;
}
else{
echo " andwoor4  is niet goed!";
echo '<br>';
}


echo 'U heeft ' . $aantal . ' Euro gewonnen!';
echo '<br>';
$sql = "UPDATE gebruikers SET geld= geld + '".$aantal."' WHERE id='".$_SESSION['user_id']."'";
   $query = mysql_query($sql);
if($query == TRUE) {
$test = '6' - $aantal;
    echo 'Er is succes vol geld op je rekening gestord';
   }
else{
        echo "Er is een probleeem opgetreden, je kan nog '.$aantal.' keer stemmen, vragen beandwoorden.";
    echo "<br>Er is dus niks veranderd";
}


$sql = "UPDATE gebruikers SET aantal_spel = aantal_spel + '".$db_waarden."' WHERE id='".$_SESSION['user_id']."'";
   $query = mysql_query($sql);
if($query == TRUE) {
$test = '6' - $aantal;
    echo '<br> Je db_waarden is met 1 gestegen';
   }
else{
        echo "Er is een probleeem opgetreden, je kan nog '.$aantal.' keer stemmen, vragen beandwoorden.";
    echo "<br>Er is dus niks veranderd";
}
  
}
else{   //dit zorgt ervoor
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="nl" xml:lang="nl">
  <head>

    <meta http-equiv="Content-Language" content="nl" />
    <link rel="stylesheet" type="text/css" href="../style.css" />
    <title><?= $sitenaam ?> - Vragen</title>
  </head>
  <body>

<!--Hier kan je aan gaan werken demi!---!>
<form action="deo.php" method="post" name="vragen"/>


<br>
Vraag 1:<br>
<? echo $dva ?><br>
<input type="text" name="va"><br>
<br>
Vraag 2:<br>
<? echo $dvb; ?><br>
<input type="text" name="vb"><br>
<br>
Vraag 3:<br>
<? echo $dvc; ?><br>
<input type="text" name-"vc"><br>
<br>
Vraag 4:<br>
<? echo $dvd ?><br>
<input type="text" name="vd"><br>
<br>
<input type="submit" value="Test je kennis!" name="submit">
<?
}
}

?>

Maar hoe kan het dat vraag 3 altijd fout is?
regel 117
Gewijzigd op 01/01/1970 01:00:00 door carlo boy
 
- SanThe -

- SanThe -

15/03/2009 21:36:00
Quote Anchor link
Dit is een toekenning en geen vergelijking.
if($aa = $va){

Dit is een vergelijking.
if($aa == $va){
 
Carlo  boy

carlo boy

16/03/2009 21:52:00
Quote Anchor link
dat heb ik ook geprobeerd, de andere doe ik het ook zo en die doen het goed.

Het lijkt wel dat = het zelfde doet als ==.
ps. hoe vind je me scriptje, is ie niet onveilig?

als ik nu goed me script bekijk, zie ik aan de kleurtjes dat er een paar fouten zitten.
Ik gebruik bv. de hele tijd $dva
en spellings fouten zitten erin.

Dan zie ik dat ik $_SESSION niet controleer.
en dat geld ook voor $_POST.
Hier kan een hacker niet makkelijk SQL injecion toe passen.

Hij kan html gebruiken
En hij kan xss gebr..
Gewijzigd op 01/01/1970 01:00:00 door carlo boy
 
Jesper Diovo

Jesper Diovo

16/03/2009 22:37:00
Quote Anchor link
- Je controleert niet op je $_SESSION variabelen in je query;
- Waarom mysql_fetch_object?? Een resultset is geen object;
- Waarom htmlspecialchars gebruiken over velden waar probably een int uit komt?
- Gebruik if($_SERVER['REQUEST_METHOD'] == "POST") voor controle op een submit i.p.v. if(isset($_POST['submit']));
- Niet overzichtelijk ingesprongen en dus geen overzichtelijk script;
- Ik wed dat er wel wat HTML errors in zitten, dus niet xHTML valid;
- Waarom quotes om cijfers?
- Ontzettend veel spellingsfouten. Kijk eens goed naar je Nederlands!
- Onzorgvuldig gebruik van ' en ";
- In je queries hoeven getallen óók niet omringt te worden door quotes. Als je veldtypen op int staan, wil het zo al! Is overigens nog een keer een extra beveiliging, bij invoering van een string zal de query dan erroren (geen quotes om de string is een unexpected error);
- Ik zou ook iets zorgvuldiger zijn in je variabelenamen. $sql is een query, en $query is een resultset. Dat doe je alleen aan het begin goed. Zo zijn er wel meerdere variabelen waar je iets duidelijk zou kunnen zijn. Ik doe het bijv. altijd zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$iGetal
= 99;
$sZin = 'Hoi, dit is PHPhulp.nl';
$bVeld = false;
$aLijst = array('Hoi', 'Doei', 'Welkom', 'Tot ziens');
?>

Snap je het principe van de kleine i, s, b en a? (resp. integer, string, boolean en array.)

Ik hoop dat je serieus naar deze kritieken gaat kijken en er alleen het positieve van in ziet. Ik heb deze kritieken genoteerd om jouw te helpen je script te verbeteren, onthoud dat ;-).
 
Klaasjan Boven

Klaasjan Boven

16/03/2009 22:44:00
Quote Anchor link
carlo schreef op 16.03.2009 21:52:
...Het lijkt wel dat = het zelfde doet als ==....


dat iets zo lijkt betekend nog niet dat het zo is
 
Carlo  boy

carlo boy

17/03/2009 08:08:00
Quote Anchor link
Klaasjan Boven schreef op 16.03.2009 22:44:
carlo schreef op 16.03.2009 21:52:
...Het lijkt wel dat = het zelfde doet als ==....


dat iets zo lijkt betekend nog niet dat het zo is


Weet ik, maar met mij scripje lijkt dat wel

@jezper

bedankt ik weet nu wat ik moet verbeteren.

over het overzicht, daarom heb ik ook instellingen gemaakt

maar nederlands is niet m'n sterkste vak.

Ik zal er aan werken
 

Pagina: « vorige 1 2



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.