Ir para conteúdo

Arquivado

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

Gilcimar Macedo

Problema utilizando cookies

Recommended Posts

Pessoal Bom dia,

 

Vou tentar explicar o problema que estou tendo em minha aplicação ASP com Oracle, aplicação móvel utilizado em um Palm Industrial do modelo symbol.

 

Ao usuário se logar no sistema, automáticamente armazeno o usuario e a senha em cookies para utilizar em conexões que são realizadas conforme transação do usuário.

 

O Problema que estou tendo é o seguinte: Em um determinado momento os cookies são perdidos, apagados.

 

Sempre no mesmo momento que ocorre o erro..sempre na 18ª refreshed na página.. pois cada refresh significa a lida de um codigo de barra e consequentemente uma rotina de banco é executada.

 

Não sei oque pode estar ocorrendo.. Help-me please.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você continua o tempo todo no mesmo domínio, não era para seus cookies estarem desaparecendo.

 

Veja se em algum momento, sua página é enviada para um ambiente seguro. Se isso ocorrer, realmente você perderá seus dados, seja em cookies ou session. E não há modo de evitar isso (acredite, já sofri com isso também).

 

Agora se você não está sendo direcionado para nenhum outro domínio, precisa procurar no seu código o que está causando isso.

 

Poste ai a parte que ocorre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é gerado algum erro ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>

 

<script>

function Confirma(prod,cx)

{

if (confirm("Atenção, existe Nro. de Rastreabilidade mais antigo para este produto. Deseja liberar esta caixa mesmo assim?"))

{

window.location ="Retornar.asp?produto="+prod+"&caixa="+cx+"&confirma=N"

}

else

{

window.location ="index.asp?consulta_produto="+prod;

}

}

function Vazia(cx)

{

window.alert("A caixa "+cx+" não está alocada!");

window.location ="index.asp?consulta_produto="+prod;

//window.location ="HTTP://WWW.GOOGLE.COM.BR";

}

</script>

<body>

<%

 

dim tipo,produto,rastrea,cx,sql,CMD

rastrea = Request.QueryString("rastrea")

cx = ucase(Request.QueryString("caixa"))

produto=Request.QueryString("produto")

tipo=Request.QueryString("tipo")

 

dim con

Set con = CreateObject("ADODB.Connection")

con.open = "Provider=MSDaora;Data Source=" & Request.Cookies("myDBConnection")("banco") & ";User Id=" & Request.Cookies("myDBConnection")("user") & ";Password=" & Request.Cookies("myDBConnection")("password") & ";"

 

if con.state<>1 then

Response.Redirect("../../../principal.asp?erro=Sem conexão com o banco de dados!")

end if

 

if con.state=1 then

if cx<>"" then

 

dim rs_vazia

QUERY

set rs_vazia = con.execute(sql)

if Cint(rs_vazia(0))=0 then

Response.Redirect ("index.asp?consulta_produto=" & produto & "")

end if

dim rs_qtde

QUERY

set rs_qtde = con.execute(sql)

if not rs_qtde.EOF then

application("cx_liberada") = "A caixa " & cx & " com " & rs_qtde(0) & " peças "

else

application("cx_liberada") = ""

end if

end if

 

 

dim rs_FAC

QUERY

set rs_FAC = con.execute(sql)

if not rs_FAC.EOf then

if Clng(rs_fac(0)) = 0 then

%>

<script>

Confirma("<%=produto%>","<%=cx%>");

</script>

<%

end if

end if

if Request.QueryString("confirma")="N" or (not rs_FAC.EOF and Clng(rs_fac(0))>0) then

QUERY CMD.Execute

if len(CMD.Parameters(3).value)>1 then

session("erro_oracle") = "Erro no comando PRC_LIBERA_CAIXA " & ucase(CMD.Parameters(3).Value)

else

session("erro_oracle") = ""

end if

set CMD = nothing

if session("erro_oracle") = "" then

Response.redirect "index.asp?consulta_produto=" & produto

else

Response.Write session("erro_oracle")

end if

end if

 

end if

%>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ERRO NO BROWSER

 

Realizei teste pelo Firefox e nao tive problema, provavelmente deve ser o browser

 

The page cannot be found

The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.

--------------------------------------------------------------------------------

 

Please try the following:

 

Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.

If you reached this page by clicking a link, contact the Web site administrator to alert them that the link is incorrectly formatted.

Click the Back button to try another link.

HTTP Error 404 - File or directory not found.

Internet Information Services (IIS)

 

--------------------------------------------------------------------------------

 

Technical Information (for support personnel)

 

Go to Microsoft Product Support Services and perform a title search for the words HTTP and 404.

Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled Web Site Setup, Common Administrative Tasks, and About Custom Error Messages.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não mostra a linha do erro.

 

No código, as variáveis que abrem recordsets não estão sendo setadas (set rs_FAC = createobject("adodb.recordset")).

 

