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

Interacción entre Formularios HTML y Scripts PHP

9/17
Recursos

¿Cómo mostrar datos de PHP en el navegador?

Mostrar datos de PHP en el navegador es una habilidad clave para cualquier desarrollador web. A través de la interacción entre formularios HTML y scripts PHP, podemos crear aplicaciones dinámicas y enriquecidas. Aquí exploraremos cómo estructurar un proyecto que haga justamente eso.

¿Cómo crear un formulario HTML?

Para empezar, debemos crear un nuevo documento HTML que servirá como nuestro formulario de entrada. Antes de proceder, es esencial tener una buena comprensión de HTML y CSS, algo que puedes profundizar en cursos adicionales si es necesario.

  • Estructura básica de HTML: Utiliza el doctype y elementos como <html>, <head>, y <body>.
  • Elemento <form>: Declara tu formulario con la etiqueta <form>.
  • <input type="text">: Añade un campo de texto para que el usuario ingrese datos. Este input deberá tener un atributo name, por ejemplo, nombre.
  • Botón de enviar: Incluye un botón <input type="submit"> para enviar los datos.
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Formulario</title>
</head>
<body>
    <form action="main.php" method="post">
        <input type="text" name="nombre" placeholder="Ingrese su nombre">
        <input type="submit" value="Enviar">
    </form>
</body>
</html>

¿Cómo recibir datos del formulario en PHP?

Ahora crearemos el archivo PHP denominado main.php. Este archivo se encargará de recibir y mostrar los datos enviados desde el formulario.

  • Declaración del Script PHP: Usa la extensión .php para el archivo.
  • Uso de $_REQUEST: Esta es una superglobal de PHP que te permite recuperar datos enviados a través de métodos HTTP, ya sea GET o POST.
<?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Recuperar el dato ingresado en el formulario
        $nombre = $_REQUEST['nombre'];
        
        // Imprimirlo en el navegador
        echo "Nombre ingresado: " . htmlspecialchars($nombre);
    }
?>

¿Cómo funciona la interacción entre HTML y PHP?

Al integrar HTML y PHP, creamos una interacción fluida donde los datos ingresados por el usuario se envían al servidor, se procesan y se devuelve un resultado. Aquí es crucial entender qué pasos seguir:

  1. Ingreso de datos: El usuario ingresa un valor en el campo de texto del formulario HTML.
  2. Envía los datos: Al presionar "Enviar", los datos se envían al script main.php mediante HTTP POST.
  3. Procesamiento y visualización: El PHP recibe los datos con $_REQUEST y utiliza echo para mostrarlos.

¿Qué hacer si no funcionan los scripts?

Ante fallos en los scripts, realiza estas verificaciones:

  • Revisar rutas: Asegúrate de que la ruta especificada en el 'action' apunte correctamente al archivo PHP.
  • Servicios locales: Confirma que el servidor local esté ejecutándose correctamente.
  • Errores de sintaxis: Verifica el código buscando errores de tipografía o sintaxis.

Este proceso de interacción entre HTML y PHP es solo el comienzo de lo que puedes conseguir con estas tecnologías. Con cada nueva habilidad, avanzas un paso más hacia convertirte en un desarrollador hábil y competente. ¡Sigue aprendiendo y experimentando nuevas cosas!

Aportes 22

Preguntas 10

Ordenar por:

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

Si no quieren instalar XAMPP o algún otro programa parecido, les recomiendo la extensión PHP Server en VS Code.

Para instalar su servidor local recomiendo XAMPP, aquí les dejo el siguiente link
https://platzi.com/clases/1812-fundamentos-wordpress/25803-instalacion-de-xampp/
Descargar XAMPP

9. Mostrando datos en HTML desde PHP

Como punto a tener en cuenta. No se menciona en la clase pero para poder ver en su navegador sus archivos php en localhost deben correr un servidor, lo más fácil es instalar y usar xamp o laragon, les dejo los enlaces para que lo puedan instalar:

Ambos son muy similares, como principal diferencia es que xampp usa MySQL y Laragon usa MariaDB.
.
Comparto el código de la clase:
.
formulario.html

<!DOCTYPE html>
<html lang="es">
<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>Formulario</title>
</head>
<body>
    <main>
        <form action="main.php" method="post">
            <label for="">Nombre:</label>
            <input type="text" name="Nombre" id="">
            <button type="submit">Enviar</button>
        </form>
    </main>
</body>
</html>

main.php

<?php
print_r($_REQUEST);

Documentación:

https://www.php.net/manual/en/reserved.variables.request

La verdad no hay que complicarse con el servidor simplente desde la carpeta donde esta sus archivos de PHP escriban el comando

php -S localhost:8000

y listo en el navegador escriben localhost:8080

Obviamnete ya deben tener instalado php
https://www.php.net/downloads.php

Nota:
Las variables en $_REQUEST se proporcionan al script a través de los mecanismos de entrada GET, POST, y COOKIE y por lo tanto pueden ser manipulados por el usuario remoto y no debe confiar en el contenido. La presencia y el orden de las variables listadas en este array se definen según la directiva de configuración PHP variables_order.

