Sessions

mod_harbour is an Apache module that allows to run PRGs directly on the web !!!
Post Reply
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Sessions

Post 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
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post 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
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post 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?
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Sessions

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post 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: {""=>""}
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Sessions

Post by Antonio Linares »

Luis,

Estamos implementando unas funciones que faltan en mod_harbour IIS

Te avisamos en cuanto estén disponibles

gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post 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…
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Sessions

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Sessions

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post 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....
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post by luiscambuston »

Ejecuté ISSRESET

Mismo resulto.

cookie created!

cookies: {""=>""}
luiscambuston
Posts: 21
Joined: Mon Mar 02, 2020 12:00 am

Re: Sessions

Post by luiscambuston »

Antonio,

DISCULPA.... el nuevo código FUNCIONA. ¡Gracias nuevamente!
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Sessions

Post by Antonio Linares »

Muy bien :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Sessions

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply