<?php
session_start();
if (!isset($_SESSION['attempts'])) {
// Creo las variables de sesión
$_SESSION['max_attempts'] = 5;
$_SESSION['attempts'] = 0;
$_SESSION['number_random'] = random_int(0, 100);
$_SESSION['correct_answer'] = false;
$_SESSION['message'] = '';
}
if (isset($_POST['number'])) {
if (!preg_match('/^[0-9]+$/', $_POST['number'])) {
$_SESSION['message'] = 'El valor ingresado no es valido';
} else {
$number_user = (int) $_POST['number'];
$_SESSION['attempts']++;
// Evaluo si es un número
if ($number_user == $_SESSION['number_random']) {
$_SESSION['message'] = 'Genial adivinaste el número!, lo haz hecho en ' . $_SESSION['attempts'];
$_SESSION['message'] .= $_SESSION['attempts'] > 1 ? ' intentos' : ' intento';
$_SESSION['correct_answer'] = true;
// Compruebo alcanzó el número máximo de intentos
} elseif ($_SESSION['attempts'] == $_SESSION['max_attempts']) {
$_SESSION['message'] = 'El número de intentos finalizó, el número era ' . $_SESSION['number_random'];
// Compruebo si el número es menor que el random
} elseif ($number_user < $_SESSION['number_random']) {
$_SESSION['message'] = 'El número es mayor que ' . $number_user;
// Compruebo si el número es mayor que el random
} elseif ($number_user > $_SESSION['number_random']) {
$_SESSION['message'] = 'El número es menor que ' . $number_user;
}
}
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Random Number - Sessions</title>
</head>
<body>
<?php if ($_SESSION['correct_answer'] || $_SESSION['attempts'] == $_SESSION['max_attempts']) {?>
<p>
<?php
echo $_SESSION['message'];
session_destroy();
unset($_SESSION['attempts']);
unset($_POST);
?>
<a href="">¿Quiere volver a intentarlo?</a>
</p>
<?php } else {?>
<h1>Adivina un número entre 0 - 100</h1>
<p>Para ello cuentas con 5 intentos</p>
<p><b>Número de intentos restantes: </b><?php echo $_SESSION['max_attempts'] - $_SESSION['attempts']; ?></p>
<p style="color: red;"><?php echo $_SESSION['message']; ?></p>
<form action="" method="POST">
<input type="text" name="number" placeholder="Ingresa un número">
<input type="submit" value="Submit">
</form>
<?php }?>
</body>
</html>