Esse script em PHP está correto?

Estou tentando fazer esse exercício, mas não sei se o script está correto. O problema é que no final ele fica em um loop grande Alguém ajuda aê?

Escreva um programa que receba dois números, sendo que o primeiro é o início da lista e o segundo o final. Os dados deverão ser apresentados numa lista HTML Use While ";


<!DOCTYPE html>
<html>
<head>
<title>Exercício</title>
  <meta charset="UTF-8">
    <meta name="description" content="">
  <meta name="keywords" content="">
  <meta name="author" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<form metod="get" name="form">
<p>
<label for="N1">Primeiro Número</label>
<input type="number" id="N1" name="N1" required />
</p>
 
<p>
<label for="N2">Segundo Número</label>
<input type="number" id="N2" name="N2" required />
</p>
 
<button type="submit">Verificar</button>
</form>

<?php 


$i = 1;
while ( $i <= 2 ) {
	
    $valor1 = $_GET['N1'];
    $valor2 = $_GET['N2'];

	echo "<li>", $valor1, "</li>";
	echo "<li>", $valor2, "</li>";

}

?>

</body>
</html>

Onde está a expressão que incrementa a variável $i no while para que ele, em algum momento valha 100?
Tente assim:

<?php 
	$i = 1;
	while ( $i <= 100 ) {
		
		$valor1 = $_GET['N1'];
		$valor2 = $_GET['N2'];

		echo "<li>";
		echo $valor1;
		echo "</li>";

		echo "<li>";
		echo $valor2;
		echo "</li>";

		$i++;
	}
?>
1 curtida

Valeu :grinning:

Existe um pequeno problema com seu script e o meu script ambos colocam < li > antes do input, ou seja antes que eu envie os números para a entrada, o programa cria uma lista Quero criar a lista somente quando os números tiverem na entrada, tem como fazer ?

Mes script? Eu copiei o que tu fez e adicionei $i++. Em todo caso, use a função isset(), conforme a documentação:

A função isset() retornará FALSE se for usada em uma variável com o valor NULL . Lembrando que no PHP um byte NULL ( “\0” ) é diferente da constante NULL .

Fonte: PHP Manual - função isset.

Exemplo:

<?php 
	$i = 1;
	while ( $i <= 100 ) {
		$valor1 =  NULL;
		$valor2 =  NULL;
		$valor1 = $_GET['N1'];
		$valor2 = $_GET['N2'];

		if(isset($valor1) && isset($valor2)){
			echo "<li>";
			echo $valor1;
			echo "</li>";

			echo "<li>";
			echo $valor2;
			echo "</li>";

			$i++;
		}	
	}
?>
1 curtida

Não ficou certo, olha esse erro Notice: Undefined index: N1 , PHP Notice: Undefined index: N2 O que pode ter ocorrido?

Posso fazer como ? porém há um erro


<?php 

$i = 1;

$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];

while ($valor1 <= 1 && $valor2 <= 1){ 
    
  echo "<li>".$valor1 "</li>";    
  echo "<li>".$valor2 "</li>";

    $i++;

}

?>

Resolvido


<?php 

$i = 1;

$valor1 = $_GET['N1'];
$valor2 = $_GET['N2'];

while ($valor1 <= 1 && $valor2 <= 1){ 
    
  echo "<li>" , $valor1, "</li>";    
  echo "<li>" , $valor2,  "</li>";

    $i++;

}

?>

Corrigido, não sei pq coloquei o valor de 100 :smiley:

Tem como simplificar o GET? para $valores = $_GET[‘N1’], $_GET[‘N2’]; ?

Exemplo:

<html>
	<head>
	<title>Exercício</title>
	  <meta charset="UTF-8">
		<meta name="description" content="">
	  <meta name="keywords" content="">
	  <meta name="author" content="">
	  <meta name="viewport" content="width=device-width, initial-scale=1.0">
	</head>
	<body>

	<form method="get" name="form">
		<p>
		<label for="N1">Primeiro Número</label>
		<input type="number" id="N1" name="N1" required />
		</p>
		 
		<p>
		<label for="N2">Segundo Número</label>
		<input type="number" id="N2" name="N2" required />
		</p>
		 
		<button type="submit">Verificar</button>
	</form>
	<?php 
	$i = 1;
	while ($i <= 100){
		if(isset($_GET['N1']) && isset($_GET['N2'])){
		
		$valor1 = $_GET['N1'];
		$valor2 = $_GET['N2'];

			echo "<li>";
			echo $valor1;
			echo "</li>";

			echo "<li>";
			echo $valor2;
			echo "</li>";
			
			
		}
		$i++;
	}
	?>
	</body>
</html>

image

1 curtida