Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal, cheguei até a criar um tópico com esse problema, mas ele tava um tanto mal explicado e eu não sei se posse "desenterrá-lo" para explicar meu problema, então eu criei um mais fácil de entender.
Experimentem vocês fazer este código ASP:
set Session("usuario") = new Usuario
Session("usuario").nome = "Teste"
Response.write Session("usuario").nome
A Classe Usuário pode ser algo bem simples:
class Usuario
dim nome
end class
O código acima funciona normalmente, mas algo estranho ocorre se a página for redirecionada, veja a seguir:
Chamaremos essa página de pagina1.asp
set Session("usuario") = new Usuario
Session("usuario").nome = "Teste"
Response.write Session("usuario").nome
Response.redirect("pagina2.asp")
Chamaremos este de pagina2.asp
response.write Session("usuario").nome
Ao tentar este código temos um erro, pois ele perdeu os atributos do objeto (embora um isObject(Session("usuario") ) retorne true)
O objeto não dá suporte para a propriedade ou método: 'nome'
Alguém já conseguiu driblar esta dificuldade?
Obrigado Pessoal!
Olá Xanburzum, este erro não ocore ao armazenar strings, inteiros e arrays.
Ocorre somente com Objetos.
O código do erro eu não vou conseguir providenciar agora, mas eu postei a mensagem de erro na descrição do problema.
Se você puder me ajudar a contornar essa "falha" do ASP ou tiver algum material pra me enviar, eu agradeceria!
Valeu!
usa o code que postei e verifique o resultado...
Olá Xamburzum, o seu código de fato funciona, mas eu não consegui entender bem o que você quis me explicar.
De qualquer forma encontrei uma solução que parece ser bem interessante: usei dicionários.
Estes são armazenados na Session sem quaisquer problemas e tem estrutura semelhante com a de um objeto.
Considero o problema contornado, mas fico curioso se alguém conseguiu armazenar os objetos na Session.
Muito Obrigado pela atenção.
qual o número do erro ?
você esta utilizando JScript ?
tente assim
varlogin=Replace(varlogin,"'","")
session("login")=varlogin
varloginsession=Session("login")
response.write Session("login")
abaixo um exemplo que utilizo normalmente.
<% Option Explicit
'declara as var
dim varsenha, varlogin, conexao ,rs, SQL, conDBQ, constring, rsselect, sqlselect, rsinsert, sqlinsert, rsupdate, sqlupdate,data
'recupera as var
varlogin=Trim(request.form("login"))
varsenha=Trim(request.form("senha"))
varlogin=Replace(varlogin,"'","")
varsenha=Replace(varsenha,"'","")
if varlogin="" then
response.redirect("logincli_form_treina.asp?msgeof=1")
end if
if varsenha="" then
response.redirect("logincli_form_treina.asp?msgeof=2")
end if
if Session("logado")=True then
response.redirect("logincli_form_treina.asp?msgeof=5")
end if
%>
<!--#include file="conn/conexao1.asp"-->
<%
call abreconexao
'cria o recordset
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
if rs.eof then
response.redirect("logincli_form_treina.asp?msgeof=3")
else
if Lcase (varsenha) <> Lcase(rs("senha")) then
response.redirect("logincli_form_treina.asp?msgeof=4")
session("logado")=False
else
session("logado")=True
session("senha")=varsenha
session("login")=varlogin
response.Redirect("administracao_treina.asp")
end if
end if
set rs=nothing
call fechaconexao%>