Php script werkt niet goed
Het enige wat ik nog graag zou willen weten is hoe ik kan zorgen dat de "radio" ook daadwerkelijk gaat werken?
<head>
<title> Cijfer berekenen </title>
</head>
Code (php)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
if (!empty($_POST)){
$meerkeuzegoed = $_POST["meerkeuzegoed"];
$meerkeuzetotaal = $_POST["meerkeuzetotaal"];
$openvragengoed = $_POST["openvragengoed"];
$openvragentotaal = $_POST["openvragentotaal"];
$cijfermeerkeuzegoed = $meerkeuzegoed * 0.25;
$cijfermeerkeuzetotaal = $meerkeuzetotaal * 0.25;
$cijfermeerkeuze = $cijfermeerkeuzegoed / $cijfermeerkeuzetotaal;
$cijfermeerkeuze1 = $cijfermeerkeuze * 9;
$cijfermeerkeuze2 = $cijfermeerkeuze2 + 1;
$cijferopenvragengoed = $openvragengoed / $openvragentotaal;
$cijferopenvragen2 = $cijferopenvragengoed * 9;
$cijferopenvragen3 = $cijferopenvragen2 + 1;
$eindcijfer = 2 * $cijferopenvragen3;
$eindcijfer1 = $eindcijfer + $cijfermeerkeuze2;
$eindcijfer2 = $eindcijfer1 / 3;
echo "Antwoord: <hl>$eindcijfer2</hl><br>";
echo "<br>";
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "\" >Nog eens?</a>";
}
else {
?>
if (!empty($_POST)){
$meerkeuzegoed = $_POST["meerkeuzegoed"];
$meerkeuzetotaal = $_POST["meerkeuzetotaal"];
$openvragengoed = $_POST["openvragengoed"];
$openvragentotaal = $_POST["openvragentotaal"];
$cijfermeerkeuzegoed = $meerkeuzegoed * 0.25;
$cijfermeerkeuzetotaal = $meerkeuzetotaal * 0.25;
$cijfermeerkeuze = $cijfermeerkeuzegoed / $cijfermeerkeuzetotaal;
$cijfermeerkeuze1 = $cijfermeerkeuze * 9;
$cijfermeerkeuze2 = $cijfermeerkeuze2 + 1;
$cijferopenvragengoed = $openvragengoed / $openvragentotaal;
$cijferopenvragen2 = $cijferopenvragengoed * 9;
$cijferopenvragen3 = $cijferopenvragen2 + 1;
$eindcijfer = 2 * $cijferopenvragen3;
$eindcijfer1 = $eindcijfer + $cijfermeerkeuze2;
$eindcijfer2 = $eindcijfer1 / 3;
echo "Antwoord: <hl>$eindcijfer2</hl><br>";
echo "<br>";
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "\" >Nog eens?</a>";
}
else {
?>
<form name="form1" method="post" action="">
Aantal behaalde punten meerkeuze: <br>
<input name="meerkeuze1" type="text"> <br>
Totaal aantal punten meerkeuze: <br>
<input name="meerkeuze2" type="text"> <br>
Aantal behaalde punten openvragen: <br>
<input name="openvragen1" type="text"> <br>
Totaal aantal punten openvragen: <br>
<input name="openvragen2" type="text"> <br>
<br>
<input type="radio" name="cijfermeerkeuze2" value="meerkeuze">Het cijfer voor meerkeuze<br>
<input type="radio" name="cijferopenvragen3" value="open">Het cijfer voor open vragen<br>
<input type="radio" name="eindcijfer2" value="totaal">Het cijfer voor de gehele toets<br>
<input type="submit" name="Submit" value="Bereken"> <br>
</form>
</div>
</form>
</div>
</div>
?>="meerkeuze1" type="text"> <br>
Totaal punten meerkeuze vragen: <input name="meerkeuze2" type="text"> <br>
Totaal open vragen: <input name="Totaal open vragen" type="text"> <br>
Totaal punten open vragen: <input name="Totaal punten open vragen" type="text"> <br>
<input type="radio" name="cijfermeerkeuze" value="meerkeuze">Het cijfer voor meerkeuze<br>
<input type="radio" name="cijferopen" value="open">Het cijfer voor open vragen<br>
<input type="radio" name="cijfer" value="totaal">Het cijfer voor de gehele toets<br>
<input type="submit" name="submit" value="Uitrekenen">
<input type="reset" name="reset" value="wissen">
</form>
Als Meerkeuze maar werkt is het al goed!
Groeten Milou T.
Gewijzigd op 10/07/2011 16:33:35 door M t
1. een post controleer je met $_SERVER['REQUEST_METHOD'] == 'POST'
2. empty is een zinlose functie, zoek zelf maar op waarom dat zo is
3. je dient elk veld wat in je form zit controleren en valideren
4. wat denk jij dat % betekent binnen het php taaltje
5. $_SERVER['PHP_SELF'] zal je ook niet moeten gebruiken
6. maak geen overbodige variabelen aan
7. escapen is een overbodige actie
8. php variabelen buiten quotes
En debug je code ook eens door bijvoorbeeld een var_dump te doen van variabelen
Rekenkundig ligt jouw probleem bij puntje 4.
http://php.net/manual/en/language.operators.php
Gewijzigd op 10/07/2011 15:43:23 door Noppes Homeland
Noppes Homeland noemt wel allemaal punten maar die punten heb ik zo uit het boek gehaald.. dus daar mag het niet aan liggen.
Koop een nieuw boek uit het jaar 2011 en niet uit de middeleeuwen. Ga verder eens kijken naar de punten die Noppes opnoemt en vertel dan wat er niet goed gaat (FOUTMELDINGEN?)
Het werk allemaal wel, alleen ik heb aanvinkhokjes.. en die werken niet..
Zonder deze hokjes werkt alles prima.
M t op 10/07/2011 16:07:59:
Sorry, dat zal niet gaan het is een opdracht voor school.
Het werk allemaal wel, alleen ik heb aanvinkhokjes.. en die werken niet..
Zonder deze hokjes werkt alles prima.
Het werk allemaal wel, alleen ik heb aanvinkhokjes.. en die werken niet..
Zonder deze hokjes werkt alles prima.
Dan heb je een slechte school met slechte boeken. Maar wij gaan niet jouw opdracht oplossen, je zult zelf wat meer iniatief moeten tonen...
Ik ga wel naar een ander toppic hier voelen mensen zich nogal goed..!
M t op 10/07/2011 16:13:51:
Ik ga wel naar een ander toppic hier voelen mensen zich nogal goed..!
Hoogmoed komt voor de val, maar dat slaat eerder op de manier waarop jij reageert dan de manier waarop wij jou proberen te helpen.
Gewijzigd op 10/07/2011 16:17:17 door Noppes Homeland
Daarom ben ik hier dus voor hulp, maar ik moet me wel zo veel mogelijk aan het boekje houden. de $_SERVER['PHP_SELF'] zal ik dus niet mogen veranderen.
Hij doet het nu ongeveer, ik heb het topic ook even bijgewerkt met daar nog 1 vraag in vermeld.. als jullie daar antwoord op zouden kunnen/willen geven zou dat fijn zijn en ben ik tevreden.
1. Het is niet toegestaan maatregelen te nemen tegen SQL injectie, XSS of andere vormen van veiligheidsproblemen.
2. Elke vorm van controle en validatie van user input wordt niet getolereerd.
3. Het niet gebruiken van $_SERVER['PHP_SELF'] levert minpunten op.
Serieus, we proberen je te helpen om goede code te schrijven. Dat je er echt wat van leert. Het zou overigens handig zijn geweest als je je oorspronkelijke vraag had laten staan. Anyway het antwoord op je vraag: geef elk radio input dezelfde name, dan kan je die gebruiken in je $_POST. De waarde ervan is wat in je value staat.
En ik ga er ook zeker wat mee doen (omdat ik ook voor in mijn eigen websites over wat meer PHP kennis wil bezitten) .
Groeten, en bedankt