Ir para conteúdo

POWERED BY:

Arquivado

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

renan mafra

Problemas com HTTP_REFERER e BD

Recommended Posts

Olá pessoal, é o seguinte:

 

Tenho uma página que lista dados do banco (nome, apelido, idade e etc) tem

a opção de excluir cada dado separadamente, é só clicar no icone de lixeira

ao lado do nome, na página excluir, é feita a exclusão, e após excluído o dado,

eu pego a página anterior via request.servervariables(HTTP_REFERER), aí

volta-se para a página anterior novamente, só que a váriavel que contem a página

com as váriaveis que é capturada pelo HTTP_REFERER não esta mantendo

determinado nomes com acentos e um nome como Laís esta ficando assim: LaÃs

causando um erro ao buscar os dados novamente.

 

O link capturado pelo HTTP_REFERER esta assim:

 

http://localhost/site/pasta/editar_galeria.asp?apelido=LaÃs em vez de Laís

 

como faço para corrigir isso, o dando vem do BD e esta correto é o REFERER que esta fazendo isso ! Como resolvo pessoal ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer assim


<%

' Simple functions to convert the first 256 characters 
' of the Windows character set from and to UTF-8.

' Written by Hans Kalle for Fisz
' [url="http://www.fisz.nl"]http://www.fisz.nl[/url]

'IsValidUTF8
'  Tells if the string is valid UTF-8 encoded
'Returns:
'  true (valid UTF-8)
'  false (invalid UTF-8 or not UTF-8 encoded string)
function IsValidUTF8(s)
 dim i
 dim c
 dim n

 IsValidUTF8 = false
 i = 1
 do while i < len(s)
   c = asc(mid(s,i,1))
   if c and &H80 then
     n = 1
     do while i + n < len(s)
       if (asc(mid(s,i+n,1)) and &HC0) <> &H80 then
         exit do
       end if
       n = n + 1
     loop
     select case n
     case 1
       exit function
     case 2
       if (c and &HE0) <> &HC0 then
         exit function
       end if
     case 3
       if (c and &HF0) <> &HE0 then
         exit function
       end if
     case 4
       if (c and &HF8) <> &HF0 then
         exit function
       end if
     case else
       exit function
     end select
     i = i + n
   else
     i = i + 1
   end if
 loop
 IsValidUTF8 = true 
end function

'DecodeUTF8
'  Decodes a UTF-8 string to the Windows character set
'  Non-convertable characters are replace by an upside
'  down question mark.
'Returns:
'  A Windows string
'
'  Fiz uma pequeno ajuste porque o algoritmo gera erro quando
'  o acento está no último caractere
function DecodeUTF8(s)
 dim i
 dim c
 dim n
 s = s + chr(65)
 i = 1
 do while i < len(s)
   c = asc(mid(s,i,1))
   if c and &H80 then
     n = 1
     do while i + n < len(s)
       if (asc(mid(s,i+n,1)) and &HC0) <> &H80 then
         exit do
       end if
       n = n + 1
     loop
     if n = 2 and ((c and &HE0) = &HC0) then
       c = asc(mid(s,i+1,1)) + &H40 * (c and &H01)
     else
       c = 191 
     end if
     s = left(s,i-1) + chr(c) + mid(s,i+n)
   end if
   i = i + 1
 loop
 s = left(s,len(s)-1)

 DecodeUTF8 = s 
end function

'EncodeUTF8
'  Encodes a Windows string in UTF-8
'Returns:
'  A UTF-8 encoded string
function EncodeUTF8(s)
 dim i
 dim c

 i = 1
 do while i < len(s)
   c = asc(mid(s,i,1))
   if c >= &H80 then
     s = left(s,i-1) + chr(&HC2 + ((c and &H40) / &H40)) + chr(c and &HBF) + mid(s,i+1)
     i = i + 1
   end if
   i = i + 1
 loop
 EncodeUTF8 = s 
end function
%>



response.redirect DecodeUTF8(request.servervariables("http_referer"))



 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

para UTF-8

 

Mudar o head da página que solicita os dados para que ele fique assim

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

 

Na página que responde os dados colocar isso antes do retorno co conteúdo (logo no topo):

<%
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
Response.AddHeader "Pragma", "no-cache"
response.Charset="utf-8"
%>

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.