No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Práctico de PHP

Curso Práctico de PHP

Ana Belisa Martínez

Ana Belisa Martínez

Validación Dinámica de Datos en Formularios Web

14/17
Recursos

¿Cómo optimizamos la interfaz y el análisis de datos en nuestro juego de ordenamiento?

Explorar la optimización de un juego de ordenamiento ofrece un sinfín de oportunidades para mejorar tanto en la interfaz como en el código de análisis. A medida que avanzamos con estos ajustes, no solo mejoramos la experiencia del usuario, sino que también perfeccionamos nuestra habilidad técnica al detectar errores e implementando soluciones más eficientes y organizadas.

¿Cuál fue el problema inicial al enviar datos?

Al comenzar con el juego, se presentaron varios errores que requerían atención inmediata:

  • El array enviado no mostraba todas las posiciones, únicamente la última posición ingresada.
  • El sistema solo proporcionaba feedback para tres inputs, aunque el usuario enviaba seis.

¿Por qué ocurrían estos problemas? El error radicaba en cómo se construían los inputs de manera dinámica. Si bien se usaban corchetes para acceder a la posición de un array, en realidad solo se necesitaba el nombre de la variable i para que los inputs se generaran correctamente. Además, el código de análisis no se había actualizado para validar todos los inputs.

¿Cómo implementamos una solución dinámica?

Para solucionar estos inconvenientes, es esencial hacer uso de estructuras de control dinámicas y eficientes.

  1. Actualización dinámica de inputs: Ajustamos el nombre de los inputs utilizando solo la variable de iteración para asegurar que cada input sea identificado correctamente.

  2. Uso de ciclos for para validaciones: En lugar de crear múltiples validaciones fijas, utilizamos un ciclo for para iterar a través del array de palabras de manera dinámica. Esto permite una validación más eficiente al comparar inputs del usuario con las respuestas esperadas.

for ($i = 0; $i < count($arrayPalabras); $i++) {
    if ($_REQUEST['palabra'.$i] == $arrayPalabras[$i]) {
        echo "La palabra ingresada es correcta.<br>";
    } else {
        echo "La palabra ingresada es incorrecta. La palabra correcta es: ".$arrayPalabras[$i]."<br>";
    }
}

¿Cómo corregimos errores y mejoramos la experiencia del usuario?

Incluso con una implementación brillante, es importante estar atento a posibles errores de tipeo o lógica que puedan comprometer el resultado final:

  • Errores tipográficos: Hubo un error al llamar al array con el nombre incorrecto, impidiendo la correcta validación. Corregir esto implicó asegurar que todos los nombres de variables fueran correctos y consistentes.

  • Limpieza del código: Eliminamos líneas de código innecesarias como print que solo eran útiles para los desarrolladores en la fase de depuración.

Después de estos ajustes, recargamos el formulario y constatamos que todas las palabras se validan correctamente, proporcionando al usuario un feedback claro y preciso sobre sus entradas.

¿Qué podemos aprender de este proceso?

Este recorrido a lo largo de la optimización del juego nos enseña una lección invaluable: la importancia de ser observadores, detallistas y pacientes ante errores. Los desarrolladores deben verificar cuidadosamente la lógica y los nombres de variables. Cada error es una oportunidad para mejorar, optimizar y desarrollar aplicaciones más robustas. Con las herramientas y el enfoque adecuados, podemos dar vida a interfaces más atractivas y funcionales. ¡Así que mantén la calma, sigue practicando y domina el arte de la programación!

Aportes 31

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Logre llegar hasta este punto

Una mejora que se le podría hacer al código sería la de implementar HERENCIA, en nuestro archivo ´analisis.php´ con solo agregar una sola linea de código y borrar otra.

<?php
require 'index.php'; //Mandando a llamar nuestro archivo 'index.php', obtenemos las variables de el, y asi heredamos el array de las palabras de ese archivo y aqui ya no copiamos el array sino que lo mandamos a llamar desde el 'index.php'

for ($i = 0; $i < count($palabras); $i++) {

    if ($_REQUEST["palabra" . $i] === $palabras[$i]) {
        echo "Si es esa palabra." . "<br>";
    } else {
        echo "Incorrecto, la solucion es: " . $palabras[$i] . "<br>";
    }
}