variables_order
Establece el orden de interpretación de variables EGPCS (Entorno, Get, Post, Cookie, y Servidor). Por ejemplo, si variables_order es “SP”, PHP creará las superglobals $_SERVER y $_POST, pero no creará $_ENV, $_GET, y $_COOKIE. Si se establece a “”, las variables superglobals no estarán disponibles.

Siguiendo las practicas de https://www.php-fig.org/psr/
No se usa el cierre de php si el archivo solo contiene codigo escrito en php.

antes que nada pues supongo que muchos tendrán preguntas del por que no les anda, para que funcione deben instalar xampp o algún servidor, en caso de que tengan xampp copiar los archivos html y main.php en la carpeta htdocs ubicada en la carpeta de instalación del xampp, una vez que el servidor este en linea normalmente es en el puerto 80 (localhost:80) o simplemente localhost si no hay ningún otro servidor en linea, seleccionan el archivo formulario y les funcionará, si esto no sirve, eliminen el archivo index.php de esta misma carpeta y vuelvan a localhost

Si no desean instalar ningún programa ni instalar ninguna extensión en visual studio Code les dejo este comando en la terminal para que se sientan un poco mas Hacker :V

Para que les funcione deben estar dentro de la carpeta donde correrán el archivo:
cd /direccion/
y escriben el siguiente comando

php -S localhost:5000

Eligen el puerto que deseen habilitar en este caso habilité el puerto 5000.

Use Laragon para Windows

Para los que tienen subsistema Linux (wsl) tambien se opuede correr. Deberan instalar php y MariaDB (hay cientos de articulos con el paso a paso) una vez instaldo, desde la consola pararse en el directorio que estan los archivos y correr el comando: php -S localhost:80. si da error probar con usuario root.
Despues de esto abrir en el navegador: localhost/formulario.html

Para arrancar apache con WSL:

sudo /etc/init.d/apache2 start 

Sobre el tema de la Instalación.
Dejo links a las respectivas clases.

Instalar Xampp en Win
Instalar PHP en Linux
Instalar PHP en macOSa

Programa que genera un número aleatorio entre 1 y 100 y hay que adivinar, hay un contador para ver cuanto se tarda en dar con el número

<?php
$numero=rand(1,100);
$contador=0;
do{
$valor=readline("Introduce el número ");
$contador++;
if ($numero>$valor) echo “El número es mayor de $valor\n”;
if ($numero<$valor) echo “El número es menor de $valor \n”;
}while ($numero!=$valor);
echo “Acertaste en $contador veces \n”;

alguien me puede ayudar con esto por favor, no entiendo porque me dio error, me devuelve a este video pero sigo sin entender:

Para los que pasaron peleando por horas y luego se vieron la cara con su error: **"Recuerden que los archivos se ejecutan desde la ruta por defecto"** /var/www/html/ \--esto lo corro en un ambiente linux, desconozco si es lo mismo en Win.
PHP trae un servidor web integrado. Es muy básico pero para esta serie de ejercicios nos sirve perfectamente. En mi caso, estoy usando Linux Mint, tenéis que abrir una nueva terminal, desplazaros en la línea de comandos hasta la carpeta donde se encuentren los archivos y ahí ejecutar el siguiente comando: php -S 127.0.0.1:8080 Pulsamos intro y ya solamente tendríamos que irnos a nuestro navegador e introducir 127.0.0.1:8080/nombre archivo.html Espero que les sirvan de ayuda. Saludos

Si no quieren usar XAMPP ahora MAMP también esta funcionando bien en Windows y Mac

php -S localhost:8080 con este comando crean un servidor con puro PHP

El examen final esta mal redactado … ayuda con la pregunta: Qué sucede si al finalizar una instrucción independiente no escribes un ; ???

$_REQUEST
No es un método de envío propiamente dicho, es decir, no podemos poner en un formulario HTML que el methodo sea REQUEST. Con la variable $_REQUEST recuperaremos los datos de los formularios enviados tanto por GET como por POST.
De esta forma de recuperar los datos de un formulario es que no tenemos que saber con cual método fue enviado, pero no podremos diferenciar una variable enviada por GET o por POST.
$_REQUEST da prioridad a los valores enviados por POST antes que a los enviados por GET (que podamos fijar en la URL del atributo “action” del formulario).
Fuente:aprenderaprogramar.com

Si están usando WSL, y les aparece la p{agina como si fuera texto, o se les descarga les recomiendo seguir una serie de pasos para verificar que esta funcionando PHP

  1. Verifiquen si PHP esta instalado, esto lo pueden hacer con el comando
sudo dpkg --get-selections | grep php
  1. Si no tienen instalado les recomiendo que vayan a la clase de Instalación de PHPen linux
  2. Si lo tienen instalado vayan a la carpeta usando
 cd /var/www/html
  1. Una vez que esten dentro de la carpeta escriban en su terminal
sudo /etc/init.d/apache2 start
  1. Si esto no les funciona, utilicen este comando
sudo service apache2 --full-restart
  1. Una vez allí, recarguen la página, y ahora si su código funcionará.

Espero sea de ayuda este mini turorial

Par los que usen GNU-Linux les recomiendo buscar que servidores recomienda, en la wiki respectiva de cada distribución.
Por mi parte uso lighttp en Manjaro linux.