Ir para conteúdo

POWERED BY:

Arquivado

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

Wallcrawler

Asp & MySQL

Recommended Posts

Olá!

 

Galera, tô com um problema em um projeto na área de login. Quando executo corretamente a consulta vindo de dados do formulário, a programação me indica que o banco não encontrou nenhum resultado. Dei um response.write na consulta que ele está fazendo e testei no Query Browser, e no phpMyAdmin. Pra minha surpresa, ele traz sim o resultado do usuário.

 

Analisei se havia algum erro na programação (o que achei muito estranho pois uso o mesmo modelo em outros projetos e estão ok), e percebi que ele sempre está entrando no "if" em que checo se o recordset é EOF.

 

Vou postar aqui o código:

(pagina do formulario):

<form action="login2.asp" method="post" target="_self" id="frm" onSubmit="MM_validateForm('login','','R','senha','','R','franquia','','R');return document.MM_returnValue" >

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
			  <tr>
				<td width="20%" bgcolor="#FFFFFF"><div align="right" class="style4">Login: </div></td>
				<td bgcolor="#FFFFFF"><div align="left">
				  <input name="login" type="text" class="form" id="Login" size="15" maxlength="15" />
				</div></td>
			  </tr>
			  <tr>
				<td width="20%" bgcolor="#FFFFFF"><div align="right" class="style4">Senha: </div></td>
				<td bgcolor="#FFFFFF"><div align="left">
				  <input name="senha" type="password" class="form" id="Senha" size="10" maxlength="10" />
				</div></td>
			  </tr>
			  <tr>
				<td width="20%" bgcolor="#FFFFFF"><div align="right" class="style4">Empresa: </div></td>
				<td bgcolor="#FFFFFF"><div align="left"> <span class="txt_normal">
				  <select name="empresa" class="form" id="Empresa" style="width:100%;">
					<option selected="selected">--- SELECIONE ---</option>
					<%
	   rs.open("select cnpj_cpf, nome_fantasia from gedempresas where status='1'"), conn
	   
	   while not rs.Eof
	   %>
					<option value="<%=rs("cnpj_cpf")%>"><%=rs("nome_fantasia")%></option>
					<%
		 rs.MoveNext
		wend 
		rs.close
		Set rs = Nothing
		%>
				  </select>
				</span> </div></td>
			  </tr>
			  <tr>
				<td bgcolor="#FFFFFF"> </td>
				<td bgcolor="#FFFFFF"> </td>
			  </tr>
			  <tr>
				<td colspan="2" bgcolor="#FFFFFF"><input name="Submit" type="submit" value="Acessar" />
				  <input name="Submit2" type="reset" value="Limpar Campos" /></td>
				</tr>
			</table>
</form>
(página que checa o login)

<!--#include file="include/db_open.asp"-->
<%

usuario = LimpaLixo(ExpurgaApostrofe(Request.Form("login")))
senha = LimpaLixo(ExpurgaApostrofe(Request.Form("senha")))

strSQL = "select * from gedclientes where usuario='" & usuario & "' and senha = '" & senha &"' and cnpj_cpf = '" & Request.Form("empresa") & "' and status = '1';"

Set rs = conn.execute(strSQL)

  if rs.EOF then
   Response.Write(strSQL)
   Response.Write("<script>alert('Usuário não encontrado!'); history.back();</script>")
   Response.End()
  Else
   session("usuario_registra") = rs("usuario")
   session("senha_registra") = rs("senha")
   session("admin") = rs("Admin")
   session("franquia") = rs("cnpj_cpf")
   session("cnpj_cpf") = rs("cnpj_cpf_cliente")
   call Val_Audit_Registra(session("usuario_registra"),"LOGIN NO RITMO","GRUPO:" & session("franquia"),"",session("franquia"))
   
  Response.Redirect("indexPrincipal.asp")
  End if
  
rs.close
Set rs = nothing
%>
<!--#include file="include/db_close.asp"-->

Quando exibo a consulta, aparece:

select * from gedclientes where usuario='teste' and senha = 'teste123' and cnpj_cpf = '123456789' and status = '1';

Consulta essa, como disse anteriormente, traz resultados quando realizada no Query Browser e no phpMyAdmin. O que eu estaria fazendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente esse SELECT retorna dados no QueryBrowser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retorna sim! É isso que está me deixando pertubado!!

 

Também desconfiei do collation do banco, mas chequei tabela-a-tabela, e todas estão "latin1_general_ci", collation que utilizo normalmente.

Tentei o like, tirar a limpeza de sql injection, mas nada feito. Talvez realmente seja algum problema em minha programação, mas não consigo enxergar o que seria.

 

E outro detalhe, coloquei um "select * from gedclientes", pra ver se ele pega qualquer coisa, e mesmo assim não há retorno de resultado. Pode uma coisa dessa?

 

Obs.: A conexão se estabelece normalmente com o banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz um SELECT geral e lista sem usar o IF, quando funcionar colocamos o IF.

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.