Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: JuszR en 1 Mayo 2011, 14:58 pm



Título: Variable estatica
Publicado por: JuszR en 1 Mayo 2011, 14:58 pm
Tengo un form el cual pide un número al usuario, se manda (por POST) y checa si es igual al número aleatorio que se genera, el tema es que cada vez que se manda el form, el número cambia.
Entonces, ¿cómo puedo hacer que una variable sea estática (que qued el mismo valor)?

Este es mi codigo:
Código
  1. <?php
  2.  
  3. if (isset($_POST['submit']))
  4. {
  5.        $guessNumber = rand(1,500);
  6. $numero = $_POST['numero'];
  7. if(empty($numero) || !is_numeric($numero))
  8. {
  9. echo '<font color="#FF0000">Field is empty or invalid input</font>';
  10. }
  11. elseif($numero > $guessNumber)
  12. {
  13. echo '<font color="#FF0000">'. $numero . ' is too high</font>';
  14. }
  15. elseif($numero < $guessNumber)
  16. {
  17. echo '<font color="#FF0000">'. $numero . ' is too low</font>';
  18. }
  19. else
  20. echo '<font color="#000080">'. $numero . ' is the number!</font>';
  21.  
  22. }
  23. ?>


Título: Re: Variable estatica
Publicado por: merolhack en 1 Mayo 2011, 15:52 pm
Lo puedes hacer con sesiones, si es que ese valor que quieres que se mantenga es colo para 1 usuario.

Inicias la sesión, y en una variable guardas el numero en random, tipo:
Código:
<?php
// Si no esta establecida la variable, en la sesion del usuario...
if ( !isset($_SESSION['random']) ) {
$_SESSION['random'] = rand(1,500);
}
?>

Si lo que quieres es que la constante no se genere cada vez, solo genérala una vez afuera del script y la pones asi:
define('__MI_CONSTANTE', 'tuvaloraqui' );


Título: Re: Variable estatica
Publicado por: JuszR en 1 Mayo 2011, 16:11 pm
Lo de las sesiones todavia no entiendo bien (no he llegado ;D ), pero intenté usar constantes y no sirvió, sigue variando el número:

Código
  1. <?php
  2. $randNum = rand(1,500);
  3.  
  4. define('GuessNumber', $randNum);
  5.  
  6. ?>


Título: Re: Variable estatica
Publicado por: merolhack en 1 Mayo 2011, 16:22 pm
jeje pes claro que varía el número, si lo inicializas cada vez que ves el formulario...

La idea con la sesiones es que definas 1 cuando ingrese un usuario, y esa constante permanezca hasta que el usuario cierre sesión o deje la pagina.

Busca en google sobre sesiones.

Saludos!