14. Finalizando nuestro juego

Les comparto el código hecho en clase:

Esto corresponde al archivo analisis.php:

<?php

//print_r($_REQUEST);
$wordsList = ["sol", "luna", "cielo", "luz", "estrellas", "lluvia"];

for ($i=0; $i < count($wordsList); $i++) {
    if($_REQUEST["word".$i] == $wordsList[$i]) {
        echo "La palabra ingresada es correcta.<br>";
    } else {
        echo "La palabra ingresada es incorrecta, y la palabra correcta es: $wordsList[$i].<br>";
    }
}

Me salió bien por fin!!

gran curso

Tratando de mejorar la presentación y organización del proyecto llegué a esta solución donde además de los archivos index.php (formulario inicial) y result.php (resultados) agregue uno más: controller.php. En controller.php manejo el array al que tendrán acceso las dos páginas de presentación y en ellas tan solo ‘pinto’ lo que se necesita. Adicional también investigué un poco tratando de organizar mejor el resultado en el html. ¡Anexo los ejemplos!

Estructura de archivos:

  • index.php
  • result.php
  • controller.php
  • style.css!

index.php

<?php
require_once "controller.php";
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Put the words in order</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <h1>Put the words in order</h1>
    <p>Escribe correctamente las siguientes palabras</p>
    <form action='result.php'>
        <?php for ($i = 0; $i < count($words); $i++) : ?>
            <label for="word_<?= $i ?>"><?= str_shuffle($words[$i]) ?></label>
            <input type="text" name="word_<?= $i ?>">
        <?php endfor ?>
        <button type='submit'>Analizar resultados</button>
    </form>
</body>

</html>

result.php

<?php
require_once "controller.php";
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Put the words in order</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <h1>Put the words in order</h1>
    <p>Estos son los resultados de tu intento</p>
    <div class="result">
        <?php for ($i = 0; $i < count($words); $i++) : ?>
            <?php if ($_REQUEST["word_" . $i] === $words[$i]) : ?>
                <p><span class="score">¡Acertaste!</span> La palabra ingresada es correcta</p>
            <?php else : ?>
                <p><span class="fail">¡Fallaste!</span> La palabra correca es <strong><?= $words[$i] ?></strong></p>
            <?php endif ?>
        <?php endfor ?>
    </div>
    <button type="button" onclick="window.open('index.php', '_self')">Volver a jugar</button>
</body>

</html>

controller.php

<?php
$words = [
    "sol",
    "luna",
    "cielo",
    "casa",
    "perro",
];
 

style.css

* {
  box-sizing: border-box;
  font-family: sans-serif;
}

body {
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  background-color: azure;
}

h1 {
  text-transform: capitalize;
  margin-bottom: 0;
  color: darkslateblue;
}

input[type='text'],
label {
  display: block;
}

form {
  width: 500px;
}

label {
  margin: 0.5em 0 0.2em;
}

input[type='text'] {
  width: 100%;
  padding: 0.8em 1em;
  border: 1px solid grey;
}

button {
  padding: 1em 1.5em;
  background-color: darkslateblue;
  color: whitesmoke;
  border: none;
  border-radius: 2em;
  text-transform: uppercase;
  margin: 2em;
  margin-inline: auto;
  display: block;
  text-decoration: none;
}
.score,
.fail {
  padding: 0.5em 1em;
  display: inline-block;
  border-radius: 2em;
}
.score {
  background-color: greenyellow;
}
.fail {
  background-color: crimson;
}

main
<?php

$words = array(“moon”, “soccer”, “playing”);
$form = “<form action =‘analysis.php’>”;

//* makes messy words

for($i = 0; $i < count($words); $i++){
$form .= “The word: " . str_shuffle($words[$i]) .” “. “<input type=‘text’ name='word”. $i .”’>" . “<br>”;
}

$button = “<button type=‘submit’>Send</button>”;
$formClose = “</form>”;

echo $form . $button . $formClose;
?>

<?php

analisis

