Obtenga y publique ejemplos. Atributo y método de acción. Métodos GET y POST. Elegir entre GET y POST
Los recursos web modernos no solo brindan información al visitante, sino que también interactúan con él. Para interactuar con el usuario, debe obtener alguna información de él. Hay varios métodos para obtener datos, métodos muy comunes. OBTENER y CORREO... Y en consecuencia en PHP hay soporte para estos métodos de transferencia de datos OBTENER y CORREO... Veamos cómo funcionan estos métodos.
Método GET Datos usando el método GET se pasan agregándolos a la URL del script llamado destinado a procesar la información recibida. Para aclaración este método Escriba la URL del recurso en la barra de direcciones de su navegador y agregue primero un signo de interrogación (?) Y luego la línea num = 10. Por ejemplo
http: //dominio.ru/script.php? num = 10
Si usted tiene servidor local entonces, por lo general, el dominio será localhost, y luego la entrada anterior se verá así
http: //localhost/script.php? num = 10
En este caso, pasamos el parámetro num igual a 10. Para agregar los siguientes parámetros al script, debe usar el separador y comercial (&), por ejemplo
http: //domain.ru/script.php? num = 10 & type = new & v = text
En este caso, pasamos tres parámetros al script: num con un valor de 10, tipo con un valor de "nuevo" y v con un valor de "texto".
Para obtener estos parámetros en el script, debe usar la matriz incorporada $ _GET $ _GET ["num"], $ _GET ["type"], $ _ GET ["v"]... Estos elementos de matriz contendrán los valores de los parámetros pasados. Para demostrar este ejemplo, cree un archivo script.php con el siguiente contenido
echo ($ _GET ["num"]. "
");
echo ($ _GET ["tipo"]. "
");
echo ($ _GET ["v"]);
?>
Y ahora llame a este archivo en el navegador
http: //path/script.php? num = 10 & type = new & v = text
y verá los parámetros pasados en la ventana del navegador. Pero si llama a este archivo sin parámetros adicionales http: //path/script.php, verá los errores que dará el intérprete PHP, que no existen tales elementos de la matriz $ _GET. Se puede dedicar más de un artículo a verificar los datos recibidos del usuario, por lo que en este artículo no tocaré este punto.
Como probablemente comprenderá, obligar al usuario a escribir datos en la barra de direcciones del navegador no es muy bueno y completamente inconveniente. Por lo tanto, para recibir datos del usuario, debe utilizar formularios html. Escribamos un formulario html simple.
Comentaré un poco el formulario creado. Los formularios se crean con la etiqueta de formulario. Los campos de formulario se crean con etiquetas de entrada, selección y área de texto (puede leer más sobre esto). En la etiqueta del formulario, el atributo de acción especifica la URL del script que recibirá los datos del formulario. En nuestro caso, especificamos el archivo script.php que ya existía para nosotros. El atributo de método especifica el método enviando datos... Hemos especificado el método OBTENER... ¡Ahora sabemos a qué archivo se transferirán los datos del formulario y de qué manera, queda por averiguar dónde buscarlos allí!
Los datos de este formulario serán pasados al recurso web por el navegador agregándolos a la URL: primero habrá un signo de interrogación (?), Luego se presentarán los parámetros, separados por un ampersand (&). El nombre del parámetro se tomará del atributo de nombre, que debe escribirse en cualquier campo de formulario. El valor del parámetro dependerá del tipo de campo. Si el campo es texto, el valor será el texto ingresado por el usuario. Si el campo es una lista, un grupo de botones de opción o casillas de verificación, entonces el valor del parámetro será el valor del atributo de valor del elemento seleccionado. Déjame explicarte con el ejemplo de nuestro formulario. Si el usuario ingresa el número 10 en el campo de entrada, entonces el nombre del parámetro será num (el valor del atributo de nombre de la etiqueta de entrada), y el valor será 10 (el número ingresado por el usuario). En consecuencia, el navegador generará un par "num = 10". Si el usuario selecciona "Sí" de la lista, el nombre del parámetro será tipo (el valor del atributo de nombre de la etiqueta de selección) y el valor será sí (el valor del atributo de valor de la etiqueta de opción). En consecuencia, el navegador generará un par "type = yes".
Ahora colocaremos este formulario en la página forma.php.
Ingrese cualquier valor en los campos del formulario y haga clic en el botón "Enviar". Después de hacer clic en el botón, el navegador abrirá otra página (script.php) y los datos que ingresó se mostrarán en la ventana del navegador. Creo que está claro por qué: el navegador pasará los datos al script script.php, y en el script estos datos se procesarán y se mostrarán en la pantalla.
Método POST Ahora veamos cómo funciona el método. CORREO.
Para enviar datos usando el método CORREO necesita utilizar formularios HTML. Como recordamos, el atributo de método de la etiqueta del formulario es responsable del método de envío de datos del formulario. Por lo tanto, debe especificar el valor POST en el atributo de método de la etiqueta del formulario. De lo contrario, el formulario puede ser el mismo que para el método GET. Cambiemos nuestro formulario, que ya usamos para enviar datos usando el método GET, para enviarlos usando el método POST.
Como puede ver, el formulario sigue siendo el mismo excepto por los atributos de método y acción. Los datos ahora se pasarán al script script_post.php. Coloquemos nuestro formulario en la página forma_post.php.
Ahora necesitamos escribir un script que procese los datos de nuestro formulario.
Para obtener datos en el script mediante el método pasado CORREO necesita usar una matriz incorporada $ _POST... Las claves de esta matriz serán los nombres de los parámetros. En nuestro caso, debe utilizar $ _POST ["num"], $ _POST ["tipo"], $ _ POST ["v"]... Estos elementos de la matriz contendrán los valores de los datos pasados. Como puede ver, la diferencia con el uso del método GET se expresa solo en el uso de la matriz $ _POST. Por lo tanto, no nos resultará difícil escribir el archivo script_post.php:
echo ($ _POST ["num"]. "
");
echo ($ _POST ["tipo"]. "
");
echo ($ _POST ["v"]);
?>
Ahora abra el archivo forma_post.php en un navegador. Ingrese algunos datos en los campos del formulario y haga clic en el botón "Enviar". A estas alturas, probablemente haya notado la diferencia entre el método POST y el método GET: los datos del formulario no aparecían en la barra de direcciones del navegador. Datos por método CORREO no se puede pasar a través de la barra de direcciones del navegador. Ésta es una diferencia significativa para recordar.
V PHP Independientemente de cómo se enviaron los datos, por el método POST o por el método GET, puede obtener los datos utilizando la matriz $ _REQUEST. Comparación de los métodos GET y POST Con el método GET, los datos se pasan agregándolos a la URL. Por lo tanto, serán visibles para el usuario, lo que no siempre es bueno desde el punto de vista de la seguridad. Además, la cantidad máxima de datos transmitidos dependerá del navegador, del número máximo permitido de caracteres en la barra de direcciones del navegador.
Cuando se utiliza el método POST, los datos no serán visibles para el usuario (no se muestran en la barra de direcciones del navegador). Y por tanto son más seguros y, en consecuencia, el programa que procesa estos datos es más seguro en términos de seguridad. Además, la cantidad de datos transmitidos es prácticamente ilimitada.
Al elegir un método de transferencia de datos, debe tener en cuenta las características anteriores y detenerse en el método más aceptable.
Lo que tienen en común es que funcionan de la misma manera. Técnicamente, no hay diferencia entre ellos. Pero existen diferencias ideológicas.
Los cubriré en el contexto de PHP. Tenga en cuenta que el protocolo HTTP está indirectamente relacionado con PHP porque fue creado para el intercambio de páginas html y PHP simplemente amplía las capacidades de ambos.
La solicitud GET se utiliza para recibir datos y POST para enviar. (Les recuerdo que técnicamente funcionan de la misma manera).
Por lo tanto, en el contexto de PHP, basados en esta ideología, hicieron lo siguiente:
1. Las matrices superglobales ($ _GET, $ _POST) se crean por defecto cada vez que inicia PHP.
2. Si hay un signo de interrogación (?) En la cadena de consulta. Entonces todo lo que cuenta después de él parámetros Solicitud GET, se presentan en el formato "clave" = "valor" y el carácter comercial (&) se utiliza como separador
Ejemplo:
OBTENER /index.php?name=Andrey&surname=Galkin
esta es una cadena de consulta, hay 2 parámetros. estos parámetros terminarán en la matriz $ _GET.
3. $ _POST se rellena de otra forma. el contenido de esta matriz se completa a partir de los "encabezados de solicitud". Es decir, desde un lugar oculto a la vista de forma explícita. El navegador asume toda la rutina de crear dichos encabezados. Aunque a veces algo se edita manualmente en los encabezados.
La mayoría de las veces, la solicitud de publicación se utiliza en formularios (para enviar datos).
Por ejemplo, tenemos un formulario de inicio de sesión de 2 campos de inicio de sesión y contraseña.
Imaginemos que estamos usando el método GET. Luego, al enviar el formulario, nos dirigiremos a la siguiente dirección /login.php?login=Andrey&password=123 acepto que no es nada seguro transferir dicha información de esta manera. Cualquiera puede abrir su navegador y comenzar a ingresar la dirección del sitio, puede ver sus contraseñas e inicios de sesión del historial.
Pero si especificamos usando el método POST, entonces recibiríamos la siguiente solicitud:
POST /login.php (login = Andrey & password = 123) qué estaría oculto entre paréntesis y no guardado en el navegador.
En general, para resumir:
OBTENER es obtener una página específica de una manera específica (clasificación, página de blog actual, cadena de búsqueda, etc.).
POST: para enviar datos que no afectan la visualización de la página, en el sentido de que estos datos solo afectan el resultado de la ejecución del script (inicios de sesión, contraseñas, números de tarjetas de crédito, mensajes, etc.).
Y otro buenas noticias se pueden combinar, por ejemplo
POST /index.php?page=login (login = Andrey & password = 123) Creo que ya he explicado lo suficiente lo que vendrá y qué parámetros entrarán en cada matriz.
Los métodos GET y POST en HTTP y HTTPS son dos de los métodos más populares utilizados para transferir datos de un cliente a un servidor utilizando el protocolo HTTP (Protocolo de transferencia de hipertexto). Tanto GET como POST se pueden utilizar para enviar una solicitud y recibir una respuesta, pero existe una diferencia significativa entre los dos.
La diferencia entre las solicitudes GET y POST en HTTP o HTTPS es una pregunta popular en todas las entrevistas de programación web. Dado que HTML es independiente de la tecnología de servidor web como Java, ASP o PHP, y HTTP es el protocolo principal en el espacio de Internet, no se puede ignorar claramente la importancia de comprender los métodos GET y POST. En este artículo, veremos qué es un método HTTP GET, qué es un método HTTP POST, cuándo usar una solicitud en particular y cuál es la diferencia entre ellos. Analicemos cada concepto por separado.
¿Qué es HTML?
HTML es el lenguaje utilizado para crear páginas web. El hipertexto se refiere a los hipervínculos que puede contener una página HTML. El lenguaje de marcado se refiere a la forma en que se utilizan las etiquetas para definir el diseño de la página y los elementos de la página.
abajo esta el Ejemplo HTML que se utiliza para definir una página web básica con un encabezado y un párrafo de texto:
<Голова>
<Название>TechTerms.com название>
HEAD>
<Тело>
Este es un ejemplo de un párrafo en HTML. p>
Body>
Html>
La primera línea define el tipo de contenido que contiene el documento.,
y que están todos incluidos en el ejemplo anterior. El título de la página, los metadatos y los enlaces de archivos de anclaje se colocan entre las etiquetas. El contenido real de la página está entre las etiquetas. .La web ha sufrido muchos cambios en las últimas décadas, pero HTML siempre ha sido el lenguaje principal utilizado para desarrollar páginas web. Curiosamente, mientras que los sitios web se han vuelto más avanzados e interactivos, HTML se ha vuelto más simple. Si compara el código fuente de una página HTML5 con una página similar escrita en HTML 4.01 o XHTML 1.0, habrá menos código en la página HTML5. Esto se debe a que el HTML moderno se basa en hojas de estilo en cascada o JavaScript para formatear casi todos los elementos de una página.
Muchos sitios web dinámicos generan páginas web sobre la marcha utilizando un lenguaje de programación del lado del servidor como PHP o ASP. Sin embargo, incluso las páginas dinámicas deben formatearse con usando HTML... Por lo tanto, los lenguajes de secuencias de comandos suelen generar HTML que se envía al navegador web.
El Protocolo de transferencia de hipertexto HTTP está diseñado para la comunicación entre clientes y servidores y funciona como un protocolo de solicitud-respuesta.
El navegador web puede ser el cliente y la aplicación en la computadora que aloja el sitio web puede ser el servidor.
El cliente (navegador) envía una solicitud HTTP al servidor, el servidor devuelve una respuesta que contiene información sobre el estado de la solicitud y también puede contener el contenido solicitado.
Dos métodos de solicitud GET y POST
Dos métodos de uso común para solicitud-respuesta entre cliente y servidor:
GET: solicita datos del recurso especificado;
POST: envía datos para su procesamiento al recurso especificado.
Traducir GET y POST significa literalmente obtener y posprocesar.
Más acerca de HTTP
HTTP es el protocolo utilizado para transferir datos a través de Internet. Es parte del paquete de Protocolo de Internet y define los comandos y servicios utilizados para transferir datos de páginas web.
HTTP usa el modelo servidor-cliente. El cliente puede ser una computadora doméstica, portátil o dispositivo móvil... El servidor HTTP suele ser un servidor web con software servidor web como Apache o IIS. Cuando un usuario accede a un sitio web, el navegador envía una solicitud al servidor web correspondiente y responde con un código de estado HTTP. Si la URL es válida y se proporciona la conexión, el servidor enviará la página web y los archivos asociados al navegador.
Los códigos de estado HTTP comunes incluyen:
200 - solicitud exitosa (la página web existe);
301: se mueve constantemente (a menudo redirige a una nueva URL);
401 - solicitud no autorizada (se requiere autorización);
500: error interno del servidor (a menudo causado por una configuración incorrecta del servidor).
POST y GET en HTTP
HTTP define los comandos GET y POST que se utilizan para procesar envíos de formularios en sitios web. El comando CONNECT se utiliza para facilitar una conexión segura cifrada mediante SSL. Las conexiones HTTP cifradas se realizan a través de HTTPS, una extensión HTTP diseñada para transferencias de datos seguras.
Las URL que comienzan con "http: //" son accesibles a través de protocolos de transferencia de hipertexto estándar y, de forma predeterminada, usan el puerto 80. Las URL que comienzan con "https: //" son accesibles a través de conexión segura HTTPS y, a menudo, utilizan el puerto 443.
CORREO
POST es una serie controles del sistema ejecutado por computadoras y otros dispositivos electrónicos cuando están encendidos. Los resultados de la prueba pueden mostrarse en la pantalla, mostrarse mediante LED parpadeantes o simplemente registrarse internamente. V sistemas informáticos la operación POST se realiza al comienzo de la secuencia de inicio. Si todas las pruebas pasan, el resto del proceso de inicio continuará automáticamente.
Los sistemas operativos Mac y Windows ejecutan POST cada vez que la computadora arranca o se reinicia. Verificaciones de escaneo Hardware y garantiza que el procesador, la RAM y los dispositivos de almacenamiento funcionen correctamente. Si se produce un error durante la POST, el proceso de inicio puede pausarse o detenerse por completo, y el monitor puede mostrar un mensaje que indica que los errores de la POST a menudo se muestran en la pantalla de información del BIOS. Pueden mostrarse como códigos criptográficos, como "08", o como un mensaje del sistema, como "Error memoria del sistema en el desplazamiento ". Sobre Errores de Mac Los POST a menudo se indican mediante gráficos simples, como un icono de carpeta rota, que indica que no se encontró ningún dispositivo de arranque.
Manifestaciones fisicas
En algunos casos, es posible que la pantalla de la computadora ni siquiera se encienda antes de los errores POST. Si esto sucede, los códigos de error se pueden mostrar a través de LED parpadeantes o señales de sonido... Por ejemplo, un iMac de Apple reproducirá tres tonos consecutivos, hará una pausa de cinco segundos y luego repetirá los tonos cuando se detecte una mala RAM durante el inicio. La mayoría de las PC también emiten un pitido cuando se detectan errores POST, aunque cada fabricante utiliza sus propios códigos.
POST es un término bastante técnico que solo lo utilizan técnicos informáticos sobre una base regular. Sin embargo, este es un buen acrónimo, ya que ayuda a comprender mejor los mensajes de error que pueden aparecer en las computadoras u otros dispositivos electrónicos... Si su computadora no se inicia debido a un error POST, puede usar un dispositivo diferente para encontrar el significado y la causa del error en el sitio web del fabricante. Luego, puede tomar la acción apropiada: retire el módulo de memoria o reinstale la tarjeta de video y luego reinicie el equipo.
OBTENER
POST también es un método para pasar variables Formularios HTML de una página web a otra sin mostrarlas en la barra de direcciones. Un método alternativo es GET, que agrega valores a la URL. Las solicitudes HTTP POST proporcionan datos adicionales del cliente (navegador) al servidor en el cuerpo del mensaje. Por el contrario, las solicitudes GET incluyen todos los datos necesarios en la URL. Los formularios en HTML pueden usar cualquier método especificando método = POST o método = GET (predeterminado) en el elemento
Reteniendo código dado en un archivo HTML y viéndolo con su navegador favorito, verá el formulario HTML familiar:
Etiqueta
, de hecho, establece la forma. Sus atributos son ambos opcionales:- acción: especifica la URL (completa o relativa) a la que se enviará el formulario. Si no especifica este atributo, la mayoría de los navegadores (más precisamente, todos los navegadores que conozco) envían el formulario al documento actual, es decir, "a sí mismo". Esta es una abreviatura conveniente, pero según el estándar Atributo HTML se requiere acción.
- método: cómo se envía el formulario. Hay dos de ellos.
- OBTENER: envío de datos del formulario en la barra de direcciones.
Es posible que haya notado en varios sitios la presencia del carácter "?" Al final de la URL. seguido de datos en el formato parámetro = valor. Aquí el "parámetro" corresponde al valor del atributo de nombre de los elementos del formulario (ver más abajo sobre la etiqueta ) y "valor" es el contenido del atributo de valor (por ejemplo, contiene la entrada del usuario en el campo de texto de la misma etiqueta ).
Por ejemplo, intente buscar algo en Yandex y preste atención a la barra de direcciones del navegador. Este es el método GET. - POST: los datos del formulario se envían en el cuerpo de la solicitud. Si no está del todo claro (o completamente incomprensible) de qué se trata, no se preocupe, volveremos a esta pregunta pronto.
- OBTENER: envío de datos del formulario en la barra de direcciones.
Etiqueta - especifica el elemento de formulario identificado por el atributo de tipo:
- El valor "texto" especifica un campo de entrada de texto de una línea
- El valor "enviar" especifica el botón que, cuando se hace clic, envía el formulario al servidor.
También son posibles otros valores (y no es la única etiqueta que define un elemento de formulario).
Entonces, ¿qué sucede cuando hacemos clic en el botón Aceptar?
- El navegador escanea los elementos que ingresan al formulario y genera datos del formulario a partir de sus atributos de nombre y valor. Digamos que se ingresa el nombre Vasya. En este caso, los datos del formulario son name = Vasya & okbutton = OK
- El navegador establece una conexión con el servidor, envía al servidor una solicitud del documento especificado en el atributo de acción de la etiqueta.
- El servidor analiza la solicitud recibida, genera una respuesta, la envía al navegador y cierra la conexión
- El navegador muestra el documento recibido del servidor
Enviar la misma solicitud manualmente (usando telnet) se ve así (suponga Nombre de dominio sitio - www.example.com):
Telnet www.example.com 80 GET /cgi-bin/form_handler.cgi?name=Vasya&okbutton=OK HTTP / 1.0 \ r \ n Host: www.example.com \ r \ n \ r \ n
Como probablemente ya habrá adivinado, hacer clic en un botón de envío en un formulario con un método de envío "OBTENER" es similar a ingresar la URL correspondiente (con un signo de interrogación y los datos del formulario al final) en la barra de direcciones del navegador:
Http://www.example.com/cgi-bin/form_handler.cgi?name=Vasya&okbutton=OK
De hecho, el método GET se utiliza siempre que solicita un documento del servidor, simplemente ingresando su URL o haciendo clic en un enlace. Utilizando
El formulario que se muestra en las líneas 8-12 contiene dos elementos: nombre y botón ok. El atributo de método especifica el método para enviar el formulario POST, mientras que el atributo de acción que especifica la URL a la que se envía el formulario se completa con el valor de la variable de servidor PHP_SELF, la dirección del script que se está ejecutando en ese momento.
=$_SERVER["PHP_SELF"]?>- notación abreviada para echo $_SERVER["PHP_SELF"]; ?> .
Supongamos que ingresamos el valor Vasya en el campo de nombre y hacemos clic en el botón Aceptar. En este caso, el navegador envía una solicitud POST al servidor. Cuerpo de la solicitud: nombre = Vasya & okbutton = OK. PHP rellena automáticamente la matriz $ _POST:
$ _POST ["nombre"] = "Vasya"
$ _POST ["okbutton"] = "Aceptar"
De hecho, el navegador envía el valor "Vasya" en formato urlencode; para la codificación de windows-1251, este valor parece% C2% E0% F1% FF. Pero, dado que PHP realiza automáticamente la decodificación necesaria, podemos "olvidarnos" de esta función, hasta que tengamos que trabajar con las solicitudes HTTP manualmente.
Dado que el cuerpo de la solicitud solo especifica nombres y valores, no los tipos de elementos de formulario, PHP no tiene idea de si $ _POST ["nombre"] coincide con una cadena de entrada, botón o lista. Pero nosotros, en general, no necesitamos esta información en absoluto. :)
Como no necesitamos saber qué está escrito en el botón de enviar, en la línea 11 podemos eliminar el atributo de nombre acortando la descripción del botón a ... En este caso, el navegador enviará una solicitud POST para name = Vasya.
Y ahora, lo mismo, pero para el formulario GET:
if (isset ($ _ GET ["nombre"])) (
eco "
Oye, ". $ _GET [" nombre "]."
!" ;}
?>
La línea 8 bien podría haber escrito
Aquí no se utilizan trucos nuevos. Entender, ejecutar el código, intentar modificar ...
Cambiemos el último ejemplo para que el usuario no tenga que volver a completar los campos. Para hacer esto, complete los atributos de valor de los elementos del formulario con los valores que acabamos de ingresar.
$ nombre = isset ($ _ POST ["nombre"])? $ _POST ["nombre"]: "";
$ año = isset ($ _ POST ["año"])? $ _POST ["año"]: "";
Si (isset ($ _ POST ["nombre"], $ _POST ["año"])) (
si ($ _POST ["nombre"] == "") (
echo "¡Por favor ingrese un nombre!
"
;
) de lo contrario si ($ _POST ["año"]<
1900
||
$_POST
[
"year"
] >
2004
) {
eco "Introduzca el año de nacimiento. Intervalo de valores válido: 1900..2004
"
;
) demás (
echo "Hola". $ _POST ["nombre"]. "!
"
;
$ edad = 2004 - $ _POST ["año"];
echo "para ti". $ edad. " años
"
;
}
eco "
" ;
}
?>
Las líneas 4 y 5 pueden resultar algo incomprensibles. Todo es muy simple: la línea 4 podría escribirse así:
if (isset ($ _ POST ["nombre"]))
$ nombre = $ _POST ["nombre"];
demás
$ nombre = "";
Puede surgir la pregunta: ¿por qué no tirar las líneas 4-5 y escribir:
Introduzca su nombre:
">
Ingrese su año de nacimiento:
">
El hecho es que si estas variables POST no están definidas, y lo será si el formulario aún no se ha completado, PHP emitirá advertencias sobre el uso de variables no inicializadas (y, de manera bastante razonable: dicho mensaje le permite encontrar rápidamente errores tipográficos difíciles de encontrar en los nombres de las variables, y también advierte sobre posibles "agujeros" en el sitio). Por supuesto, puede poner el código con isset directamente en el formulario, pero resultará demasiado engorroso.
¿Comprendido? Ahora intente encontrar el error en el código dado. Bueno, no es exactamente un error, sino un defecto.
htmlspecialchars ()
¿No lo encontraste? Te daré una pista. Por ejemplo, en el campo "nombre", ingrese una comilla doble y algo de texto, por ejemplo, Wa. Envíe el formulario y observe el código fuente de la página resultante. La cuarta línea será algo como:
Introduzca su nombre:
Es decir, nada bueno. ¿Qué pasa si un usuario astuto ingresa un código JavaScript?
Para resolver este problema, debe usar la función htmlspecialchars (), que reemplazará los caracteres del servicio con su representación HTML (por ejemplo, la cita - con "):
$ nombre = isset ($ _ POST ["nombre"])? htmlspecialchars ($ _POST ["nombre"]): "";
$ año = isset ($ _ POST ["año"])? htmlspecialchars ($ _POST ["año"]): "";
Si (isset ($ _ POST ["nombre"], $ _POST ["año"])) (
si ($ _POST ["nombre"] == "") (
echo "¡Por favor ingrese un nombre!
"
;
) de lo contrario si ($ _POST ["año"]<
1900
||
$_POST
[
"year"
] >
2004
) {
eco "Introduzca el año de nacimiento. Intervalo de valores válido: 1900..2004
"
;
) demás (
echo "Hola". $ nombre. "!
"
;
$ edad = 2004 - $ _POST ["año"];
echo "para ti". $ edad. " años
"
;
}
eco "
" ;
}
?>
Repita el experimento y compruebe que el HTML ahora sea correcto.
Recuerde: la función htmlspecialchars () siempre debe usarse cuando se muestra el contenido de una variable que puede contener caracteres especiales HTML.
phpinfo ()
La función phpinfo () es una de las funciones más importantes de PHP. Muestra información sobre la configuración de PHP, los valores de varias variables de configuración ...
¿Por qué lo menciono en el artículo sobre formularios? phpinfo () es la herramienta de depuración más conveniente. phpinfo (), entre otras cosas, imprime los valores de todas las variables $ _GET, $ _POST y $ _SERVER. Entonces, si una variable de formulario se "pierde", la forma más fácil de averiguar qué está mal es usar la función phpinfo (). Para que la función muestre solo los valores de las variables (y no tiene que desplazarse una docena de páginas), debe llamarse de la siguiente manera: phpinfo (INFO_VARIABLES); , o - que es exactamente lo mismo - phpinfo (32) ;.
phpinfo (32);
?>
O, por ejemplo, una situación de este tipo: desea averiguar la dirección IP de un visitante. Recuerda que la variable correspondiente está almacenada en la matriz $ _SERVER, pero, mala suerte, olvidó exactamente cómo se llama a la variable. Nuevamente, llame a phpinfo (32); , buscamos nuestra dirección IP en la placa y la encontramos - en la línea $ _SERVER ["REMOTE_ADDR"].