Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kania

Adicionar dados ao cookie existente

Recommended Posts

Bom dia Galera,

 

Gente como faço para verificar s eo cookie existe e caso ele já exista eu possa adicionar novos dados enele, caos estes dados ainda não esteja cadastrado.

 

Cheguei até aqui:

 

'Se o cookie não existe eu o crio
	If Request.Cookies("IAKIMaisBuscado") = null Then
	
		Response.Cookies("IAKIMaisBuscado")("Cat") = IdCat
		Response.Cookies("IAKIMaisBuscado").expires = DateAdd("yyyy",1,Now())'"yyyy "
	
	Else
	
		'faço a busca peloa rquivo para ver se no cookie existente
		'já tem o mesmo registro
		For Each Cat in Request.Cookies("IAKIMaisBuscado")("Cat")
			
			'se o registro for diferente ele tem que adiconar o novo registro
			If Request.Cookies("IAKIMaisBuscado")("Cat") <> IdCat Then
		
				
			
			End If
			
		Next
			
	End If	

Agora não sei como adicionar mais intes a cookie existente e também não sei se a forma que estou fazendo é mais correta, alguém poderia me dar uma orientação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa comi bola, fiz d eoutra maneira bem mais simples:

 

'Se o cookie não existe eu o crio
	If Request.Cookies("IAKIMaisBuscado") = "" Then
	
		Response.Cookies("IAKIMaisBuscado")("Cat") = IdCat
		Response.Cookies("IAKIMaisBuscado").expires = DateAdd("yyyy",1,Now())'"yyyy "
	
	Else
	
		ItensBuscados = Request.Cookies("IAKIMaisBuscado")("Cat")
		Response.Cookies("IAKIMaisBuscado")("Cat") = ItensBuscados&"|"&IdCat
		Response.Cookies("IAKIMaisBuscado").expires = DateAdd("yyyy",1,Now())'"yyyy "
			
	End If	

Agora só preciso corrigir a questão do caracter especial que deveria guardar assim | e esta guardando assim %7C e a questão de verificar se por acasa algum dos ids já estão cadastrados na cookie ou não, para não ficar cadastrando duplicados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em relação ao caractere use essa funcção

 

Function URLDecode(str)
    dim re
    set re = new RegExp
    str = Replace(str, "+", " ")
    re.Pattern = "%([0-9a-fA-F]{2})"
    re.Global = True
    URLDecode = re.Replace(str, GetRef("URLDecodeHex"))
End fFunction

Function URLDecodeHex(match, hex_digits, pos, source)
    URLDecodeHex = chr("&H" & hex_digits)
End Function

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, estou quase lá.

 

O que jpa consegui:

 

If Request.Cookies("IAKIMaisBuscado") = "" Then

	Response.Cookies("IAKIMaisBuscado")("Cat") = IdCat
	Response.Cookies("IAKIMaisBuscado").expires = DateAdd("yyyy",1,Now())'"yyyy "

Else

	ItensBuscados = Request.Cookies("IAKIMaisBuscado")("Cat")
	
	If Instr(ItensBuscados,IdCat) Then
		Response.Cookies("IAKIMaisBuscado")("Cat") = ItensBuscados
	Else
	
		Response.Cookies("IAKIMaisBuscado")("Cat") = ItensBuscados&"|"&IdCat
		Response.Cookies("IAKIMaisBuscado").expires = DateAdd("yyyy",1,Now())'"yyyy "
		ItensBuscados = Request.Cookies("IAKIMaisBuscado")("Cat")
		Response.Write ItensBuscados
		
	End If	
End If		
  • Verifico se o cookie existe, caso não exista eu o crio
  • Casao exista eu pego os dados que existam el e verifico se o id que esta vindo já esta no coookie
  • Caso já tenha o mesmo id no cookie eu não faço nada
  • Caso o id não esteja no cookie eu o cadastro

Agora o que estou querendo melhorar aqui:

 

- Limitar quantidade de itens no cookie, no máximo de 10, atá ai tudo bem, eu faço um for, mas o caso é que se eu limitar a 10 ele vai verificar e ver se já tem 10 cadastrados caso tenha ele não deixar cadastrar mais, e não é o que quero, o que preciso é verificar se tem o máximo de 10, caso não tenha ele cadastra até atingir os 10, claro que um por vez conforme o acesso ou pesquiza do usuário, caso já tenha os 10 e o item ao qual ele esta buscando não esteja na lista então ele pega o primeiro da lista (que seria na lógica o mais antigo do registros salvos), e substituo pelo novo registro

 

Minha dificuldade aqui esta em apagar o primeiro registro e cadastrar o novo no lugar, exemplo

 

Já tingi máximo de 10 itens buscados:

 

1

4

6

2

7

8

9

3

5

10

 

Ai eu efetua a busca e o novo id que é pego é o 15, ele não está na lista dentro do cookie, neste caso eu tenho que cadastrar ele então, então eu tenho que apagar o item 1 (primeiro da lista, na lógica é o mais antigo), e cadastrar agora o novo id 15, então a lista agora fica assim

 

4

6

2

7

8

9

3

5

10

15

 

É possível fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

De um Split no Cookie... e verifique o tamanho do array criado com o UBound.....

Se for = a 10...faça uma busca com um for, procurando pela pesquisa do cara, se nao encontrar, você exclui o indice 0, que teoricamente é o mais antigo.... e cadastra o novo...

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.