$words = array(“moon”, “soccer”, “playing”);

for ($i=0; $i <count($words) ; $i++) {
if($_REQUEST[“word” .$i] == $words[$i]) {
echo "The word is correct. " . “<br>”;

}else {
echo "The word is incorrect, the word is: " . $words[$i] . “<br>”;
}
}
?>

<?php
print_r($_REQUEST);

$palabras = array(“sol”,“luna”,“cielo”,“luz”,“estrellas”,“lluvia”);

for ($i = 0; $i < count($palabras); $i++) {
$palabra = $_REQUEST[“palabra” . $i];
if ($palabra == $palabras[$i]) {
echo “La palabra " . $palabra . " es correcta <br/>”;
} else {
echo “La palabra " . $palabra . " es incorrecta <br/>”;
}
}
?>

muy buena explicacion va paso a paso…

<?php
// print_r($_REQUEST);

$palabras = array(“sol”, “luna”, “cielo”, “luz”, “estrellas”, “lluvia”);

for($i = 0; $i < count($palabras); $i++){
if($_REQUEST[“palabra” .$i] == $palabras[$i]){
echo “La palabra ingresada es correcta” ."<br>";
} else {
echo “La palabra ingresada es incorrecta, la palabra correcta es: " .$palabras[$i] .”<br>";
}
}

```html <html lang="es"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Curso PHP | Microproyecto: Juego de Ordenamiento</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" > <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css"> </head> <body>

Microproyecto: Juego de Ordenamiento

<form action="" method="POST" class=""> "; } ?> <button type="submit" class="btn btn-primary btn-sm w-100">Enviar</button> </form>

Entradas


"; for($i=0; $i<count($palabras) ; $i++){ if($_REQUEST["palabra$i"] == $palabras[$i]){ echo "La palabra ingresada es CORRECTA!!!"; echo "<br>"; }else{ echo "La palabra ingresada es incorrecta, la respuesta correcta es: " . $palabras[$i]; echo "
"; } } } ?>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"> </script> </body> </html> ```\\<html lang="es"> \<head>    \<meta charset="utf-8">    \<meta name="viewport" content="width=device-width, initial-scale=1">    \<title>Curso PHP | Microproyecto: Juego de Ordenamiento\</title>    \<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" >    \<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">\</head> \<body>    \    \
        \

Microproyecto: Juego de Ordenamiento\

                \
            \<form action="" method="POST" class="">            \";                }             ?>                 \<button type="submit" class="btn btn-primary btn-sm w-100">Enviar\</button>            \</form>        \
        \
            \

Entradas\

            \\
";                     for($i=0; $i\<count($palabras) ; $i++){                        if($\_REQUEST\["palabra$i"] == $palabras\[$i]){                            echo "La palabra ingresada es CORRECTA!!!";                            echo "\<br>";                        }else{                            echo "La palabra ingresada es incorrecta, la respuesta correcta es: " . $palabras\[$i];                            echo "\
";                        }                    }                }             ?>        \
            \
        \<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"        integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous">    \</script>\</body> \</html>
```js "; }else{ echo "la palabra ingresada no es correcta, la palabra correcta es: ".$palabras[0]."
"; } if($_REQUEST["palabra1"]==$palabras[1]){ echo "la palabra ingresada es correcta"."
"; }else{ echo "la palabra ingresada no es correcta, la palabra correcta es:".$palabras[1]."
"; } if($_REQUEST["palabra2"]==$palabras[2]){ echo "la palabra ingresada es correcta"."
"; }else{ echo "la palabra ingresada no es correcta, la palabra correcta es:".$palabras[2]."
"; } */ print_r($_REQUEST); $palabras = array("sol","luna","cielo","luz","estrellas","lluvia"); for($i=0; $i<count($palabras);$i++){ if($_REQUEST["palabra".$i]==$palabras[$i]){ echo "la palabra ingresada es correcta"."<br>"; }else{ echo"la palabra ingresada es incorrecta, la palabra correcta es:". $palabras[$i]."
"; } } ?> ```
```js $palabras = array("sol","luna","cielo","luz","estrellas","lluvia"); $form = "<form action='analisis.php'>"; for($i=0;$i<count($palabras);$i++){ $form .="la palabra:".str_shuffle($palabras[$i])." "."<input type ='text' name='palabra".$i."'>"."
"; } $button = "<button type='submit'>Enviar</button>"; $formcierre = "</form>"; echo $form.$button.$formcierre; ?> ```
Le comparto el codigo del formulario y del codigo php que valida las respuestas. ```js "Sol", "palabra2" =>"Luna", "palabra3" =>"Tierra", "palabra4" =>"Aire", "palabra5" =>"Fuego", "palabra6" =>"Lluvia", "palabra7" =>"Trueno", "palabra8" =>"Atmosfera",); $palabras_desordenadas = array(); foreach ( $palabras_correctas as $palabra => $indice){ $palabras_desordenadas[$palabra] = str_shuffle($indice); } $html = "<form action='analiza.php' method='post'> "; foreach ($palabras_desordenadas as $indice => $p) { $html .= "
    <label for='$indice'>$p</label> <input type='text' name= '$indice'>
"; } $html .= " <button type='submit'> Validar </button> </form>"; echo $html; ?> ``````js "Sol", "palabra2" =>"Luna", "palabra3" =>"Tierra", "palabra4" =>"Aire", "palabra5" =>"Fuego", "palabra6" =>"Lluvia", "palabra7" =>"Trueno", "palabra8" =>"Atmosfera",); $html = "<html>"; foreach ($_REQUEST as $indice => $palabra) { $html .= ""; } $html .= "</html>
"; if ( $palabra == $palabras_correctas[$indice] ) $html .= "La respuesta a la $indice es Correcta " ; else $html .= "La respuesta a la $indice es Incorrecta " ; $html .= "
"; print_r($html); ?> ```

