29 de Noviembre de 2005 (admin)
Request El
objeto Request se utiliza para recoger los parámetros de entrada del
script, es decir, los datos de los formularios o las variables pasadas
mediante la interrogación en la URL. No tiene métodos ni propiedades
dignas de mención, sino sólo tres colecciones muy importantes: Form,
QueryString y ServerVariables. Colección Request.Form
Mantiene la colección de parámetros pasados al script mediante el método POST,
que es el usado preferentemente en los formularios, de ahí su nombre.
Request.Form nos devuelve siempre la colección de parámetros. Por
tanto, la expresión admite la sintaxis de las colecciones de Visual
Basic, es decir: - Request.Form("Param")
nos da el valor del parámetro de nombre Param siempre y cuando exista
un único valor para dicho parámetro. Por ejemplo, nos daría el texto
introducido en un control de formulario cuyo código HTML podría ser del
estilo a <input type=text name="Param">.
- Request.Form(3)
nos da el valor del tercer elemento de la colección, es decir, el valor del tercer control del formulario.
- Request.Form.Count nos da el número de parámetros pasados en el formulario.
Como
existe la posibilidad de parámetros multivaluados, como una lista de
selección múltiple, la expresión Request.Form("Param") puede ser a su
vez una colección: la colección de valores del parámetro. Por ejemplo,
si en nuestro formulario tenemos una lista de selección múltiple, cuyo
nombre sea Lista, la expresión Request.Form("Lista")[2] nos daría el
segundo elemento seleccionado de la lista, y
Request.Form("Lista").Count nos daría el número de elementos que ha
seleccionado el usuario. Su valor será 1 si se trata de un parámetro
monovaluado y 0 si es un parámetro no definido en el formulario.
También es posible iterar sobre las colecciones anteriores mediante bucles For each.
El siguiente ejemplo nos muestra todos los parámetros pasados al script y sus valores:
<% For each param In Request.Form Response.Write ("<p>") Response.Write("El parámetro " & param & " toma el valor " & Request.Form(param) ) Response.Write("</p>") Next %>
Colección Request.QueryString Mantiene la colección de parámetros pasados al script mediante el método GET, que es el utilizado cuando se escribe la URL seguida del símbolo ? y de los parámetros con sus valores. Por ejemplo:
http://www.cocinatusrecetas.com/message.asp?MessageID=58086&pagina=1&idTema=58086
Invoca el script pasando las variables nombre (valor = Pepe) y apellido (valor = Gotera). El símbolo &
se utiliza como separador entre los distintos parámetros. Aunque no es
lo habitual, también los formularios pueden utilizar el método GET.
Para ello basta con ponerlo en la marca <FORM> de la página web:
<FORM method=GET action = "MiForm.asp">
En este caso, los parámetros del formulario los obtendríamos en Request.QueryString en lugar de en Request.Form.
Colección Request.ServerVariables Mantiene
la colección de las variables de entorno del servidor web. Entre las
mismas, podemos encontrar valores muy interesantes conocidos por el
servidor web, como la dirección IP del usuario que está viendo las
páginas, el login y contraseña si estamos en un directorio de acceso
restringido, el nombre del dominio, el nombre del script, etc. Estas son algunas de las variables de servidor:
VARIABLE | DESCRIPCIÓN | | .ALL_HTTP | Todas las cabeceras HTTP enviadas por el cliente. | | AUTH_PASSWORD | La contraseña del cliente. | | AUTH_USER | Nombre de usuario autentificado en bruto (raw). | | CERT_COOKIE | ID
de usuario único para el certificado del cliente, devuelto como cadena
de caracteres. Puede ser usado como firma para el certificado al
completo. | | CERT_FLAGS | El
bit0 es puesto a 1 si está presente el certificado del cliente. El bit1
es puesto a 1 si la autoridad de certificados del certificado del
cliente es inválida (no está en la lista de las reconocidas en el
servidor). | | CERT_ISSUER | Campo del suministrador del certificado de cliente (O=MS, OU=IAS, CN=user name, C=USA). | | CERT_KEYSIZE | Número de bits de la clave SSL. Por ejemplo, 128. | | CERT_SECRETKEYSIZE | Número de bits en la clave secreta del certificado del servidor. Por ejemplo, 1024. | | CERT_SERIALNUMBER | Campo del número de serie del certificado del cliente. | | CERT_SERVER_ISSUER | Campo para el suministrador del certificado del servidor. | | CERT_SERVER_SUBJECT | Campo del sujeto del certificado del servidor. | | CERT_SUBJECT | Campo del sujeto del certificado del cliente. | | CONTENT_LENGTH | La longitud del contenido tal como es suministrado por el cliente. | | CONTENT_TYPE | El tipo de datos del contenido. Se usa con solicitudes que adjuntan información, como las solicitudes de http GET, POST, y PUT. | | GATEWAY_INTERFACE | La revisión de la especificación CGI usada por el servidor. El formato es CGI/revision. | | HTTP_<HeaderName> | El
valor almacenado en la cabecera o header llamada HeaderName. Cualquier
header distinto de los incluidos en esta tabla debe ser prefijado por
HTTP_ para que la colección de ServerVariables pueda recuperar su
valor. Tenga en cuenta que el servidor interpreta cualquier carácter
con guión bajo (_) en HeaderName como guiones normales en el header.
Por ejemplo, si escribe HTTP_MY_HEADER, el servidor busca por un header
enviado como MY-HEADER. | | HTTPS | Devuelve
una activación ON si la petición vino a través de un canal seguro
(SSL), o devuelve una desactivación OFF si la petición es a través de
un canal no seguro. | | HTTPS_KEYSIZE | Clave de tamaño en bits de una conexión Secure Sockets Layer. Por ejemplo, 128. | | HTTPS_SECRETKEYSIZE | Número de bits en una clave privada de certificado del servidor seguro. Por ejemplo, 1024. | | HTTPS_SERVER_ISSUER | Campo para el suministrador del certificado del servidor seguro. | | HTTPS_SERVER_SUBJECT | Campo del sujeto del certificado del servidor | | INSTANCE_ID | La
ID para la instancia IIS en el modo texto. Si la instancia ID es 1,
aparece como una cadena. Puede usar esta variable para recuperar la ID
de la instancia del servidor web (en la base de datos) al cual
corresponde la petición. | | INSTANCE_META_PATH | La ruta de la metabase para la instancia del IIS que responde a la petición. | | LOCAL_ADDR | Devuelve
la dirección del servidor en la que entró la petición. Esto es
importante en el caso de las máquinas multi-homed, donde puede haber
múltiples direcciones IP enlazadas a una máquina, y puede interesar
conocer cuál es la dirección usada por la petición. | | LOGON_USER | Nombre de usuario de la cuenta de Windows. | | PATH_INFO | Información
sobre una ruta extra tal como es ofrecida por el cliente. Usted puede
acceder a scripts usando su ruta virtual y la variable de servidor
PATH_INFO. Si esta información proviene de una URL, es decodificada por
el servidor antes de que sea pasada al script CGI. | | PATH_TRANSLATED | Versión traducida de PATH_INFO que toma la ruta y configura cualquier estructura necesaria de relación virtual-física. | | QUERY_STRING | Petición de información almacenada en la cadena siguiendo al signo de interrogación (?) en la solicitud http. | | REMOTE_ADDR | La dirección IP del host remoto que hace la consulta. | | REMOTE_HOST | El
nombre del host que hace la consulta. Si el servidor no tiene esta
información, utilizará REMOTE_ADDR y dejará esta variable vacía. | | REMOTE_USER | Cadena
de nombre de usuario no localizada, introducida por el usuario. Este es
el nombre que es realmente enviado por el usuario, distinto de aquellos
que son modificados por cualquier filtro de autentificación instalado
en el servidor. | | REQUEST_METHOD | Método usado para realizar la consulta. Para HTTP, éste es GET, HEAD, POST, etc. | | SCRIPT_NAME | Una ruta virtual al script que está siendo ejecutado. Es usado para autoreferenciar direcciones URL. | | SERVER_NAME | El nombre, alias DNS, o dirección IP del servidor, tal como aparecería en la autoreferencia de direcciones URL. | | SERVER_PORT | El número de puerto al que fue enviada la petición. | | SERVER_PORT_SECURE | Una
cadena que contiene 0 ó 1. Si la petición está siendo manejada a través
de un puerto seguro, entonces la cadena será 1. De otro modo, será 0. | | SERVER_PROTOCOL | El nombre y revisión del protocolo de peticiones de información. El formato es protocol/revision. | | SERVER_SOFTWARE | El nombre y versión del software del servidor que responde las peticiones. El formato es name/version. | | URL | Proporciona la porción básica de la URL. |
|
Ejemplo: <h3> Usted está viendo el dominio <%= Request.ServerVariables("SERVER_NAME") %> </h3>
|