Latest web development tutorials
×

PHP curso

PHP curso PHP breve introducción PHP instalar PHP gramática PHP variable PHP echo/print PHP Tipos de datos PHP constante PHP cadena PHP operadores PHP If...Else PHP Switch PHP formación PHP Ordenación de un conjunto PHP superglobals PHP While circulación PHP For circulación PHP función PHP Las variables mágicas PHP Los espacios de nombres PHP Orientado a Objetos

PHP formulario

PHP formulario PHP autenticación de formularios PHP formulario - Los campos necesarios PHP formulario - correo electrónico de verificación y la URL PHP instancia completa formulario PHP $_GET variable PHP $_POST variable

PHP Tutorial avanzado

PHP Las matrices multidimensionales PHP fecha PHP contener PHP expediente PHP Cargar archivo PHP Cookie PHP Session PHP E-mail PHP seguridad E-mail PHP Error PHP Exception PHP filtro PHP filtro avanzado PHP JSON

PHP 7 nuevas características

PHP 7 nuevas características

PHP base de datos

PHP MySQL breve introducción PHP MySQL conexión PHP MySQL La creación de una base de datos PHP MySQL Crear una tabla de datos PHP MySQL insertar datos PHP MySQL Insertar datos múltiples PHP MySQL Sentencias preparadas PHP MySQL leer datos PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX breve introducción AJAX PHP AJAX base de datos AJAX XML AJAX búsqueda en tiempo real AJAX RSS Reader AJAX voto

PHP Manual de referencia

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Procesamiento de imágenes PHP RESTful

PHP Formulario de Validación

En este capítulo se explica cómo utilizar nuestros datos de formularios PHP presentados por la validación del cliente.


PHP Formulario de Validación

nota Al tratar de forma PHP debemos tener en cuenta la seguridad.

En este capítulo le mostraremos la seguridad de datos procesamiento de formulario PHP, con el fin de evitar que los hackers y spam necesitamos para asegurar la validación de los datos del formulario.

formulario HTML se describe en esta sección contiene los siguientes campos de entrada: se debe utilizar con los campos de texto opcionales, botones de radio, y los botones de envío:

Ver código >>

Por encima de forma reglas de validación son los siguientes:

campo Las reglas de validación
nombre Must. + Contener sólo letras y espacios
E-mail Must. + Debe ser una dirección válida de correo electrónico (incluyendo '@' y '.')
sitio Must. Si está presente, debe contener una URL válida
observación Must. campo de entrada de varias líneas (campo de texto)
género Must. Debe seleccionar una

En primer lugar, veamos el código de formulario HTML plano:


campo de texto

"Nombre", "E-mail" y el campo "URL" es un elemento de entrada de texto, el campo "notas" es un área de texto. código de HTML de la siguiente manera:

“名字”: <input type="text" name="name">
E-mail: <input type="text" name="email">
网址: <input type="text" name="website">
备注: <textarea name="comment" rows="5" cols="40"></textarea>

botón de opción

campo "género" es un botón de opción, el código HTML se ve así:

性别:
<input type="radio" name="gender" value="female">女
<input type="radio" name="gender" value="male">男

Los elementos de formulario

código de formulario HTML de la siguiente manera:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

Utilice estemétodo método = "post"formulario para enviar datos.

nota Lo que es $ _SERVER [ ""] PHP_SELF variables?

$ _SERVER [ "PHP_SELF"] es una variable muy global, devuelve el nombre del archivo de script ejecutándose actualmente asociado a la raíz del documento.

Por lo tanto, $ _SERVER [ "PHP_SELF"] enviará los datos del formulario de la página actual, en lugar de pasar a una página diferente.

nota ¿Cuál es el método htmlspecialchars ()?

htmlspecialchars () para algunos caracteres predefinidos en entidades HTML.

Los personajes predefinidos son:

  • Y (Ampersand) se convierte en & amp;
  • "(Cita doble) se convierte en & quot;
  • '(Cita individual) se convierte en & # 039;
  • <(Menor que) se convierte en & lt;
  • > (Mayor que) se convierte en & gt;


PHP forma necesaria para provocar la atención a donde?

$ _SERVER [ ""] PHP_SELF las variables podría ser utilizado por los hackers!

