Ir para conteúdo

POWERED BY:

Arquivado

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

hunger

erro em criação de senha

Recommended Posts

Fala pessoal, beleza?

 

Estou tendo um problema em uma página onde o sujeito já tem um cadastro em um banco de dados, mas como é seu primeiro acesso, deverá criar uma senha.

 

no caso, ha um formulario para ele colocar seu numero de registro, data de nascimento e criar a senha. os dois primeiros campos são apenas para verificação, justamente pra saber se ele consta no banco de dados.

 

a página de erro está retornando algumas linhas e abaixo o erro em questão:

 

 

**********************************************************

 

REGISTRO: 46337

SELECT * FROM login Where REGISTRO = 46337

SELECT funcionarios.REGISTRO, funcionarios.DIA_NASC, funcionarios.MES_NASC, funcionarios.ANO_NASC FROM funcionarios WHERE funcionarios.REGISTRO =46337 AND funcionarios.DIA_NASC ='15' AND funcionarios.MES_NASC ='11' AND funcionarios.ANO_NASC ='1960'

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/funcionarios/cria_login_func.asp, line 28

 

************************************************************

 

Abaixo vai o código da pagina com a indicação da linha 28 por meio de asteriscos:

 

ASP [/tr][tr]<%

Dia_Login = Request.Form("DIA_NASC")

Mes_Login = Request.Form("MES_NASC")

Ano_Login = Request.Form("ANO_NASC")

Registro = Request.Form("REGISTRO")

Response.Write "REGISTRO: " & Registro & "<BR>"

Senha = Request.Form("SENHA")

 

'Esta Sql verifica se o usuário ja esta cadastrado, para evitar de que um

'registro possua 2 login´s

 

SQL = "SELECT * FROM login Where REGISTRO = " & Registro

'Crie a Conexao do jeito que achar melhor

Set Conexao = Server.CreateObject("ADODB.Connection")

conexao.Open "DBQ=e:\home\dad\dados\bdfuncionarios.mdb;Driver={Microsoft Access Driver (*.mdb)};"

Response.Write SQL & "<BR>"

'Se o resultado for >= 1 você cancela o cadastro.

Set Db = Server.CreateObject("ADODB.RecordSet")

Db.Open SQL,conexao,3,3

If Db.RecordCount >= 1 Then

Response.Write "Usuário Já Registrado no Login"

db.Close

Else

'Esta SQL Verifica na Tabela de Cadastro se o Número de Registro Existe e se a data de Nascimento confere com o Registro.

SQL2 = "SELECT funcionarios.REGISTRO, funcionarios.DIA_NASC, funcionarios.MES_NASC, funcionarios.ANO_NASC FROM funcionarios WHERE funcionarios.REGISTRO =" & Registro & " AND funcionarios.DIA_NASC ='" & Dia_Login & "' AND funcionarios.MES_NASC ='" & Mes_Login & "' AND funcionarios.ANO_NASC ='" & Ano_login & "'"

Response.Write SQL2

db.Close

db.Open SQL2,Conexao,3,3 *************************************linha28***********

Response.Write "<BR>Quantidade de Registros: " & DB.RecordCount

Response.Write Senha

IF Db.RecordCount >= 1 Then

SQL3 = "INSERT INTO login (REGISTRO, SENHA) Values (" & Registro & "," & Senha & ")"

Response.Write SQL3

db.Close

db.Open SQL3, Conexao

Response.Write "<BR>Login Criado com Sucesso"

End IF

End IF

%>

 

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

</head>

 

[/tr]

 

A página com o formulário é anterior a esta, e segue o código abaixo (login_func.asp):

 

ASP [/tr][tr]<html>

 

<head>

<style type="text/css">

<!--

@import url("../webdad.css");

-->

</style>

 

<title>DAD Engenharia - Intranet | Login</title>

</head>

 

<body>

 

<table width="400" height="132" cellpadding="0" cellspacing="0">

<tr>

<td width="214"><form Name="submit" action="cria_login_func.asp" method="POST">

<p class="texto">Registro<br>

<input name="REGISTRO" type="text" id="REGISTRO">

</p>

<p class="texto">Senha<br>

<input name="SENHA" type="password" id="SENHA">

</p>

<p class="texto">Data de Nascimento<br>

<select name="DIA_NASC" size="1" class="texto">

<% For x = 1 To 31 %>

<option <% If ( x = Day(Now) ) Then response.write "selected" %> value="<%=x%>"><%=x%></option>

<% Next %>

</select>

<select name="MES_NASC" size="1" class="texto">

<% For x = 1 To 12 %>

<option <% If ( x = Month(Now) ) Then response.write "selected" %> value="<%=x%>"><%=x%></option>

<% Next %>

</select>

<select name="ANO_NASC" size="1" class="texto">

<% For x = 1960 To Year(Now) %>

<option <% If ( x = Year(Now) ) Then response.write "selected" %> value="<%=x%>"><%=x%></option>

<% Next %>

</select>

</p>

<p>

<input type="submit" value="Entrar">

</p>

</form></td>

</tr>

</table>

</body></html>

[/tr]

 

 

Estou tentando arrumar, mas se alguem tiver alguma sugestão.... agradeço desde já!!

 

Abço,

 

Marcos Hunger.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro é de tipo de dados...verifica os campo dia mes e ano se são numeros, se forem tira as aspas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala mario....entao, os campos DIA MES e ANO são numericos sim. No caso q aspas são essas q você disse pra tirar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

funcionarios.DIA_NASC ='15' AND funcionarios.MES_NASC ='11' AND funcionarios.ANO_NASC ='1960' estas que estao nos numeros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, procurei no codigo onde estava isso, e tirei as aspas simples desses campos. agora retornou o seguinte:REGISTRO: 64337SELECT * FROM login Where REGISTRO = 64337SELECT funcionarios.REGISTRO, funcionarios.DIA_NASC, funcionarios.MES_NASC, funcionarios.ANO_NASC FROM funcionarios WHERE funcionarios.REGISTRO =64337 AND funcionarios.DIA_NASC =15 AND funcionarios.MES_NASC =11 AND funcionarios.ANO_NASC =1960Quantidade de Registros: 0151215 e nao guardou nada no bd.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas isto é um select, manda escrever o conteudo do Insert, que acho que deveria ser era um update e não insert

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah ta...

 

pq assim, tem uam tabela com os dados do funcionario, e fiz uma tabela para as senhas criadas. esta nova tabela possui dois campos (registro e senha). por enquanto está vazio, e só irá preencher conforme os funcionarios forem criando suas senhas.

 

entao ali onde está:

 

ASP [/tr][tr]SQL3 = "INSERT INTO login (REGISTRO, SENHA) Values (" & Registro & "," & Senha & ")"

[/tr]

 

tiro o INSERT e coloco UPDATE ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a senha vai ficar separada???se for assim vai ser insert mesmo...se fosse na mesma seria update

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, entao.... a tabela com os dados do funcionarios nao tem senha, a senha é uma tabela separada.mas se nao for isso entao, o q será q é o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro então...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq tp, ele nao diz ter um erro, ele apenas escreve as coisas na tela, e nao registra nada no banco....depois q preencho o formulario com o nro de registro, a data de nasc, e a senha q quero criar, a proxima pagina mostra isso, por ex:REGISTRO: 64337SELECT * FROM login Where REGISTRO = 64337SELECT funcionarios.REGISTRO, funcionarios.DIA_NASC, funcionarios.MES_NASC, funcionarios.ANO_NASC FROM funcionarios WHERE funcionarios.REGISTRO =64337 AND funcionarios.DIA_NASC =15 AND funcionarios.MES_NASC =11 AND funcionarios.ANO_NASC =1960Quantidade de Registros: 0151215

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse item q aparece como "quantidade de registros" mostra justamente o q escrevi no campo senha. mas ele acrescenta um 0 no começo...... (??!!)

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você pega esta quantidade???

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha, sinceramente foi o seguinte.... esse codigo um amigo meu me passou, eu só adaptei com os nomes dos campos q tenho no meu bd e tals. e nao sei de onde vem esse "qtdade de registros"....pq se fosse apenas pra criar um form para acrescentar dados no bd, isso eu sei. mas o q eu nao sei é fazer com q, ele consulte se certos dados existem no banco (como é o caso do nro de registro e data do nasc), pra poder ae sim gravar a senha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

já olhei aparentemente ta pegando direito a quantidade... tem certeza que aquele numero é a senha

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, pq eu ja fiz algumas vezes, digitando outros numeros e vi q sempre retorna aquilo, mas sempre com um 0 na frente.agora, de qquer jeito nao está registrando nada no bd.... isso q é estranho....

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara acho que ta funcionando, já tinha algo antes??ficou um 1 antes da senha, tenta fazer o seguinte comenta todos writes pra ver o que escreve na tela do lado de quantidade...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tp, la no bd tem um registro q eu coloquei direto la....vou fazer esse lance ae do reponse.write

Compartilhar este post


Link para o post
Compartilhar em outros sites

tp, acabei de fazer pra ver o lance q você falou do 1 antes da senha, e apareceu agora como usuario ja cadastrado, do nada!REGISTRO: 46337SELECT * FROM login Where REGISTRO = 46337Usuário Já Registrado no Login ele escreveu isso ae na tela....

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.