⊗ppPmFmOFH 299 of 447 menu

Procesamiento de formulario en un solo archivo PHP

En la lección anterior, nuestro formulario estaba ubicado en una página y se enviaba a otra. En realidad, esto no es necesario. Si se deja el atributo action vacío o se elimina completamente, el formulario se enviará a esta misma página.

Cómo funcionará esto: en la primera visita a la página, llenaremos el formulario con datos y haremos clic en el botón. Después de esto, la página se actualizará y su código se ejecutará nuevamente, pero esta vez con los datos del formulario.

Veamos un ejemplo. Supongamos que tenemos en un mismo archivo el formulario y su procesamiento:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

En la primera visita a la página, la función var_dump mostrará un array vacío. Y después de enviar el formulario, mostrará los datos del formulario. Es decir, la primera vez $_GET estará vacío, y la segunda vez - contendrá los datos del formulario.

Esto puede causar problemas. Supongamos, por ejemplo, que introducimos números en el formulario y queremos mostrar la suma de estos números en la pantalla:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

En este caso, en la primera visita a la página veremos errores de PHP, relacionados con el hecho de que el array $_GET está vacío, y nosotros accedemos a sus elementos.

Cabe decir aquí que puede que los errores no aparezcan en su navegador. En este caso, compruebe que tiene activada la visualización de errores de PHP, y también asegúrese de que es su primera visita a la página y que no hay datos del formulario en la barra de direcciones.

Arreglemos el problema. Para ello, añadiremos una condición en la que comprobaremos si el formulario ha sido enviado.

Por ejemplo, se puede comprobar si $_GET no está vacío. Si $_GET no está vacío - entonces el formulario fue enviado y se puede realizar la suma. En caso contrario, todavía estamos en la primera visita a la página y la suma no se realizará. He aquí el código corregido:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Pregunte al usuario su apellido, nombre y patronímico. Después de enviar el formulario, muestre en la pantalla los datos introducidos.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar