Los formularios se pueden enviar a la propia página web utilizando PHP. El objetivo principal de enviar formularios a uno mismo es para la validación de datos. La validación de datos significa verificar que los datos requeridos se ingresen en los campos del formulario.
PHP_SELF es una variable que devuelve el script actual que se está ejecutando. Puede utilizar esta variable en el campo de acción del formulario. El campo de acción del formulario indica dónde enviar los datos del formulario cuando el usuario presiona el botón Enviar. La mayoría de las páginas de PHP mantienen la validación de datos en la misma página que el formulario en sí.
Una ventaja de hacer esto es que, en caso de un cambio en la estructura del sitio web, el código de validación de datos para el formulario y el formulario permanecen juntos.
Fragmento de código:
<form name=”form1″ method=”post” action=”<?php echo htmlspecialchars($_SERVER[‘PHP_SELF’]); ?>” >
Explicación:
- $_SERVER[‘PHP_SELF’]: $_SERVER[“PHP_SELF”] es una variable súper global que devuelve el nombre de archivo del script que se está ejecutando actualmente. Envía los datos del formulario enviado a la misma página, en lugar de saltar a una página diferente.
- htmlspecialcharacters(): La función htmlspecialchars() convierte caracteres especiales en entidades HTML. Reemplazará los caracteres HTML como < y >. Esto evita ataques de secuencias de comandos por parte de atacantes que explotan el código insertando código HTML o Javascript en los campos del formulario.
Nota: los piratas informáticos pueden explotar fácilmente el $_SERVER[‘PHP_SELF’] mediante secuencias de comandos entre sitios insertando un ‘/’ en la URL y luego una secuencia de comandos vulnerable, pero htmlspecialcharacters() es la solución, convierte los caracteres HTML de el sitio en código redundante inofensivo.
El siguiente ejemplo ilustra el enfoque anterior:
Ejemplo:
php
<!DOCTYPE html> <html> <head> </head> <body> <?php // Defining variables $name = $email = $level = $review = ""; // Checking for a POST request if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = test_input($_POST["name"]); $email = test_input($_POST["email"]); $review = test_input($_POST["review"]); $level = test_input($_POST["level"]); } // Removing the redundant HTML characters if any exist. function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP Form Example: GFG Review</h2> <form method="post" action= "<?php echo htmlspecialchars($_SERVER[" PHP_SELF "]);?>"> Name: <input type="text" name="name"> <br> <br> E-mail: <input type="text" name="email"> <br> <br> Review For GFG: <textarea name="review" rows="5" cols="40"> </textarea> <br> <br> Satisfaction Level: <input type="radio" name="level" value="Bad">Bad <input type="radio" name="level" value="Average">Average <input type="radio" name="level" value="Good">Good <br> <br> <input type="submit" name="submit" value="Submit"> </form> <?php echo "<h2>Your Input:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $review; echo "<br>"; echo $level; ?> </body> </html>
Producción:
- Antes de enviar:
- Después de enviar:
También puede insertar funciones para verificar los valores ingresados según los requisitos y mostrar la validación en consecuencia. Los formularios PHP que se envían a sí mismos encuentran muchas aplicaciones en la validación de datos y el formato de entrada de la base de datos.
Publicación traducida automáticamente
Artículo escrito por chitrankmishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA