Ir para conteúdo

POWERED BY:

Arquivado

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

Dr. admin

[Resolvido] Erro! Update em login de usuário

Recommended Posts

Bom galera eu tenho um site, e nesse site tenho um sistema administrativo para atualizar algumas partes dinamicas do site, dentre elas noticias, artigos, agenda e etc.

Mas o problema é com a parte que administra os usuários do sistema, pois o sistema tem niveis de acesso, então coloquei esse sistema para mudar periódimente as senhas dos usuários.

A parte que administra os usuários está tudo certo quando eu adciono um usuário e quando eu excluo, mas quando vou atualizar, por exemplo atualizar a senha da erro.

Vou colocar aqui o código da página que mostra o detalhe do usuário para ser alterado essa página é a detalhe_registro.asp e a página que é o motor do update que pegas as variaveis e manda para o banco de dados que é a página motor_update.asp

Bem deixa eu só colocar aqui em baixo alguns dados para ajudar vocês.

 

Banco de Dados = ACCESS 2003

 

Nome do Banco = login.mdb

 

Nome da Tabela = usuarios

 

Campos:

 

id = tipo autoNumérico

nome = tipo texto com 50 caracteres

email = tipo texto com 50 caracteres

login = tipo texto com 50 caracteres

senha = tipo texto com 50 caracteres

nivel = tipo texto com 10 caracteres

 

agora vou colocar as páginas.............

 

detalhe_registro.asp

 

<%@LANGUAGE="VBSCRIPT"%>
<%
Option Explicit
%>
<!--#Include file="../connect/conexao_login.asp"-->
<%
DIM conexaoDataBase, rsLogin, strLogin
call abreConexao
strLogin = ("SELECT * FROM usuarios WHERE id=" & Request.QueryString("idd"))
Set rsLogin = conexaoDataBase.Execute(strLogin)
%>
<%
If session("nivel_acesso") <> 1 Then 'se não for gerente
Response.Redirect("../erro.asp")
End If
%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Registros</title>
<link href="../css/adm.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="divgeral">
<div id="divtopo"><!--#include file="../botoes_5.asp" --></div>
<div id="divmeio_um">
<form name="formLivro" method="POST" action="motor_update.asp">
<table width="100%" border="0" cellpadding="5" cellspacing="0" class="tabelas">
<tr>
<td><div align="left">Nome:</div></td>
<td><input name="txtNome" type="text" class="textfield_1" id="txtNome" value="<% = rsLogin("nome") %>" size="30" maxlength="255" /></td>
</tr>
<tr>
<td><div align="left">E-mail:</div></td>
<td><div align="left">
<input name="txtEmail" type="text" class="textfield_1" id="txtEmail" value="<% = rsLogin("email") %>" size="30" maxlength="255" />
</div></td>
</tr>
<tr>
<td width="14%"><div align="left">Login:</div></td>
<td width="86%"><div align="left">
<input name="txtLogin" type="text" class="textfield_1" id="txtLogin" value="<% = rsLogin("login") %>" size="30" maxlength="255">
</div></td>
</tr>
<tr>
<td><div align="left">Senha:</div></td>
<td><div align="left">
<input name="txtSenha" type="text" class="textfield_1" id="txtSenha" value="<% = rsLogin("senha") %>" size="30" maxlength="255">
<strong>"números ou letras"</strong></div></td>
</tr>
<tr>
<td><div align="left">Nível:</div></td>
<td><div align="left"><select name="txtNivel" id="txtNivel">
<option value="1">Administrador</option>
<option value="2">Operador</option>
<option value="3">Usuário</option>
<option value="<% = rsLogin("nivel") %>" selected="selected">Atual</option>
</select></div></td>
</tr>
<tr>
<td><div align="left">
<input name="button" type="submit" class="boto_enviar" id="button" value="Atualizar">
<input name="idd" type="hidden" id="idd" value="<% = rsLogin("id") %>"></div></td>
<td> </td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>

 

motor_update.asp

 

<%@LANGUAGE="VBSCRIPT"%>
<%
Option Explicit
%>
<!--#Include file="../connect/conexao_login.asp"-->
<%
DIM conexaoDataBase, rsLogin, strLogin, varID, varNOME, varEMAIL, varLOGIN, varSENHA, varNIVEL
varID = Request.Form("idd")
varNOME = TRIM(Request.Form("txtNome"))
varEMAIL = TRIM(Request.Form("txtEmail"))
varLOGIN = TRIM(Request.Form("txtLogin"))
varSENHA = TRIM(Request.Form("txtSenha"))
varNIVEL = TRIM(Request.Form("txtNivel"))
Call abreConexao
strLogin = "UPDATE Usuarios SET "
strLogin = strLogin + "nome = '" + varNOME + "', "
strLogin = strLogin + "email = '" + varEMAIL + "', "
strLogin = strLogin + "login = '" + varLOGIN + "', "
strLogin = strLogin + "senha = '" + varSENHA + "', "
strLogin = strLogin + "nivel = '" + varNIVEL + "', "
strLogin = strLogin + "Where id="&varID&""
Set rsLogin = conexaoDataBase.Execute(strLogin)
%>
<%
If session("nivel_acesso") <> 2 Then 'se não for gerente
Response.Redirect("../erro.asp")
End If
%>
<html>
<head>
<title>Inserção</title>
</head>
<body>
<%
response.Redirect("registros.asp")
%>
</body>
</html>