Cuando los hackers utilizando cross-site scripting enlace HTTP para atacar, $ _ SERVER [ "PHP_SELF"] variable se implanta en el script del servidor. La razón es que a través del sitio de archivo de secuencias de comandos ejecutable se une al camino detrás, por lo que $ _SERVER [ "PHP_SELF"] cadena contendrá enlaces HTTP detrás del código JavaScript.

nota XSS también conocido como CSS (escritura Cross-Site), cross-site scripting ataques. Un atacante malintencionado para insertar en la página web malicioso código html, cuando un usuario navega por la página, Web incorporado dentro del código HTML será ejecutado para lograr el propósito específico del usuario malicioso.

Especificar el archivo siguiente formulario denominado "test_form.php":

<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

Ahora, utilizamos la dirección URL para enviar la dirección "test_form.php" especificada, como se muestra en el código anterior se modifica de la siguiente manera:

<form method="post" action="test_form.php">

Si lo hace, bueno.

Sin embargo, teniendo en cuenta que el usuario introduzca la siguiente dirección en la barra de direcciones del navegador:

http://www.w3big.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

La dirección de arriba, será interpretado como el siguiente código y ejecutarlo:

<form method="post" action="test_form.php/"><script>alert('hacked')</script>

Añadir un código de etiqueta de script y añadir comandos de alerta. Cuando se carga la página se ejecutará el código Javascript (el usuario verá una ventana emergente). Esto es sólo un ejemplo sencillo para ilustrar la variable PHP_SELF será utilizada por los piratas informáticos.

Tenga en cuenta que cualquier código JavaScript se puede añadir a la etiqueta <script>! Los hackers pueden utilizar esta página para redirigir a un servidor en otra página, el archivo de la página de códigos para proteger el código malicioso, el código puede ser modificado para obtener las variables globales o los datos del formulario de usuario.


¿Cómo evitar el $ _SERVER [ "PHP_SELF"] ser explotados?

$ _SERVER [ "PHP_SELF"] por htmlspecialchars () para evitar ser explotados.

formar código como sigue:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

htmlspecialchars () para algunos caracteres predefinidos en entidades HTML. Ahora bien, si el usuario quiere utilizar variables PHP_SELF, los resultados son de salida como sigue:

<form method="post" action="test_form.php/&quot;&gt;&lt;script&gt;alert('hacked')&lt;/script&gt;">

El intento fracasó vulnerabilidad!


la validación de los datos del formulario Uso de PHP

En primer lugar hemos presentado datos a la función de usuario () se procesa a través de htmlspecialchars PHP.

Cuando usamos los htmlspecialchars () función, el usuario intenta enviar los siguientes campos de texto:

<script>location.href('http://www.w3big.com')</script>

El código no se ejecutará, ya que se guardará como código de escape HTML de la siguiente manera:

&lt;script&gt;location.href('http://www.w3big.com')&lt;/script&gt;

El código de seguridad es seguro y puede ser exhibido o insertar el mensaje en la página.

Cuando el usuario envía el formulario, vamos a hacer las dos cosas siguientes:

  1. Uso de PHP función trim () para eliminar los datos de entrada del usuario personajes innecesarios (como: espacio, tabulación, nueva línea).
  2. Utilice stripslashes PHP () para quitar la barra invertida datos de entrada del usuario (\)

Deja que estas funciones de filtrado escritos en una función de nuestra propia definición, esto puede mejorar en gran medida la reutilización de código.

La función denominada test_input ().

Ahora, podemos test_input () para detectar todas las variables en $ _POST, código de script es el siguiente:

Ejemplos

<?php
// 定义变量并默认设置为空值
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
  $name = test_input($_POST["name"]);
  $email = test_input($_POST["email"]);
  $website = test_input($_POST["website"]);
  $comment = test_input($_POST["comment"]);
  $gender = test_input($_POST["gender"]);
}

function test_input($data)
{
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

Instancia en ejecución »

Tenga en cuenta que cuando se ejecuta el script de arriba, por $ _SERVER [ "REQUEST_METHOD"] para detectar si se envía el formulario. Si REQUEST_METHOD es POST, el formulario se haya presentado - Se verificarán los datos. Si el formulario no se presenta, se saltará la verificación y muestra un espacio en blanco.

Utilice los elementos de entrada en los ejemplos anteriores son opcionales, incluso si el usuario no introduce ningún dato se puede mostrar correctamente.

En la siguiente sección describiremos cómo validar los datos introducidos por el usuario.