[](

![]()

Actualización del juego 💚.


Main


<?php

//* Palabras iniciales
$palabras = ["sol", "luna", "cielo", "luz", "estrellas", "lluvia"];

$form = "<form action='analisis.php' >";

// *Mezcla de palabras
for ($i = 0; $i < count($palabras); $i++) {
  $form .= "La palabra:" . str_shuffle($palabras[$i]) . " " . "<input type='text' name='palabra" . $i . "'>" . "<br/>";
}

$button = "<button type='submit'>Enviar 😎</button>";
$formcierre = "</form>";

echo $form . $button . $formcierre;
?>

Analisis


<?php

//* Palabras iniciales
$palabras = ["sol", "luna", "cielo", "luz", "estrellas", "lluvia"];

// *Verificar respuesta usuario
for ($i = 0; $i < count($palabras); $i++) {
  if ($_REQUEST["palabra" . $i] == $palabras[$i]) {
    echo "<br>Adivininaste 🎉 las respuesta es correcta<br>";
  } else {
    echo "<br>Incorrecto 🥺, la palabra es {$palabras[$i]}<br>";
  }
}
?>


supermal explicado todo, no explicó en el curso nada sobre como instalar wamp ni nada.

<?php

$palabras = array('carro','triciclo','moto','bicicleta','camion','tractocamion');

$form = "<form action='analisis.php'>";

for ($i=0; $i <count($palabras); $i++) { 
   
    $form .="la palabra :".str_shuffle($palabras[$i])." "."<input type='text' name='palabra".$i."'>"."<br>";

}

$button = "<button type='submit'>Enviar</button>";
$form_cierre = "</form>";

echo $form.$button.$form_cierre;    

?>
<?php

print_r($_REQUEST);

$palabras = array('carro','triciclo','moto','bicicleta','camion','tractocamion');

echo "<br>";


for ($i=0; $i <count($palabras); $i++) { 
   
    if ($_REQUEST["palabra".$i] == $palabras[$i]) {
        
        echo "la palabra ingresada es correcta"."<br>";

    }else {
        echo "la palabra ingresada es incorrecta, la palabra ingreasada es: ".$palabras[$i]."<br>";
    }
}

?>

RETO3.PHP
$palabras = array(“sol”,“luna”,“cielo”,“estrellas”,“lluvia”);

$form = "<form action='analisis.php'>";
$conta=0;
foreach ($palabras as  $value) {
    $form.="La palabra; ".str_shuffle($value)." ".
    "<input type='text' name='pal".$conta++."'> <br>";
   

}

$button="<button type='submit'>Analizar</button>";
$formCierre="</form>";

echo $form.$button.$formCierre;

?>

ANALISIS.PHP

$palabras = array(“sol”,“luna”,“cielo”,“estrellas”,“lluvia”);

$conta=0;

foreach ($palabras as  $value) {
  
  if($_REQUEST["pal".$conta]==$value){
    
    echo "La palabra es correcta" . "<br>";

  } else {
    echo "La palabra ingresada es incorrecta,
    la palabra correcta es " . $value . "<br>";
    
  }
  $conta++;
}

Solo avisaré que tuve una idea al ver este capítulo. Es 14 de Septiembre de 2022, 00:38 horas.
Cuando resulte agregaré ya sea un vínculo a un video de lo que hace o un vínculo a una copia pública.

Esta parte es de las más valiosas que pueden utilizar, leer dinámicamente los inputs, obvio también la generación dinámica de los mismos.

index.php

<?php

$palabras = array("sol", "luna", "cielo","luz","estrellas","perro","otorrinolaringologo","odontologo");
$desorden = array();

foreach ($palabras as $value) {
    array_push($desorden,str_shuffle($value));
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <title>Document</title>
</head>
<body>
    <main class="mt-5">
        <h1 class="text-center">Adivina La Palabra</h1>
        <div class="container mt-5">
            <div class="row">
                <form class="form-group" action="analisis.php">
                    <?php
                    foreach ($desorden as $key => $value) {
                            echo "<div class='mb-3'>
                                        <label for='exampleInputPassword$key' class='form-label text-center'>$value</label>
                                        <input type='text' class='form-control' name='palabra$key' id='exampleInputPassword$key'>
                                  </div>";
                    }
                    ?>
                    <button type='submit' class="btn btn-primary">Enviar</button>
                </form>
            </div>
        </div>
    </main>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
</body>
</html>

analisis.php

<?php
$palabras = array("sol", "luna", "cielo","luz","estrellas","perro","otorrinolaringologo","odontologo");
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <title>Document</title>
</head>
<body>
    <main class="mt-5" >
        <div class="container">
            <div class="row align-items-center">
                <?php
                    foreach ($palabras as $key => $value) {
                        if ($_REQUEST["palabra$key"] == $value) {
                            echo "<div class='alert alert-success d-flex align-items-center' role='alert'>
                                    <svg class='bi flex-shrink-0 me-2' width='24' height='24' role='img' aria-label='Success:'><use xlink:href='#check-circle-fill'/></svg>
                                    <div>
                                        La Palabra Es Correcta Ascertaste
                                    </div>
                                </div>";
                        }else{
                            echo "<div class='alert alert-danger d-flex align-items-center' role='alert'>
                                    <svg class='bi flex-shrink-0 me-2' width='24' height='24' role='img' aria-label='Danger:'><use xlink:href='#exclamation-triangle-fill'/></svg>
                                    <div>
                                        La Palabra Correcta Era: $value
                                    </div>
                                </div>";
                        }
                    }
                ?>
            </div>
        </div>
    </main>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
</body>
</html>

muyyyyyyyy bieeeen

<?php 
    include "./common/verifyData.php";
    
    for ($i = 0; $i < count($word); $i++){
        
        if(verifyData($word[$i],$i) == false){
            echo " this word #".$_REQUEST["word".$i]
            ."# is not written correctly, the correct word is ".$word[$i].", ";

        }else{
            echo  $word[$i]." is written correctly, ";
        }
    }

?>

// verifyData file

<?php

$word = array("sun", "moon", "sky", "light","stars","rain");


function verifyData ($word,$index){

    if($_REQUEST["word".$index] == $word){
        return true;
    }

    return false;
}

Con este ejemplo pude hacer un tipo de formulario con opciones

<?php 

$Pregunta = '¿Que significa PID?';
$id_pregunta = "101";
$opciones = array( 
                'a' => "Proyecto integrador docente",
                'b' => "Protecion inteligente dedicada",
                'c' => "Proporcional integral derivativo",
                'd' => "Diseño integral proyectivo"   );
$answer="c";


$form = "<p>".$Pregunta."</p>";
$form .= "<form action= 'analisis.php'>";

foreach($opciones as $letra => $texto){
    
    $form .= "<input type='radio' name=".$id_pregunta." value=".$letra .    ">";
    $form .= "<label for=".$letra. ">".$texto."</label><br>";
}

$form.= "  <input type='submit' value='Verificar'>";
$form .="</form> ";

echo $form;

?>

Una refactorización del proyecto, espero que les sirva de ayuda, estoy repasando basico de php.

Index.php

<?php 

    $palabras = ['marcus', 'penicilina', 'maracuya', 'arbolada'];
    $wordsDeso = [];
    for ($i=0; $i < count($palabras); $i++) { 
        
        $wordsDeso[] = str_shuffle($palabras[$i]);
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ordenamiento</title>
</head>
<body>
    <main>
        <form action="result.php" method="POST">
            <?php for($i = 0; $i < count($wordsDeso) ; $i++):?>

                <label for="word<?=$i?>">La palabra es: <?=$wordsDeso[$i]?></label>
                <input type="text" name="word<?=$i?>"><br>

            <?php endfor;?>            
            <input type="submit" value="Enviar">
        </form>
    </main>
</body>
</html>

result.php

<?php

$resultados = respuesta();

foreach($resultados as $resultado ){
    echo $resultado . "<br>";
}

function respuesta()
{
    $palabras = ['marcus', 'penicilina', 'maracuya', 'arbolada'];
    $respuestas = [];
    if(isset($_REQUEST)) {
        
        $count= count($_REQUEST);
        for ($i=0; $i < $count; $i++) { 
            
            if($_REQUEST["word".$i] == $palabras[$i]) {

                
                $respuestas[] = "La respuesta es correcta . <br>";
            } else {
                $respuestas[] = "La respuesta no es correcta. La respuesta es: {$palabras[$i]}. <br>";
            }
        }
    }
    return $respuestas;
}


function messWord(array $array) : array {

    $result = [];
    foreach($array as $items) {
        $result[] = str_shuffle($items);
    }

    return $result;
}


?>

<?php

$palabras = array(“sol”, “luna”, “cielo”, “luz”, “estrellas”, “lluvia”);

$form ="<form action=‘analisis.php’>";

for($i = 0; $i < count($palabras); $i++){
$form .=“La palabra: " .str_shuffle($palabras[$i]). " “.
”<input type=‘text’ name='palabra”.$i."’>".
"<br>";
}

$button = “<button type=‘submit’>Enviar</button>”;
$formCierre = “</form>”;

echo $form.$button.$formCierre;

<?php

// print_r($_REQUEST);

// echo '<br>';

$words = array('sol', 'luna', 'cielo', 'luz', 'estrella', 'lluvia');

for ($i = 0; $i < count($words); $i++) {
    if ($_REQUEST["word{$i}"] == $words[$i]) {
        echo 'La palabra ingresada es correcta!<br>';
    } else {
        echo 'La palabra es incorrecta, la palabra correcta es: ' . $words[$i] . '<br>';
    }
}

?>
Se puede con un tercer fichero : palabras.php palabras.php \"; for ($i=0; $i < count($palabras) ; $i++) { $form .="La palabra: ".str\_shuffle($palabras\[$i])." ". "\<input type='text' name='posicion".$i."'>". "\
"; } $botonCierre = "\<button type='submit'>Enviar\</button>"; $formCierra = "\</form>"; echo $form.$botonCierre.$formCierra; ?> main.php \"; for ($i=0; $i < count($palabras) ; $i++) { $form .="La palabra: ".str\_shuffle($palabras\[$i])." ". "\<input type='text' name='posicion".$i."'>". "\
"; } $botonCierre = "\<button type='submit'>Enviar\</button>"; $formCierra = "\</form>"; echo $form.$botonCierre.$formCierra; ?> análisis.php \"; } ?>