Manual de consulta

DTW_SETCOOKIE


AIX HP-UX Linux OS/2 OS/390 OS/400 PTX SUN Win NT
X X X X X X X X X

Finalidad

Genera el código de JavaScript que define una cookie en el sistema cliente.

Formato

@DTW_SETCOOKIE(nombre_cookie IN, valor_cookie IN, opcs_avan IN)

@DTW_SETCOOKIE(nombre_cookie IN, valor_cookie IN)

Parámetros

Tabla 52. Parámetros de DTW_SETCOOKIE
Tipo de datos Parámetro Uso Descripción
serie nombre_cookie IN Variable o serie literal que especifica el nombre de la cookie
serie valor_cookie IN Variable o serie literal que especifica el valor de la cookie.

Evite la utilización de puntos y comas, comas y espacios como parte del valor_cookie. Cuando sea necesario, utilice la función DTW_rURLESCSEQ de Net.Data para procesar la serie que contiene los caracteres especiales antes de transmitirla a DTW_SETCOOKIE. Por ejemplo,

@DTW_SETCOOKIE("my_cookie_name",
  @DTW_rURLESCSEQ("my cookie value"))
serie opcs_avan IN Serie que contiene atributos opcionales, separados por puntos y comas, que se utilizan para definir la cookie.*
*Los atributos opcionales pueden ser:

expires = fecha
Especifica una serie de fecha que define el tiempo de vida válido de la cookie. Después de que caduque la fecha, la cookie ya no se almacena ni se recupera. Sintaxis:
día laborable, DD-mes-AAAA HH:MM:SS GMT

Donde:

día laborable
Especifica el nombre completo del día laborable.

DD
Especifica la fecha numérica del mes.

mes
Especifica la abreviatura de tres caracteres del mes.

AAAA
Especifica el número del año con cuatro caracteres.

HH:MM:SS
Especifica la indicación de la hora con horas, minutos y segundos.

domain = nombre_dominio
Especifica los atributos de dominio de la cookie, para su utilización en la coincidencia del atributo de dominio.

path = vía de acceso
Especifica el subconjunto de los URL en un dominio para el que la cookie es válida.

secure
Especifica que la cookie se transmita sólo a través de canales protegidos hacia servidores HTTPS.

Cuando no se especifica la opción secure, la cookie puede enviarse a través de canales no protegidos. La opción protegida (secure) no necesita que el navegador cifre la cookie, ni asegurarse de que la página que contiene la sentencia DTW_SETCOOKIE se transmita a través de SSL.

Para obtener información adicional sobre todas las opciones avanzadas, consulte la especificación de cookie de Netscape en http://home.netscape.com

Códigos de retorno

Tabla 53. Códigos de retorno de DTW_SETCOOKIE
Código de retorno Explicación
-1001 El servidor no ha podido procesar una petición de Net.Data para asignar memoria.
1001 Un parámetro de entrada contenía un valor NULL.
1002 Un parámetro de entrada contenía un valor de serie que consistía en el carácter de terminación nulo.
1003 Se ha transmitido un número incorrecto de parámetros en una llamada de función.
1005 Se ha transmitido un parámetro en una llamada de función que debería haber sido una variable de serie, pero era de un tipo de variable diferente.

Notas de utilización

  1. Si el navegador de la Web cliente no da soporte a Java Script, el navegador no define la cookie.
  2. Puesto que DTW_SETCOOKIE genera el código de Java Script, no llama a DTW_SETCOOKIE dentro de un elemento HTML <script> o <noscript>.
  3. Para recuperar una cookie, utilice la función DTW_GETCOOKIE(). Consulte DTW_GETCOOKIE para obtener información sobre cómo definir una cookie.
  4. Defina y recupere una cookie en dos peticiones HTTP independientes. Puesto que una cookie sólo resulta visible después de haberla enviado al cliente, en el caso de que una macro intente obtener una cookie que se haya definido en la misma petición de HTTP, es posible que reciba resultados inesperados.

Ejemplos

Ejemplo 1: Define las cookies que contienen información de contraseña e ID de usuario con la opción avanzada Secure (Proteger)

@DTW_SETCOOKIE("mycookie_name_for_userID", "User1")
@DTW_SETCOOKIE("mycookie_name_for_password", "sd3dT", "secure")

Ejemplo 2: Define cookies que contienen la opción avanzada de fecha de caducidad

@DTW_SETCOOKIE("mycookie_name_for_userID", "User1",
   "expires=Wednesday 01-Dec-2010 00:00:00")
@DTW_SETCOOKIE("mycookie_name_for_password", "sd3dT",
   "expires=Wednesday, 01-Dec-2010 00:00:00;secure")

Las llamadas de función deben estar en una línea; las líneas se dividen en este ejemplo por cuestiones de formato.

Ejemplo 3: Determina si existe una cookie para un usuario antes de recopilar información de usuario

%HTML(welcome) {
  <HTML>
  <body>
  <h1>Net.Data Club</h1>
  @DTW_GETCOOKIE("NDC_name", name)
  %IF (RETURN_CODE == "8000") %{ The cookie is not found. %}
  <form method="post" action="remember">
  <p>Welcome to the club. Please enter your name.<br />
  <input name="name">
  <input type="submit" value="submit"><br /></p>
  </form>
  %ELSE
  <p>Hi, $(name). Welcome back.</p>
  %ENDIF
  </body>
  </HTML>
  %}

La sección de HTML(welcome) comprueba si existe la cookie NDC_name. Si existe la cookie, el navegador visualiza un saludo personalizado. Si no existe la cookie, el navegador solicita el nombre de usuario y lo remite a la sección HTML(remember). Esta sección registra el nombre de usuario en la cookie NDC_name tal como se muestra a continuación:

%HTML(remember) {
  <HTML>
  <body>
  <h1>Net.Data Club</h1>
  @DTW_SETCOOKIE("NDC_name", name,
   "expires=Wednesday, 01-Dec-2010 00:00:00;path=/")
  <p>Thank you.</p>
  <p><a href="welcome">Come back</a></p>
  </body>
  </HTML>
  %}


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]