Hallo,

Ik ben bezig met een programmatje voor informatica om opdrachten met hexadecimaal rekenen te doen maar nu stuit ik op het volgende probleem, het controleren van het antwoord.

De functie om decimale getallen om te zetten naar hexadecimale getallen:


<?php
function dec_to_hex($dec)
{
$sign = "";
$h = "";
if( $dec < 0){ $sign = "-"; $dec = abs($dec); }

$hex = Array( 0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5,
6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 'A',
11 => 'B', 12 => 'C', 13 => 'D', 14 => 'E',
15 => 'F' );

do
{
$h = $hex[($dec%16)] . $h;
$dec /= 16;
}
while( $dec >= 1 );

return $sign . $h;
echo $sign;
}
?>



Hier loop ik vast:


<?php
$rand = rand(1,66535);
echo $rand;
?>

<br>
<br>
<form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
Antwoord: <input name="antwoord" type="text">
<br>
<br>
<input type="submit" name="Submit" value="Controleren!">
</form>


<?php
if ($_POST["antwoord"] == dec_to_hex($rand)) {
echo "Het antwoord is goed"; }
else { echo "Het antwoord is fout"; }
?>



als ik bij "if ($_post["antwoord etc. etc." invul == dec_to_hex(10) ofzow en ik vul dan als antwoord A in dan werkt het gewoon, dus het zit 'm ergens in de variabele $rand

graag tips want ik zit helemaal vast
Je hebt een form met action="" dus hij komt terug op de zelfde pagina, dit betekend dat $rand opnieuw geladen worden, de oplossing is maak een hidden field in je formulier:

<?php
echo '<input type="hidden" name="rand" value="'.$rand.'"/>';
?>


En dan bij de controle doe je:


<?php
if ($_POST["antwoord"] == dec_to_hex($_POST['rand'])) {
?>


Hoop dat dit helpt ;)
Probeer nu hidden field er in te maken maar lukt niet echt:

<form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
Antwoord: <input name="antwoord" type="text">
<br>
<input type="hidden" name="rand" value="***">
<br>
<br>
<input type="submit" name="Submit" value="Controleren!">
</form>



krijg maar niet uitgevogeld wat er nou op die *** moet komen, als ik gewoon een value neem en dan dec_to_hex() weg laat werkt het perfect, dus het zit net in de manier van $rand toewijzen als value in het hidden field, wat me nu net niet lukt dus als iemand dat weet zou top zijn.

En die functie komt van internet af ja, dus? :P moet gewoon zorgen dat het werkt, en zolang ik alles kan uitleggen maakt het mijn informatica docente niet uit, ik snap de meeste dingen wel als ik ze zie maar vind het lastig om er zelf op te komen

[size=xsmall]Toevoeging op 21/06/2011 18:29:28:[/size]

heb het al, als iemand dit nog ooit nodig heeft ofzow, je kan gewoon value="<?=$var?>" gebruiken

Reageren