Ir para conteúdo

POWERED BY:

Arquivado

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

hunger

retornar erro na mesma pagina

Recommended Posts

fala pessoal....

 

por exemplo: em uma página, eu listo alguns registros de acordo com uma busca. Caso não tenha registro com aquelas características, ele retorna uma mensagem avisando que nao foi encontrado nada.

 

o problema é q esta mensagem é dada em uma página em branco, só com ela. tp, eu queria q esta resposta fosse dada ali, naquela mesma pagina, com todo o design etc....... nao sei se consegui ser claro. mas é simples.

 

aqui está o trecho q manda retornar a mensagem... tive ate q colocar um link para voltar.... mas nao queria.

 

ASP

[*]'Vamos criar o objeto Record Set -> neste caso é necessário declará-lo,

 

[*]'pois vamos utilizar algumas funções deste objeto 

 

[*]Set RS Server.CreateObject("adodb.recordset")

 

[*]

 

[*]RS.PageSize = 10 'quantidade de registros por página. Você pode alterar sem conforme precise.

 

[*]

 

[*]SQL "SELECT * FROM consultas where CRM='"&S&"' and dia = '"&Dia&"' and mes = '"&Mes&"' and ano = '"&Ano&"' Order By HORA ASC"

 

[*]RS.Open SQL,Conn,3,3

 

[*]

 

[*]'Vamos agora verificar exceções do tipo “fim de arquivo” (EOF), se a página atual é menor 

 

[*]'que zero, se é maior que o número total de páginas, etc.

 

[*]IF RS.EOF then 

 

[*]Response.Write "<span class='tituloform'>Nenhum registro encontrado! <br><a href='java script:history.go(-1);'>Clique aqui para voltar à página anterior</a></span>"

 

[*]Response.End 'paramos o programa

 

[*]ELSE

 

[*]'Definindo em qual pagina o visitante está

 

[*]IF Request.QueryString("pagina")="" then 

 

[*]intpagina=1 

 

[*]ELSE

 

[*]IF cint(Request.QueryString("pagina"))<1 then

 

[*]intpagina=1 

 

[*]ELSE

 

[*]IF cint(Request.QueryString("pagina"))> RS.PageCount then 

 

[*]intpagina=RS.PageCount 

 

[*]ELSE

 

[*]intpagina=Request.QueryString("pagina")

 

[*]END IF

 

[*]END IF

 

[*]END IF

 

[*]END IF

 

de uma maneira estranha, a minha página de login responde a msg de erro ali, no mesmo lugar, sem mudar para outra (como faz a q expliquei acima). olhei o codigo e nao percebi diferenças.... todo caso, vou colocar abaixo:

 

ASP

[*]IF request.form("acao""login" THEN

 

[*]

 

[*]'Recupero o texto que foi escrito no formulário

 

[*]vlogin Replace(request.form("login"), "'""''")

 

[*]vsenha Replace(request.form("senha"), "'""''")

 

[*]

 

[*]'Faço a conexão com o banco de dados

 

[*]db="c:\inetpub\wwwroot\receita\Dados\bdadm.mdb"

 

[*]Set con Server.CreateObject"adodb.Connection" )

 

[*]con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & db & ";"

 

[*]set rs=con.execute("select * from login where login='"&vlogin&"' and senha='"&vsenha&"'")

 

[*]

 

[*]'Se não for encontrado nenhum registro aparecerá uma mensagem de erro. Caso contrário o visitante receberá um nome de sessão para poder navegar nas demais paginas protegidas e será redirecionado para a página protegida

 

[*]if rs.EOF then

 

[*]response.write"<span class='tituloform'>Senha ou Login inválido!</span>"

 

[*]else

 

[*]session("logado")="sim" 

 

[*]redireciona request.form("redireciona")

 

[*]redireciona = redireciona 

 

[*]response.redirect (redireciona)

 

[*]

 

[*]end if

 

[*]END IF

 

agradeço qquer ajuda. preciso acabar isso nesta madrugada, pq tenho q entregar sexta.... vou ficar aqui ate terminar.... ate amanhecer se for o caso.

 

valew pela ajuda! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa.....beleza?desculpe... nao manjo mto de ASP... como crio um lay?abço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tira o Response.END

Compartilhar este post


Link para o post
Compartilhar em outros sites

NESSE CASO O RESPONSE.END PAROU A EXECUÇÃO DO RESTANTE DO CODIGO, JUSTAMENTE NAS PARTES QUE EXIBEM O LAYOUT(DESIGN), MAS TEM UM PORÉM, PODE EXISTIR CODIGOS QUE PODEM COMPROMETER O SEU SISTEMA, POR ISSO FOI DADA A INSTRUÇÃO RESPONSE.END.ACONSELHO FAZER O DESIGN SEPARADO E USAR INCLUDE.FALOW?INCLUDE É ASSIM:<!--#include file="PAGINA_DO_LAYOUT.asp"-->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se a programação que usa dados do Banco de Dados dele está corretamente dentro do ELSE não há motivos para temer um erro, e se surgir é só corrigir. Da forma como está já está com erro, como é dado um Response.End, nem o RecordSet nem a Conexão são terminadas e destruidas, o que pode apresentar problemas na performance e também "bloquear" o banco de dados.

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.