Page 1 of 1

Sessions

Posted: Tue Mar 03, 2020 5:57 pm
by luiscambuston
Hay alguna manera de recibir sessions o leer cookies?

Veo como recibir en el querystring, pero no me gusta exponer información en el URL.

GRACIAS

Re: Sessions

Posted: Tue Mar 03, 2020 6:19 pm
by luiscambuston
Tengo una aplicación en clásico ASP.
En sus páginas guardo información en cookies.
En un PRG ejecuto la siguiente función y no puedo leer ninguna cookie.
¿Es así por diseño?


function GetCookies()

local hHeadersIn := AP_HeadersIn()
local cCookies := If( hb_HHasKey( hHeadersIn, "Cookie" ), hb_hGet( hHeadersIn, "Cookie" ), "" )
local aCookies := hb_aTokens( cCookies, ";" )
local cCookie, hCookies := {=>}

for each cCookie in aCookies
hb_HSet( hCookies, SubStr( cCookie, 1, At( "=", cCookie ) - 1 ),;
SubStr( cCookie, At( "=", cCookie ) + 1 ) )
next

return hCookies

Re: Sessions

Posted: Tue Mar 03, 2020 6:33 pm
by luiscambuston
Mi problema es que pasar parámetros en el URL hace muy fácil cambiarlos....

En Classic ASP encuentro Server.URLEncode()

¿Hay alguna función en Mod_Harbour para leer ésta información?

Re: Sessions

Posted: Tue Mar 03, 2020 6:47 pm
by luiscambuston
Disculpen tantos comentarios....

Leo que las cookies deben estar disponibles.

Ejecute la function SetCookie en los ejemplos, trato de leerla y no regresa nada....

¿Será un problema al leer cualquier cookie?

GRACIAS

Re: Sessions

Posted: Tue Mar 03, 2020 6:52 pm
by Antonio Linares
Luis,

Revisa los ejemplos setcookie.prg y getcookie.prg:

live demo: (aqui funcionan correctamente)
https://www.modharbour.org/modharbour_s ... cookie.prg

source code:
https://github.com/FiveTechSoft/mod_har ... cookie.prg
https://github.com/FiveTechSoft/mod_har ... cookie.prg

Re: Sessions

Posted: Tue Mar 03, 2020 7:37 pm
by luiscambuston
Antonio,

¡Muchas gracias!

Combine ambas funciones y no puedo leer la galleta.

Estoy usando IIS en Windows.

Esta es la respuesta

cookie created!

cookies: {""=>""}

Re: Sessions

Posted: Tue Mar 03, 2020 11:02 pm
by Antonio Linares
Luis,

Estamos implementando unas funciones que faltan en mod_harbour IIS

Te avisamos en cuanto estén disponibles

gracias!

Re: Sessions

Posted: Wed Mar 04, 2020 3:49 am
by luiscambuston
¡Muchas gracias!

Sabiendo que lo van a implementar puedo continuar mi programación y simular la información en la galleta.

Nuevamente… ¡Gracias!

No olviden avisarnos…

Re: Sessions

Posted: Wed Mar 04, 2020 9:54 am
by Antonio Linares
Luis,

Puedes obtener el cookie haciendo:

? AP_GetEnv( "HTTP_COOKIE" )

Code: Select all

function Main()

   ? ValToChar( GetCookies() )    

return nil

function GetCookies()

   local cCookies := AP_GetEnv( "HTTP_COOKIE" )
   local aCookies := hb_aTokens( cCookies, "; " )
   local cCookie, hCookies := {=>}
   
   for each cCookie in aCookies
      hb_HSet( hCookies, SubStr( cCookie, 1, At( "=", cCookie ) - 1 ),;
               SubStr( cCookie, At( "=", cCookie ) + 1 ) )
   next    
   
return hCookies

Re: Sessions

Posted: Wed Mar 04, 2020 11:13 am
by Antonio Linares
Hemos publicado una nueva versión que ya incluye las funciones de cookies :-)

Ahora hay que copiar libharbour.dll a c:\windows\System32\inetsrv junto con las DLLs (estan en el repo de mod_harbour):
libcurl.dll, libcrypto-1_1-x64.dll, libssl-1_1-x64.dl

Re: Sessions

Posted: Wed Mar 04, 2020 8:59 pm
by luiscambuston
Antonio.

Bajé e instalé los DLLs en c:\windows\system32\inetsrv

Todavía no leo la galleta

Gracias por todo tu trabajo, es asombroso....

Re: Sessions

Posted: Wed Mar 04, 2020 9:00 pm
by luiscambuston
Ejecuté ISSRESET

Mismo resulto.

cookie created!

cookies: {""=>""}

Re: Sessions

Posted: Wed Mar 04, 2020 9:43 pm
by luiscambuston
Antonio,

DISCULPA.... el nuevo código FUNCIONA. ¡Gracias nuevamente!

Re: Sessions

Posted: Thu Mar 05, 2020 7:57 am
by Antonio Linares
Muy bien :-)

Re: Sessions

Posted: Tue Mar 10, 2020 10:50 am
by Antonio Linares
Luis,

hay una nueva versión de mod_harbour IIS con soporte de concurrencia (multiples peticiones a la vez) y además
ya no precisa copiar DLLs a ninguna carpeta :-) pues detecta desde donde se está ejecutando mod_harbour.dll y
busca ahí las DLLs.

https://github.com/FiveTechSoft/mod_har ... er/IIS/bin