Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

Tratar erros da URL

Recommended Posts

Pessoal!

 

Como poderia fazer da melhor maneira para tratar estas ocasiões a seguir?

 

1) Geralmente quando usamos dados dinamicos, as url ficam assim:

detalhes.asp?cod=2

 

a) Me dizem uma coisa, como posso tratar isso para não gerar erro, tipo:

Digamos que o cara tente tirar o 2 e deixar somente o = e dar um enter, vai dar erro.

Oque posso fazer aí???? para resolver????

 

B) E se ele colocar um número que não existe no banco, como posso tratar para resolver????

 

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

if not isNumeric(variavel) then
   erro
end if

if variavel = "" then
   erro
end if

ai você conecta o banco com a variavel e verifica com eof

 

*digam

Compartilhar este post


Link para o post
Compartilhar em outros sites

para bloquear acesso direto a nossa página

 

 

<% 
'Se não vier do meu dominio ou vim em branco vai bloquear 
IF Request.ServerVariables("HTTP_REFERER") <> Request.ServerVariables("SERVER_NAME") 
and Request.ServerVariables("HTTP_REFERER") = "" THEN 
response.redirect("sua_pag_blokeada") 
ELSE%> 
aki seu codigo<%End IF%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar em todas as paginas que recebem o request de outra

Compartilhar este post


Link para o post
Compartilhar em outros sites

para bloquear acesso direto a nossa página

 

 

<% 
'Se não vier do meu dominio ou vim em branco vai bloquear 
IF Request.ServerVariables("HTTP_REFERER") <> Request.ServerVariables("SERVER_NAME") 
and Request.ServerVariables("HTTP_REFERER") = "" THEN 
response.redirect("sua_pag_blokeada") 
ELSE%> 
aki seu codigo<%End IF%>

 

Não consegui usar isso @_@

tá errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos !

 

Como posso fazer estas mesmas funções numa página que faz o select na mesma página e mostra os resultados na mesma página?

Estes códigos funcionaram em uma página que envia um ID e a outra página recebe ele.

 

MAs meu problema agora é que em paginações não funciona, veja meu código exemplo abaixo, e vejam se conseguem me ajudar a fazer o mesmos com os códigos que me postaram anteriormente.

 

Pois assim eu não consegui, coloquei no começo deste código e não vai

 

 

 

<!--#include file="cabeca_e_conexao.asp" -->
<table width="955" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
	<td><table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
	  <tr>
		<td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
		  <tr>
			<td width="63%" valign="top">
<%
 SQL = "SELECT * FROM TABLEIMG ORDER BY ID DESC"
 SET RS = Server.CreateObject("ADODB.Recordset")
	 RS.CursorLocation = 3
	 RS.CursorType	 = 3
	 RS.CacheSize	  = 10
	 RS.PageSize	   = 10
	 RS.Open SQL, ConOBJ
  IF RS.EOF THEN
%>
<table width="100%" border="0" cellspacing="2" cellpadding="2">
  <tr>
	<td>Nao há registros no banco de dados</td>
  </tr>
</table>
<%
  ELSE
	 PaginaAtual = CInt(Request.QueryString("registro"))
  IF PaginaAtual = 0 THEN
	 PaginaAtual = 1
		  END IF
			RS.AbsolutePage = PaginaAtual
	  Num = RS.PageCount
  WHILE NOT RS.EOF AND RS.AbsolutePage = PaginaAtual  
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
	<td width="100%">
	  <table width="535" height="130" border="0" align="center" cellpadding="0" cellspacing="0" id="rollover">
		<tr>
		  <td><table width="510" border="0" align="center" cellpadding="0" cellspacing="0">
			  <tr>
				<td valign="middle"> </td>
				</tr>
			  <tr>
				<td width="159" valign="middle"><div align="center"><img src="COM_img/<%=RS("imagem")%>" alt="Logotipo" width="130" height="100" border="1" class="BORDA_VAZIA"></div></td>
				</tr>
			  <tr>
				<td valign="middle"> </td>
				</tr>
		  </table></td>
		</tr>