Você retirou para postar aqui ou realmente está sem?

 

O curioso é funcionar no firefox, rs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique o nome da variavel é bom o uso do Option Explicit,onde

Força a declaração (com Dim, Private, Public ou ReDim) de

todas as variáveis usadas no script, antes de serem utilizadas.

Deve ser colocado no script antes de qualquer outra instrução.

Qualquer tentativa de usar uma variável não declarada ocasionará

um erro. A declaração de variáveis antes de usá-las faz com que

o script seja executado mais rapidamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde você grava o cookie? Onde está essa linha? você limitou o periodo de expiracao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde você grava o cookie? Onde está essa linha? você limitou o periodo de expiracao?

 

Vamos por parte, o cookie é setado nesta página

 

 

Página login.asp

<%
on error resume next
set myDBConnection = createobject("adodb.connection") 'Banco de Dados
dim enviar,usuario,senha
usuario=Request.QueryString("u")
senha=Request.QueryString("p")


if myDBConnection.state=1 then
	myDBConnection.close
end if

myDBConnection.ConnectionTimeout = 99999

Response.Cookies("myDBConnection")("banco")="CLONE"
Response.Cookies("myDBConnection")("dns")="desenv"
myDBConnection.Open "DSN=" & Request.Cookies("myDBConnection")("dns"),usuario ,senha

session.Timeout = 90


dim Trans_liberada


'**************** ALGUM ERRO DE BANCO DE DADOS
If Err.Number <> 0 Then
	Enviar = Cstr(mid(Err.Description,instr(Err.Description,":")+1))
	if instr(Err.Description,"shared") then
		Enviar = "O sistema de Banco de Dados está fora do ar."
	end if
	Enviar = Replace(Enviar,"[Microsoft]","")
	Enviar = Replace(Enviar,"Driver Manager","")
	Enviar = Replace(Enviar,"[","")
	Enviar = Replace(Enviar,"]","")
	Response.Redirect("../principal.asp?erro=" & Cstr(Enviar))
End If

If myDBConnection.state Then
	dim sql,rs_busca
	sql = "Select count(*) From Cs_Usuario_Forms Where upper(Cd_Usuario) = '" & Ucase(usuario) & "'"
	set rs_busca = myDBConnection.execute(sql)
	if rs_busca(0)>0 then
		Response.Cookies("myDBConnection")("user")=usuario
		Response.Cookies("myDBConnection")("password")=senha
		%>
		<script>
			window.open("../Principal/Menu.asp?load=S", "_top");
		</script>
		<%
	else 
		response.Redirect("../principal.asp?erro=Usuário sem acesso às transações do Palm")
	end if
else
	Response.Redirect("../default.asp?erro=Conexão negada!") 
End If


%>

Realizado isso, eu utilizo o cookie na página Retornar.asp na string de conexão abaixo:

 

con.open = "Provider=MSDaora;Data Source=" & Request.Cookies("myDBConnection")("banco") & ";User Id=" & Request.Cookies("myDBConnection")("user") & ";Password=" & Request.Cookies("myDBConnection")("password") & ";"

Já tentei sim limitar o periodo de utilização colocando 365 dias, mas não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não mostra a linha do erro.

 

No código, as variáveis que abrem recordsets não estão sendo setadas (set rs_FAC = createobject("adodb.recordset")).

 

Você retirou para postar aqui ou realmente está sem?

 

O curioso é funcionar no firefox, rs.

Claudio,

 

Realmente tirei algumas informações para que fosse postada aqui, mas estão todas as querys com set rs_vazia = con.execute(sql).

 

Em relação o funcionamento no Browser Firefox é o seguinte:

 

No Palm o Windows é o CE, mas não há firefox para esse Windows e caso tenha algum browser que desconheço me indique para eu testar pois o erro pelo que percebi esta no IE 6 para Windows CE.

 

Testamos também em outro Windows para Touch Screen(desktop) que é o Windows Embedded mas tb não funcionou, porém esse Windows permite a utilização do Firefox Portable e tive sucesso.

 

Windows XP com IE 7 funciona corretamente..

 

Pode estar confuso as informações acima, mas qualquer dúvida post ai..

 

Abraços e Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que estranho isso.

 

 

Não tenho certeza, mas veja se tem opera para seu palm. Tem opera para quase todos os aparelhos. Chama-se Mini Opera.

OK, vou testar e posto o resultado.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada neste link,talvez possa ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Dando continuidade ao meu problema, informo o segui..

 

Para o Palm que utilizo hoje não há versão do mini opera.

 

Utilizei uma ferramenta para monitorar os processos do IIS, indetifiquei que esta ocorrendo Buffer Overflow c:\windows\system32\inetsrv\w3wp.exe -a \\.\pipe\iisipma8345c01-91c4-4b88-9d5f-37fa436d96a8 -t 20 -ap "DefaultAppPool"

 

Gostaria de saber se algúém ja teve esse problema?

 

Abraços

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.