Ne modificare numar aleator dupa trimitere formular

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Stefan
Mesaje:117

Ne modificare numar aleator dupa trimitere formular

Salut, pun o poza ca sa fie mai evident ce vreau sa fac:
imgur.com/a/PeKMX

Deci vreau sa verific un numar generat random cu altul, dupa trimiterea formularului se genereaza alt numar, problema este urmatoarea, dupa ce se trimite formularul $numar isi schimba valoarea, cum as putea face ca $numar sa ramana acelasi ca inainte de trimiterea formularului?

Codul php pentru generarea numerelor:

Cod: Selectaţi tot

$numar = rand(0,50);

if(isset($_POST['submit'])){
  $numar2 = rand(0,15);
  if($numar > $numar2) echo 'da';
}
Cod pentru afisare

Cod: Selectaţi tot

<th>Numar generat: </th>
<?php if(!isset($_POST['submit'])){ ?>
	<td><div id="numar"><?php echo $numar; ?></div></td>
<?php } else {?>
	<td><div id="numar"><?php echo $numar2; ?></div></td>
<?php } ?>

MarPlo Mesaje:4343
Salut
Ar fi doua variante:
1. Inainte de trimitere formular retii primu $numar intr-un camp 'hidden' in formular. De exemplu:

Cod: Selectaţi tot

<input type='hidden' name='nr1' value='<?php echo isset($numar) ?$numar :''; ?>'/>
- Iar in php, se preia numarul din acel camp din formular:

Cod: Selectaţi tot

$numar = (isset($_POST['nr1']) && strlen($_POST['nr1'])>0) ? intval($_POST['nr1']) : rand(0,50);

2. Sau folosesti SESSION. Se retine $numar in session, si se preia de acolo daca acea sesiune exista:

Cod: Selectaţi tot

session_start();
$numar = (isset($_SESSION['nr1']) && isset($_POST['submit']))? $_SESSION['nr1'] : rand(0,50);
$_SESSION['nr1'] = $numar;

Subiecte similare