La mayoría de las respuestas que he visto hasta ahora han sido en términos de PHP, cuando en realidad esto no es específico de un idioma. Las respuestas dadas hasta ahora han sido desde la vista de PHP y los métodos que usaría para acceder a la información difieren de un idioma al siguiente, pero el formato en el que se encuentran los datos en la URL (conocido como la Cadena de consulta) permanecerá lo mismo (Ej: página.ext? clave1 = valor & clave2 = valor & ...).
No sé su formación técnica o conocimiento, por lo que por favor, perdóname ...
Hay dos métodos diferentes para una página web para proporcionar datos al servidor web. Estos se conocen como los métodos POST o GET. También hay un montón de otros, pero ninguno de ellos debe utilizarse en ningún tipo de diseño web cuando se trata de un usuario normal.El método POST se envía de forma invisible al servidor y está destinado a "cargar" datos, mientras que el método GET es visible para el usuario como la Cadena de consulta en la URL y solo pretende "obtener" información literalmente.
No todos los sitios siguen esta regla de oro, pero puede haber motivos de por qué. Por ejemplo, un sitio podría usar POST exclusivamente para evitar el almacenamiento en caché de los servidores proxy o su navegador, o porque usan lenguajes de doble byte y pueden causar problemas al intentar realizar un GET debido a la conversión de codificación.
Algunos recursos sobre los dos métodos y cuándo usarlos ...
http://www.cs.tut.fi/~jkorpela/forms/methods.html http://weblogs.asp.net/mschwarz/archive/2006/12/04/post-vs-get.aspx http://en.wikipedia.org/wiki/Query_string
Ahora desde una posición estrictamente PHP, ahora hay 3 conjuntos diferentes que puede utilizar para obtener el información que una página web ha enviado al servidor. Usted tiene a su disposición ...
- $ _POST [ 'nombre de clave'], para agarrar sólo la información de un método POST
- $ _GET [ 'nombre clave'], para tomar sólo la información de un GET método
- $ _REQUEST ['keyname'], para permitirle tomar la POST, GET, y cualquier información de COOKIE que pueda haber sido enviada. Una especie de catchall, especialmente en los casos en que no sabes qué método puede utilizar una página para enviar datos.
No te descuides yendo directamente con el método $ _REQUEST. A menos que tenga un caso como el que mencioné anteriormente para la variable $ _REQUEST, entonces no lo use. Desea probar y utilizar un enfoque de 'denegar todo, y solo permitir x, y, z' cuando se trata de seguridad. Solo busque los datos que sabe que su propio sitio enviará, solo busque las combinaciones que espera y borre toda la información antes de usarla. Por ejemplo ..
- Nunca haga una evaluación() sobre cualquier cosa pasada a través de los métodos anteriores. Nunca he visto esto hecho, pero eso no significa que las personas no lo hayan intentado o lo hayan hecho.
- Nunca utilice la información directamente con las bases de datos sin limpiar ellos (la investigación de los ataques de inyección SQL si usted no está familiarizado con ellos)
Esto es, con mucho, no es el fin de todo, ser-todo a la seguridad de PHP , pero no estamos aquí para eso. Si quieres saber más a lo largo de la línea, bueno, esa es otra pregunta para SO.
Espero que esto ayude y no dude en hacer cualquier pregunta.
Esto está mal. Los "?" no es "solo otro personaje" para el servidor. El servidor divide la URL en "?" (si hay uno). La parte anterior es el archivo solicitado, y la parte posterior es la "cadena de consulta", presentada al CGI como la variable de entorno QUERY_STRING. –
Probablemente debería haber dicho que los servidores * en general * no se espera que lo traten especialmente. En el caso de PHP (y la mayoría de los otros marcos web), se proporciona algún tratamiento, como lo discutí. La pregunta no especifica CGI en ninguna parte. – Edmund
Puede no ser especial para el servidor, pero es parte del estándar HTTP en lugar de php. –