Andrés Schuster
PreguntaAquí mi aporte.
la unica diferencia es que utilice include para traerme el array desde el archivo main.
Aquí mi código del main.php
<?php $wordsArray = array("sol", "luna", "cielo", "luz", "estrella", "lluvia"); $form = "<form action='./validate.php'>"; for ($i=0; $i < count($wordsArray); $i++) { $form.= "Escribe correctamente la palabra: ".str_shuffle( $wordsArray[$i]). "<input type='text' name='word".$i."' >". "<br/>"; } $button ="<button type='submit'>Enviar</button>"; $formClose = "</form>"; echo $form.$button.$formClose; ?>
Y aqui el de el archivo que valida
<?php include_once './main.php'; for ($i=0; $i < count($wordsArray); $i++) { if($_REQUEST["word".$i] == $wordsArray[$i]){ echo "La palabra ingresada es correcta <br/>"; } else { echo "La palabra ingresada es incorrecta. La palabra correcta es: ". $wordsArray[$i] . '<br/>'; } } ?>
Mi duda es que al uilizar require se me imprime todo el formulario nuevamente en el archivo de validación.
Cómo pudiera traer solo el array sin imprimir el contenido de main.php en el archivo de validate.php?

Juan Manuel Alemán Rodríguez
Hola Andrés, no es necesario que utilices el include o el require ya que esas sentencias solo se usan para agregar un script con funciones o código extra que quisieras usar sin necesidad de escribirlo en el actual fichero, en el caso de tu codigo ya estas enviando el array desde el archivo main.php mediante el formulario:
$form = "<form action='./validate.php'>";
Con lo anterior le estarías enviando los datos del ingresados en el input y en el script validate.php los recibiría y posteriormente los leerías con $_REQUEST. Todo lo anterior sin nececidad de agregar el fichero main.php en el script de validate.php, abajo te dejo los enlaces de la documentación de la sentencia include, espero sea de utilidad.
www.php.net/manual/es/function.include-once.php www.baulphp.com/como-usar-include-y-require-en-php-ejemplos