I need to receive data in PHP page and keep page running [closed]

-2

I'm having trouble with web development work, which asks for the following:

  

1 - Build a page that draws an integer from 1 to 10 and   ask the user what the "imagined" number is.   should indicate whether the attempt made by the user is greater or less than   than the number drawn and count the number of attempts.
3 -   When the user can set the number, the program should   classify the user as:
- > 1 attempt: very lucky;
  - > From 2 to 3 attempts: lucky;
- > 4 to 5 attempts: normal;
- > More than 5 attempts: Below average;

The code I made is this:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">

    <title>Atividade 8 Slide 9</title>      
</head>
<body>  

    <div>

        <form method="get" action="atividade9.php">
            <fieldset>
                <legend>Atividade 9</legend>
                <label for="txt" accesskey="1">Nº imaginado</label>
                <input type="number" id="int" name="a" placeholder="Digite aqui o número"/>
                <button type="submit">Enviar</button>
            </fieldset>         
        </form>

        <?php 

            session_start();
            if($_SESSION[1] == null || $_SESSION[2] == null)
            {
                echo 'ativando session';
                $_SESSION[1] = 1;
                $_SESSION[2] = rand(1, 10);
            }

            $i = $_SESSION[1];
            $b = $_SESSION[2];

            if (isset($_GET['a'])) {
                $a = $_GET['a'];
            }

            if ($a == $b) {
                if ($i == 1) {
                    echo '<p>muito sortudo</p>';
                }
                else if ($i < 3) {
                    echo '<p>sortudo</p>';  
                }
                else if ($i < 5) {
                    echo '<p>normal</p>';
                }
                else {
                    echo '<p>abaixo da médio</p>';
                }
                session_destroy();
            } 
            else if ($a > $b){
                echo '<p>Maior que o número</p>';
                $i++;
                echo '<p>I = '. $i .' B = '. $b .'</p>';
                $_SESSION[1] = $i;  
            } 
            else if ($a < $b) {
                echo '<p>Menor que o número</p>';
                $i++;
                echo '<p>I = '. $i .' B = '. $b .'</p>';
                $_SESSION[1] = $i;
            }                               
        ?>

    </div>
</body>
</html>

The page can only use php and html, and even using session I could not make the variables keep the value at every attempt of the user.

    
asked by anonymous 25.02.2017 / 23:16

2 answers

1

Note: The session_start () function must be the first line in your document. Before any HTML tags The session name can not consist only of digits, at least one letter must be present. Otherwise a new session id is generated every time.

<?php 
session_start();

if($_SESSION["s1"] == null || $_SESSION["s2"] == null)
{

 $_SESSION["s1"] = 1;
 $_SESSION["s2"] = rand(1, 10);

 echo 'ativando session';

}

$i = $_SESSION["s1"];
$b = $_SESSION["s2"];

if (isset($_GET['a'])) {
  $a = $_GET['a'];

  if ($a == $b) {
    if ($i == 1) {
      echo '<p>muito sortudo</p>';
    }
    else if ($i < 3) {
      echo '<p>sortudo</p>'; 
    }
    else if ($i < 5) {
      echo '<p>normal</p>';
    }
    else {
       echo '<p>abaixo da m&eacute;dia</p>';
    }
    session_unset();
    session_destroy();
  } 
  else if ($a > $b){
    echo '<p>Maior que o n&uacute;mero</p>';
    $i++;
     echo '<p>I = '. $i .' B = '. $b .'</p>';
     $_SESSION["s1"] = $i; 
  } 
  else if ($a < $b) {
     echo '<p>Menor que o n&uacute;mero</p>';
     $i++;
     echo '<p>I = '. $i .' B = '. $b .'</p>';
     $_SESSION["s1"] = $i;
   } 

} 
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Atividade 8 Slide 9</title> 
</head>
<body> 

<div>

<form method="get" action="atividade9.php">
<fieldset>
<legend>Atividade 9</legend>
<label for="txt" accesskey="1">N&ordm; imaginado</label>
<input type="number" id="int" name="a" placeholder="Digite aqui o n&uacute;mero"/>
<button type="submit">Enviar</button>
</fieldset> 
</form>

</div>
</body>
</html>
    
26.02.2017 / 04:22
2

Look, I recommend you take a good look at How to Ask a Good Question

But as you are learning, I commented the whole code, I hope you read, understand and redo the code for better learning.

<?php
// Inicia a sessão
    session_start();

// Verifica se existe um POST   
    if(isset($_POST['enviar']))
    {
        // Verifica se existe a tentativas  
            if(isset($_SESSION['tentativas']) && isset($_SESSION['sorteado']))
            {
                // Recupera os dados
                    $tentativas = $_SESSION['tentativas'];
                    $_SESSION['tentativas']++;
                    $sorteado   = $_SESSION['sorteado'];
            }else
            {
                // Cria a sessão tentativas & sessão sorteado
                    $_SESSION['tentativas'] = 1;
                    $_SESSION['sorteado']   = rand(1,10);

                    $tentativas = $_SESSION['tentativas'];
                    $sorteado   = $_SESSION['sorteado'];
            }

        // Pegando número digitado
            $numero  = addslashes($_POST['numero']);

        // Fazendo as verificações
            if( ($numero) == $sorteado )
            {
                // Verifica o número de tentativas
                    if( ($tentativas) == 1 )
                    {
                        // Exibe mensagem
                            echo "Você acertou em  ".$tentativas." tentativa(s);<br />";
                            echo "Nível de tentativa: Muito sortudo(a)";

                        // Destroi as sessões   
                            session_destroy();

                    }elseif( ($tentativas) > 1 && $tentativas < 4 )
                    {
                        // Exibe mensagem
                            echo "Você acertou em  ".$tentativas." tentativa(s);<br />";
                            echo "Nível de tentativa: Sortudo(a)";

                        // Destroi as sessões
                            session_destroy();

                    }elseif( ($tentativas) > 3 && $tentativas < 6 )
                    {
                        // Exibe mensagem
                            echo "Você acertou em  ".$tentativas." tentativa(s);<br />";
                            echo "Nível de tentativa: Normal";

                        // Destroi as sessões
                            session_destroy();

                    }elseif( ($tentativas) > 5 )
                    {
                        // Exibe mensagem
                            echo "Você acertou em  ".$tentativas." tentativa(s);<br />";
                            echo "Nível de tentativa: Abaixo da média";

                        // Destroi as sessões
                            session_destroy();
                    }

            }elseif( ($numero) > $sorteado ) 
            {
                // Exibe mensagem
                    echo "Tente um número menor <br />";
                    echo "Tentativa número ".$tentativas."<br />";

            }elseif( ($numero) < $sorteado )
            {
                // Exibe mensagem
                    echo "Tente um número maior <br />";
                    echo "Tentativa número ".$tentativas."<br />";
            }
    }
?>
<!DOCTYPE HTML><html>
<head>
    <title>Tentativas</title>
</head>

<body>

    <!--Formulário-->
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
            Qual número sorteado ? <input type="number" name="numero" /> 
            <input type="submit" name="enviar" value="Enviar" />
        </form>
    <!--// Formulário-->

</body>

Note : Do not want anything " chewed " because there will be no learning for yourself, > exception "because I found the idea intriguing.

    
26.02.2017 / 04:07