</table>
<% 
Anterior = PaginaAtual - 1
   Proximo = PaginaAtual + 1

  IF Anterior <= 0 THEN
	 Anterior  = 1
  END IF

  IF Proximo > RS.PageCount THEN
	 Proximo = RS.PageCount
END IF
%></td>
  </tr>
  <tr>
	<td> </td>
  </tr>
</table>
<%
RS.MoveNext
   WEND
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="5">
  <tr>
	<td valign="bottom">
	<div id="PAGINACAO">
<div align="right">
<%
PaginacaoContador = 1
   WHILE PaginacaoContador <= RS.PageCount
		 IF PaginaAtual = PaginacaoContador THEN
			Response.Write(""& PaginacaoContador &"")
				ELSE
			Response.Write("<a href=""teste.asp?registro="& PaginacaoContador &""""& PaginacaoContador &""">"& PaginacaoContador &"</a>")
		 END IF
PaginacaoContador = PaginacaoContador + 1
	WEND
END IF
%>
 </div>
	</div></td>
  </tr>
</table></td>
	  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
</table>
</BODY>
</HTML>

 

Quero colocar os mesmos códigos que me passaram neste código também, para evitar fuxiqueiros no código. ok

Se me ajudarem onde colocar os códigos, agradeço.!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos !!!

 

Usei conforme o TIAGO LARA mencionou para por nas paginações:

if variavel > total then
erro
end if

ficando assim no meu codigo postado anteriormente:

<%
  ELSE
	 PaginaAtual = CInt(Request.QueryString("registro"))
  IF PaginaAtual = 0 THEN
	 PaginaAtual = 1
		  END IF
			RS.AbsolutePage = PaginaAtual
	  Num = RS.PageCount

'INSERI ASSIM
					IF PaginaAtual > Num THEN
					   Response.Redirect "erro.asp"
					   END IF

  WHILE NOT RS.EOF AND RS.AbsolutePage = PaginaAtual  
%>

 

Ele até funciona!, mas se eu colocar assim:

Tipo: se só tem duas paginação =1 e =2, aí coloco paginacao=20, ou paginacao=10 ele manda para a pagina de erro beleza.

 

Mas como posso fazer agora para mandar para uma pagina de erro também, se o cara mudar a URL para apenas paginacao= ou deixar em branco "" ??????

 

 

 

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, 4 da matina e querendo respostas rápidas? É melhor procurar um sistema de suporte online.

 

Faça um teste junto nesse IF se o valor é numérico ou não, isso já resolve seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu sistema de paginação eu defino que se vier pagina=

Ou seja branco eu defino que ela é = 1

sacou?

 

Mas pensa comigo! o seu maior problema que seria SQL Injection já seria resolvido neste if que o "desisto" postou lá em cima:

if not isNumeric(variavel) then
   erro
end if

O seu problema agora é o que? estética? hehehe relaxa aí! rs...

 

Observação: dados via querystring existe sql injection? haoaeaehaeauieahiueha http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado!

 

Realmente não gosto de atendimento online, gosto dos colegas mesmos....

Mas como acordei durante a noite, resolvi navegar um pouco, antes de ir trabalhar.... mas tranquilo, sem grilo.

 

E quanto a você Tiago,

 

Realmente não entendo, pois quando coloquei o código

IF PaginaAtual > Num THEN
					   Response.Redirect "erro.asp"
					   END IF

Ele só mando para a página erro, se o número da paginação for trocada e colocada um numero que não existe, e aí até a paginação funciona.

 

Mas se coloco este código

IF PaginaAtual > Num THEN
					   Response.Redirect "erro.asp"
					   END IF

if not isNumeric(variavel) then
   erro
end if

Junto os dois, ele quando carrego a pagina de paginação, ele logo vai para a página de erro.

E lembrando, minha paginação primeiro começa com

 

paginacao.asp

depois sim quando clico na paginação 2, ele muda para paginacao.asp?id=2

 

E acredito que seja por isso que não está funcionando este IsNumeric

 

 

pode me ajudar de alguma forma.

 

 

Obrigado aos 2 colegas.

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.