random nummer hetzelfde
Maar als ik rand(0,10) doe krijg ik (logies) bij de if vergelijking iets anders dan wat je had moeten invullen, ik heb al gebrobeert met case, maar hetzelfde pprobleem....
hoe zorg je dat die rand hetzelfde blijft???
Ik snap eigelijk niet precies wat je bedoelt, maar ik denk dat je wel wat aan sessions hebt
maar ik bedoel dus dat ik het getal niet kan controleren omdat de random steeds verandert
heb je misschien een stukje van je code dan kunnen we/ik het beter zien?
Nog eens. Even diep ademen. En leg nou nog eens duidelijk uit wat de bedoeling is. Ik denk dat niemand hier ook maar enigszins iets van begrijpt.
http://www.skateboardmove.nl/test/rekenen/begin.php
vul daar een tafel in(voor het gemak 1:P)
dan druk je op klikerdeklik
en dan kom je bij begin2.php
hier de code van begin2.php
Nu snap je denk ik wel wat er gebeurt..
als ik het ga controleeren bij if ($uitkomst == $_POST["ingevuld"]) { krijg je natuurlijk een heel ander antwoord dan wat je in moest vullen..
ik hoop dat het zo duidelijk is..
vul daar een tafel in(voor het gemak 1:P)
dan druk je op klikerdeklik
en dan kom je bij begin2.php
hier de code van begin2.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$rand = rand(0,10);
if (!isset($_POST["ingevuld"])) {//als er niks is ingevuld
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<?php echo $rand ?>x<?php echo $_SESSION["tafel"] ?> = <input type="text" name="ingevuld" />
<input type="submit" name="verzend" value="vul in!" />
</form>
<?php
} else {//als er wel iets ingevuld is
$uitkomst = $rand*$_SESSION["tafel"];//maak de uitkomst
if ($uitkomst == $_POST["ingevuld"]) {//als het goed is ingevuld
echo "goed!";
} else {//dus als het fout is ingevuld
echo "fout!";
}
}
?>
$rand = rand(0,10);
if (!isset($_POST["ingevuld"])) {//als er niks is ingevuld
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<?php echo $rand ?>x<?php echo $_SESSION["tafel"] ?> = <input type="text" name="ingevuld" />
<input type="submit" name="verzend" value="vul in!" />
</form>
<?php
} else {//als er wel iets ingevuld is
$uitkomst = $rand*$_SESSION["tafel"];//maak de uitkomst
if ($uitkomst == $_POST["ingevuld"]) {//als het goed is ingevuld
echo "goed!";
} else {//dus als het fout is ingevuld
echo "fout!";
}
}
?>
Nu snap je denk ik wel wat er gebeurt..
als ik het ga controleeren bij if ($uitkomst == $_POST["ingevuld"]) { krijg je natuurlijk een heel ander antwoord dan wat je in moest vullen..
ik hoop dat het zo duidelijk is..
Als je iets invult en je drukt op vul in refresht de pagina. Dus krijgt $rand een nieuwe inhoud.
Ik stel voor om $rand in een cookie te zetten, en dan na de else er dit van te maken:
Code (php)
EDIT: typo
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
Wil je misschien iets meer uitleg geven??
heel erg bedankt, ook hoe snel de mensen hier reageren:P
je vult bijv 1 in en dan wil je laten zien:
1×1 = 1
2×1 = 2
3×1 = 3
..×.. = ..
etc etc
of niet?
Het is voor school, dan moeten kinderen dus antwoord geven op die vraag:P
Edit:
sorry dat ik het altijd zo vaag uitleg maar ik ben nog maar een kind:P
sorry dat ik het altijd zo vaag uitleg maar ik ben nog maar een kind:P
Gewijzigd op 01/01/1970 01:00:00 door tim
Oo_dj_tm_oO schreef op 09.04.2007 18:53:
nee
Het is voor school, dan moeten kinderen dus antwoord geven op die vraag:P
Het is voor school, dan moeten kinderen dus antwoord geven op die vraag:P
Edit:
sorry dat ik het altijd zo vaag uitleg maar ik ben nog maar een kind:P
sorry dat ik het altijd zo vaag uitleg maar ik ben nog maar een kind:P
Kijk dat moeten we hebben :P
Ik ben ook nog wel kind ^^ (pas 13) voeg je me toe @ msn (kijk maar in profiel wat die is)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
<?php
ob_start();
$tafel = 10; // Welke tafel het is
$begin = 1; // Wat de kleinste vermenigvuldiginsfactor is
$einde = 10; // Wat de grootste vermenigvuldiginsfactor is
// Een nieuwe som bedenken
$nieuw = rand($begin,$einde);
// Als er nog geen cookie bestaat
if(empty($_COOKIE['rand'])){
setcookie('rand',$nieuw);
}
// De som
echo $tafel.' x '.$nieuw;
?>
<!-- Het formulier -->
<form action="" method="get">
<input name="antwoord" type="text" />
<input type="submit" value="Controlleer" />
</form>
<?php
if(!empty($_GET['antwoord'])){
$antwoord = $_GET['antwoord'];
// Controlleren
if($antwoord == ($_COOKIE['rand']*$tafel)){
// Goed
echo '<p>Goed</p>';
}else{
// Fout
echo '<p>FOUT</p>';
}
}
// Nieuwe som opslaan
setcookie('rand',$nieuw);
?>
ob_start();
$tafel = 10; // Welke tafel het is
$begin = 1; // Wat de kleinste vermenigvuldiginsfactor is
$einde = 10; // Wat de grootste vermenigvuldiginsfactor is
// Een nieuwe som bedenken
$nieuw = rand($begin,$einde);
// Als er nog geen cookie bestaat
if(empty($_COOKIE['rand'])){
setcookie('rand',$nieuw);
}
// De som
echo $tafel.' x '.$nieuw;
?>
<!-- Het formulier -->
<form action="" method="get">
<input name="antwoord" type="text" />
<input type="submit" value="Controlleer" />
</form>
<?php
if(!empty($_GET['antwoord'])){
$antwoord = $_GET['antwoord'];
// Controlleren
if($antwoord == ($_COOKIE['rand']*$tafel)){
// Goed
echo '<p>Goed</p>';
}else{
// Fout
echo '<p>FOUT</p>';
}
}
// Nieuwe som opslaan
setcookie('rand',$nieuw);
?>
Overigens leg je iets niet extra vaak uit omdat je een kind bent, maar omdat iemand het niet begrijpt. Dat kan komen omdat ie niet bekend is met wat je zegt of omdat je het niet goed uitlegt. Dat laatste geldt in dit geval.
Dus leg het eens goed uit, adhv code/voorbeelden/dit voorbeeld, wat je precies wilt.
Uit de losse pols:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(!empty($_POST['ingevuld'])){
$a_ses = $_SESSION['array']; //session array in var zetten.
//controle gaan uitvoeren
}
else{
$a_range = range(0, 10); //array vullen van 0 - 10
shuffle($a_range); // shufflen
$_SESSION['array'] = $a_range; //sessie proppen
foreach($a_range as $nr){ // per waarde in de array wat doen
//op het scherm gooien
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<?php echo $nr ?>x<?php echo $_SESSION["tafel"] ?> = <input type="text" name="ingevuld" />
<input type="submit" name="verzend" value="vul in!" />
</form>
<?php
}
}
?>
if(!empty($_POST['ingevuld'])){
$a_ses = $_SESSION['array']; //session array in var zetten.
//controle gaan uitvoeren
}
else{
$a_range = range(0, 10); //array vullen van 0 - 10
shuffle($a_range); // shufflen
$_SESSION['array'] = $a_range; //sessie proppen
foreach($a_range as $nr){ // per waarde in de array wat doen
//op het scherm gooien
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<?php echo $nr ?>x<?php echo $_SESSION["tafel"] ?> = <input type="text" name="ingevuld" />
<input type="submit" name="verzend" value="vul in!" />
</form>
<?php
}
}
?>
Dit programma wordt voor school.
een leerling vult een getal in b.v. de tafel van 2..
dan komt op de volgende pagina een invulvak.
daar voor staat de som, dus de 2 (is ingevuld) en een random getal.
alleen met dat randomgetal gaat dat mis, want elke keer is het random getal anders, dus kan ik het niet controleeren..
nu zoek ik een manier om dat getal wel hetzelfde te krijgen, maar op de manier van arjan, geeft ie een foutmelding van header alredie sent...
zo kan je namelijk eerst een tafel kiezen, en dan wordt er een som gemaakt met de tafel + een random getal, en het antwoord wordt later gecontrolleerd.
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
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
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
<?php
ob_start();
// Kijken of er wel een tafel is gekozen...
if(!empty($_GET['tafel']) and is_numeric($_GET['tafel'])){
$tafel = $_GET['tafel']; // Welke tafel het is
$begin = 1; // Wat de kleinste vermenigvuldiginsfactor is
$einde = 10; // Wat de grootste vermenigvuldiginsfactor is
// Een nieuwe som bedenken
$nieuw = rand($begin,$einde);
// Als er nog geen cookie bestaat
if(empty($_COOKIE['rand'])){
setcookie('rand',$nieuw);
}
// De som
$som = $tafel.' x '.$nieuw;
?>
<p><a href="<?=$_SERVER['PHP_SELF']?>">Andere tafel</a></p>
<!-- Het formulier -->
<form action="" method="get">
<?=$som?> = <input name="antwoord" type="text" />
<input name="tafel" type="hidden" value="<?=$tafel?>" />
<input type="submit" value="Controlleer" />
</form>
<?php
if(!empty($_GET['antwoord'])){
$antwoord = $_GET['antwoord'];
// Controlleren
if($antwoord == ($_COOKIE['rand']*$tafel)){
// Goed
echo '<p>Goed</p>';
}else{
// Fout
echo '<p>FOUT</p>';
}
}
// Nieuwe som opslaan
setcookie('rand',$nieuw);
}else{
?>
<!-- Het formulier om tafel te kiezen -->
<form action="" method="get">
<input name="tafel" type="text" />
<input type="submit" value="Maak tafel" />
</form>
<?php
}
?>
ob_start();
// Kijken of er wel een tafel is gekozen...
if(!empty($_GET['tafel']) and is_numeric($_GET['tafel'])){
$tafel = $_GET['tafel']; // Welke tafel het is
$begin = 1; // Wat de kleinste vermenigvuldiginsfactor is
$einde = 10; // Wat de grootste vermenigvuldiginsfactor is
// Een nieuwe som bedenken
$nieuw = rand($begin,$einde);
// Als er nog geen cookie bestaat
if(empty($_COOKIE['rand'])){
setcookie('rand',$nieuw);
}
// De som
$som = $tafel.' x '.$nieuw;
?>
<p><a href="<?=$_SERVER['PHP_SELF']?>">Andere tafel</a></p>
<!-- Het formulier -->
<form action="" method="get">
<?=$som?> = <input name="antwoord" type="text" />
<input name="tafel" type="hidden" value="<?=$tafel?>" />
<input type="submit" value="Controlleer" />
</form>
<?php
if(!empty($_GET['antwoord'])){
$antwoord = $_GET['antwoord'];
// Controlleren
if($antwoord == ($_COOKIE['rand']*$tafel)){
// Goed
echo '<p>Goed</p>';
}else{
// Fout
echo '<p>FOUT</p>';
}
}
// Nieuwe som opslaan
setcookie('rand',$nieuw);
}else{
?>
<!-- Het formulier om tafel te kiezen -->
<form action="" method="get">
<input name="tafel" type="text" />
<input type="submit" value="Maak tafel" />
</form>
<?php
}
?>
Zo moet het namelijk lukken...
EDIT:
Deze is met meerdere velden:
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
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
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
<?php
session_start();
// Kijken of er wel een tafel is gekozen...
if(!empty($_POST['tafel']) and is_numeric($_POST['tafel'])){
$tafel = $_POST['tafel']; // Welke tafel het is
$begin = 1; // Wat de kleinste vermenigvuldiginsfactor is
$einde = 10; // Wat de grootste vermenigvuldiginsfactor is
// Een nieuwe som bedenken
$nieuw = range($begin,$einde); //array vullen van $begin - $einde
shuffle($nieuw); // shufflen
// Als er nog geen sessie bestaat
if(empty($_SESSION['rand'][0]) or !empty($_GET['nieuw'])){
$_SESSION['rand'] = $nieuw;
}
?>
<p><a href="<?=$_SERVER['PHP_SELF']?>">Andere tafel</a></p>
<!-- Het formulier -->
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<?php
$i = 1;
foreach($_SESSION['rand'] as $maal){
// Als deze al is ingevult, de ingevulde waarde opnieuw in het veld zetten
if(isset($_POST['antwoord'][$i-1])){
$antwoord = $_POST['antwoord'][$i-1];
if($antwoord == $_SESSION['rand'][$i-1]*$tafel){
$result = '<span style="color: green;">is Goed</span>';
}else{
$result = '<span style="color: red;">is FOUT</span>';
}
}else{
$antwoord = '';
$result = '';
}
// Som nummer - Som - invul veld (incl ingevulde antwoord) - Goed/fout
?>
<p><strong><?=$i++?>:</strong> <?=$tafel.' x '.$maal?> = <input name="antwoord[]" type="text" value="<?=$antwoord?>" /> <?=$result?>
<?php
} // Foreach eindigen
?>
<input name="tafel" type="hidden" value="<?=$tafel?>" /></p>
<input type="submit" value="Controlleer" />
</form>
<?php
}else{
?>
<!-- Het formulier om tafel te kiezen -->
<form action="<?=$_SERVER['PHP_SELF']?>?nieuw=ja" method="post">
<input name="tafel" type="text" />
<input type="submit" value="Maak tafel" />
</form>
<?php
}
?>
session_start();
// Kijken of er wel een tafel is gekozen...
if(!empty($_POST['tafel']) and is_numeric($_POST['tafel'])){
$tafel = $_POST['tafel']; // Welke tafel het is
$begin = 1; // Wat de kleinste vermenigvuldiginsfactor is
$einde = 10; // Wat de grootste vermenigvuldiginsfactor is
// Een nieuwe som bedenken
$nieuw = range($begin,$einde); //array vullen van $begin - $einde
shuffle($nieuw); // shufflen
// Als er nog geen sessie bestaat
if(empty($_SESSION['rand'][0]) or !empty($_GET['nieuw'])){
$_SESSION['rand'] = $nieuw;
}
?>
<p><a href="<?=$_SERVER['PHP_SELF']?>">Andere tafel</a></p>
<!-- Het formulier -->
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<?php
$i = 1;
foreach($_SESSION['rand'] as $maal){
// Als deze al is ingevult, de ingevulde waarde opnieuw in het veld zetten
if(isset($_POST['antwoord'][$i-1])){
$antwoord = $_POST['antwoord'][$i-1];
if($antwoord == $_SESSION['rand'][$i-1]*$tafel){
$result = '<span style="color: green;">is Goed</span>';
}else{
$result = '<span style="color: red;">is FOUT</span>';
}
}else{
$antwoord = '';
$result = '';
}
// Som nummer - Som - invul veld (incl ingevulde antwoord) - Goed/fout
?>
<p><strong><?=$i++?>:</strong> <?=$tafel.' x '.$maal?> = <input name="antwoord[]" type="text" value="<?=$antwoord?>" /> <?=$result?>
<?php
} // Foreach eindigen
?>
<input name="tafel" type="hidden" value="<?=$tafel?>" /></p>
<input type="submit" value="Controlleer" />
</form>
<?php
}else{
?>
<!-- Het formulier om tafel te kiezen -->
<form action="<?=$_SERVER['PHP_SELF']?>?nieuw=ja" method="post">
<input name="tafel" type="text" />
<input type="submit" value="Maak tafel" />
</form>
<?php
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk