Ir para conteúdo

POWERED BY:

Arquivado

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

danielabdala

Script com Redirect

Recommended Posts

Oi, alguém saberia me dizer por que quando eu tenho um redirect na pagina antes de uma mensagem em html tipo assim: if x=y then response.redirect "http://xxxxx" else <html> <body> fim do script! </body> </html end if o html teima em aparecer, mesmo quando for verdadeira a condição para o if ???? Engraçado é que ele entra no if e no else !!!! Se alguem souber galera é ficaria grato .

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que pode estar acontecendo é que os tipos dos dados serem diferentes, "2" é diferente de 2.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poe um response.end abaixo do redirect.

ola LucaBr , valeu , mas continua aparecendo o html que esta dentro do else.... muito estranho , sendo que a condicao if é verdadeira!

O que pode estar acontecendo é que os tipos dos dados serem diferentes, "2" é diferente de 2.

O Salgado, brigadao, mas nao é possivel isto , pq a teste é o seguinte , x = "Sim" if x="Sim" then , entao nao ha tipos de dados diferentes .....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por algum motivo a condição não está verdadeira. Poste esse trecho do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por algum motivo a condição não está verdadeira. Poste esse trecho do código.

Ta aqui Salgado :
xResp = "Sim" rsWeb.Open "Select count(*) as TotRes from Pesquisa Where...... '" IF rsWeb("TotRes") > 0 then   xResp = "Nao" end if rsWeb.close if xResp = "Sim" then . . . response.redirect "http://xxxx" elseif  xResp = "Nao" then  <%  <html>  <body>   fim!  </body>  </html>  %>  end if
bem é isso ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para testar, coloque um response.Write(xResp) antes de seu IF e veja a resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa colocando assim:if x=y thenresponse.redirect "http://xxxxx"elseresponse.write "fim do script!"end if

E ae LucasBr, fiz conforme você disse e por enquanto ta funcionando, deu um pouco de trabalho pra colocar tudo dentro do response.write, mas vamo ve se nao vai aparecer de novo , pq antes tinha hora que dava e outra que nao dava . Valeu brigadao!

Só para testar, coloque um response.Write(xResp) antes de seu IF e veja a resposta.

Salgado, o xResp é "Sim" pq ele ta entrando dentro do if, so que nao redireciona pra outra pag , mas aparece o html que ta dentro do else... Mas fiz conforme o LucasBr sugeriu , e vamo ve se vai funfá Valeu novamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se no IF só tem o Redirect e ele não está ocorrendo o é porque o teste não atendeu e foi direto para o ELSE. O Response.Redirect interrompe tudo e redireciona, no IIS então você pode até já ter mandado dados para o browser do cliente que o site é redirecionado.

 

Se só pode ser "Sim" não precisaria do ELSEIF mais abaixo no lugar do ELSE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se no IF só tem o Redirect e ele não está ocorrendo o é porque o teste não atendeu e foi direto para o ELSE. O Response.Redirect interrompe tudo e redireciona, no IIS então você pode até já ter mandado dados para o browser do cliente que o site é redirecionado.Se só pode ser "Sim" não precisaria do ELSEIF mais abaixo no lugar do ELSE.

Veja, eu sei que ele entrou no if pq tem comando de inserção no banco dentro do if, e os dados sao gravados no banco, só que ele nao executa o redirect , mostrando o mensagem em html do else.Parece meio ilogico, mas ta ocorrendo. Eu so coloquei o elseif para ver se nao entrava , pq na verdade nao precisa dele, mas nao ta adiantando.. Até.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em seu código existe algum ON ERROR RESUME NEXT?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta seu código completo para uma analize.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta seu código completo para uma analize.

beleza, vai la , ele ta recebendo campus e codprof de um outro form....as partes internas dos if acho que nao interessa , mas vou manda tudo....
<%if Session("login") = "" thenResponse.Redirect "http://www.xxxxx.br"end ifResponse.Buffer = trueResponse.Expires = 0'-----------Início das Funções ------------'Function LeParam(PString, N)	Dim I, X, Chave	Chave = PString	For I = 1 To N	  X = InStr(1, Chave, "_")	  If X > 0 Then		LeParam = Left(Chave, X - 1)	  Else		LeParam = Chave	  End If	  Chave = Mid(Chave, X + 1, Len(Chave))	NextEnd Function'------------Fim das Funções --------------'Dim objConn, objRs, rsMat, x, xResp,xAvaliacaoxResp = "Sim"'--------- Conexão ServWeb3 -------------'Set conWeb = Server.CreateObject("ADODB.Connection")Set rsWeb = Server.CreateObject("ADODB.Recordset")Set rsWeb2 = Server.CreateObject("ADODB.Recordset")Set rsWeb3 = Server.CreateObject("ADODB.Recordset")Set rsWeb4 = Server.CreateObject("ADODB.Recordset")conWeb.Open Application("ConAvaliacao")Set rsWeb.ActiveConnection = conWebSet rsWeb2.ActiveConnection = conWebSet rsWeb3.ActiveConnection = conWebSet rsWeb4.ActiveConnection = conWeb'----------------------------------------'Session("campus") = request.Form("campus")Session("CodProf") = request.Form("CodProf")xAvaliacao = Request.QueryString("ID")rsWeb.Open "Select count(*) as TotRes from Pesquisa Where CodProf = '" & Session("CodProf") & "' and anoaval = "&Session("AnoSem")&" and campus='"&Session("campus")&"'"IF rsWeb("TotRes") > 0 then   xResp = "Nao"end ifrsWeb.closeif xResp = "Sim" thenFor Each x In Request.Form 	if trim(LeParam(x, 1)) = "text" and trim(LeParam(x, 2)) = "1" and xResp="Sim"  then 		strQ = "Select * from Pesquisa"		rsWeb.Open strQ, conWeb, 1, 2			   rsWeb.AddNew			   rsWeb("campus") = Session("campus")			   rsWeb("CodProf") = Session("CodProf")			   rsWeb("Alt_Id") = (LeParam(x, 4))				if IsNull(Request(x)) or Request(x) = "" then				   else					  rsWeb("Alt_Nota") = Request(x)				   end if			   rsWeb("anoaval") = Session("AnoSem")			   rsWeb.Update		rsWeb.close	end if'-------------------------------------------------------	if trim(LeParam(x, 1)) = "radio" and trim(LeParam(x, 2)) = "0" and xResp="Sim"  then 		resp = Request(x)		valor = trim(LeParam(resp,1))		alt = trim(LeParam(resp,2))		strQ = "Select * from Pesquisa"		rsWeb.Open strQ, conWeb, 1, 2		rsWeb.AddNew		rsWeb("campus") = Session("campus")		rsWeb("CodProf") = Session("CodProf")		rsWeb("Alt_Id") = alt		rsWeb("Alt_Escolha") = valor		rsWeb("anoaval") = Session("AnoSem")		rsWeb.update		rsWeb.close	end if'-------------------------------------------------------	if trim(LeParam(x, 1)) = "checkbox" and trim(LeParam(x, 2)) = "0" and xResp="Sim"  then 	   strQ = "Select * from Pesquisa"		rsWeb.Open strQ, conWeb, 1, 2		rsWeb.AddNew		 rsWeb("campus") = Session("campus")		 rsWeb("CodProf") = Session("CodProf")		 rsWeb("Alt_Id") = (LeParam(x, 3))		 rsWeb("Alt_Escolha") = Request(x)		 rsWeb("anoaval") = Session("AnoSem")		rsWeb.update		rsWeb.close	end if'-------------------------------------------------------	if trim(LeParam(x, 1)) = "textarea" and trim(LeParam(x, 2)) = "0" and xResp = "Sim" then 	 strQ = "Select * from Pesquisa"		rsWeb.Open strQ, conWeb, 1, 2		rsWeb.AddNew		 rsWeb("campus") = Session("campus")		 rsWeb("CodProf") = Session("CodProf")		 rsWeb("Alt_Id") = (LeParam(x, 4))		 rsWeb("Alt_Aberta") = Request(x)		 rsWeb("anoaval") = Session("AnoSem")		rsWeb.update		rsWeb.close	end if '-------------------------------------------------	if trim(LeParam(x, 1)) = "text" and  (LeParam(x, 2)) = "0"  and xResp = "Sim" then 	 strQ = "Select * from Pesquisa"		rsWeb.Open strQ, conWeb, 1, 2		rsWeb.AddNew		 rsWeb("campus") = Session("campus")		 rsWeb("CodProf") = Session("CodProf")		 rsWeb("Alt_Id") = (LeParam(x, 4))		 rsWeb("Alt_Aberta") = Request(x)		 rsWeb("anoaval") = Session("AnoSem")		rsWeb.update		rsWeb.close	end if '-------------------------------------------------next   response.Redirect "http://xxxx"   response.End() elseif xResp = "Nao" then	Session("questionario") ="http://xxxx"	response.Write "<html>" & _	"<head>" & _	"<title>Avaliação Institucional</title>" & _	"<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>" & _	"</head>" & _	"<body bgcolor='#ffffff' text='#000000'>" & _	"<form action='"&Session("questionario")&"' method='post' name='form1' >"& _	"<br> <p align=center> </p><br>"& _	"<table border='0' cellspacing='0' width='600' height='260' align='center' cellpadding='0'>" & _	" <tr><td><img name='' src='img/msm_pesquisa.gif' width='600' height='260' border='0' alt=''></td> </tr>" & _	"</table><br><br><br><br>"& _	"<div align='center'><input type='submit' name='Submit' value='.::::::::::: Continuar Avaliação :::::::::::.' >" & _	"</div></form></body></html>"	 end if 'fim do verifica xResp   %>
ta ele ai inteirinho....falou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está redirecionando para a mesma página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente não vejo motivos para não estar redirecionando. Retire o Response.END e antes do seu REDIRECT feche e destrua a conexão e os RecordSet's. Alias, analizando apenas esse trecho do código, acho que tem RecordSet's demais e você está usando apenas 1 em seu código (levando em consideração que esse seria todo o código).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente não vejo motivos para não estar redirecionando. Retire o Response.END e antes do seu REDIRECT feche e destrua a conexão e os RecordSet's. Alias, analizando apenas esse trecho do código, acho que tem RecordSet's demais e você está usando apenas 1 em seu código (levando em consideração que esse seria todo o código).

:o Salgado, estou atonito, fiz o que você me sugeriu, testei umas 5 vezes até que derrepente aparece a mensagem do else !!!! nao sei como.....puts, essa ta f***....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que ja sei o que esta acontecendo, acho....parece que ele ta dando um refresh de graça na pag.., ai faz com que ele apareça a mens. do else pq ai sim o xResp vai ser "Nao" , pq os dados ja foram inseridos no banco , ele entro no elseif...Agora pq ele ta dando esse refresh na pag ao inves de voltar pra pag inicial isso é que nao sei ....

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.