ik ben bezig met een script, dan vul je een tafel in en dan moet je de goede antwoorde invullen:-P
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???
misschien heb je hier wat aan...


<?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);

?>
Waarschijnlijk helpt je dit wat meer op weg, en anders kom je maar weer met een vraag.

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:

<?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
	}
}
?>
ok, nog een keer, ik zal het probeeren...

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...
Sla deze dan eens op en test hem uit...
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.


<?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:

<?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
}
?>

Reageren