e a página que conecta ao banco de dados

 

conexao_login.asp

 

<%
sub AbreConexao
  set conexaoDataBase = Server.CreateObject("ADODB.Connection")
  conexaoDataBase.CursorLocation=3
  const cntCaminho = "e:\www\osm\Dados\login.mdb"
  conexaoDataBase.open  "driver={Microsoft Access Driver (*.mdb)};dbq=" & cntCaminho
end sub

sub FechaConexao
  conexaoDataBase.close
  set conexaoDataBase = nothing
end sub
%>
e o erro que está dando é esse:

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe na instrução UPDATE.

/osm/adm/usuarios/motor_update.asp, line 27

 

 

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)

 

por favor postem ai me ajudem, lembrando que para inserir um novo usuário ou apagar um ja existente ta funcionando beleza, agora para fazer o update atualizar um que está dando problema...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altera este trecho desta forma:

Call abreConexao
strLogin = "UPDATE Usuarios SET "
strLogin = strLogin + "nome = '" + varNOME + "', "
strLogin = strLogin + "email = '" + varEMAIL + "', "
strLogin = strLogin + "login = '" + varLOGIN + "', "
strLogin = strLogin + "senha = '" + varSENHA + "', "
strLogin = strLogin + "nivel = '" + varNIVEL + "', "
strLogin = strLogin + "Where id="&varID&""

Response.Write strLogin 'Mostra a query no browser
Response.End

Set rsLogin = conexaoDataBase.Execute(strLogin)

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso

 

post aqui o que aparecer para ficar mais facil de identificar o erro

 

outra coisa que nao da ero mais que é desnecessario é criar rs para insert e update

Compartilhar este post


Link para o post
Compartilhar em outros sites

anderson eu alterei o código do jeito que você falou, mas ainda continua dando erro não atualiza o registro no banco de dados.

mas por outro lado agora ao invéz da mensagem de erro está aparecendo esse código aqui a baixo................

 

UPDATE Usuarios SET nome = 'tester', email = 'teste@teste.com', login = 'teste', senha = '102030', nivel = '2', Where id=2

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas era isso pra aparecer mesmo

 

ta sobrando uma virgula antes do where

 

tire ela e tire este codigo que o anderson solicitou e teste

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza!!!

Muito Obrigado Anderson e Mário, o problema foi resolvido eu tirei essa virgula que estava a mais e resolveu o problema, valeu muito obrigado!

 

agora eu vou colocar o código aqui certo, funcionando.

 

motor_update.asp

 

<%@LANGUAGE="VBSCRIPT"%>
<%
Option Explicit
%>
<!--#Include file="../connect/conexao_login.asp"-->
<%
DIM conexaoDataBase, rsLogin, strLogin, varID, varNOME, varEMAIL, varLOGIN, varSENHA, varNIVEL
varID = Request.Form("idd")
varNOME = TRIM(Request.Form("txtNome"))
varEMAIL = TRIM(Request.Form("txtEmail"))
varLOGIN = TRIM(Request.Form("txtLogin"))
varSENHA = TRIM(Request.Form("txtSenha"))
varNIVEL = TRIM(Request.Form("txtNivel"))
'Call abreConexao
'strLogin = "UPDATE Usuarios SET "
'strLogin = strLogin + "nome = '" + varNOME + "', "
'strLogin = strLogin + "email = '" + varEMAIL + "', "
'strLogin = strLogin + "login = '" + varLOGIN + "', "
'strLogin = strLogin + "senha = '" + varSENHA + "', "
'strLogin = strLogin + "nivel = '" + varNIVEL + "', "
'strLogin = strLogin + "Where id="&varID&""
'Set rsLogin = conexaoDataBase.Execute(strLogin)
Call abreConexao
strLogin = "UPDATE Usuarios SET "
strLogin = strLogin + "nome = '" + varNOME + "', "
strLogin = strLogin + "email = '" + varEMAIL + "', "
strLogin = strLogin + "login = '" + varLOGIN + "', "
strLogin = strLogin + "senha = '" + varSENHA + "', "
strLogin = strLogin + "nivel = '" + [color="#FF0000"]varNIVEL + "' "[/color]
strLogin = strLogin + "Where id="&varID&""

Set rsLogin = conexaoDataBase.Execute(strLogin)
%>
<%
'If session("nivel_acesso") <> 2 Then 'se não for gerente
'Response.Redirect("../erro.asp")
'End If
%>
<html>
<head>
<title>Inserção</title>
</head>
<body>
<%
response.Redirect("registros.asp")
%>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabens pela solução tiozinho

 

precisando poste

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.