Ir para conteúdo

POWERED BY:

Arquivado

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

razs

[Resolvido] cadastro nao da erro

Recommended Posts

Boas, fiz este cadastro e funciona tudo com excepção a parte mais importante que é a parte em que grava na bd.

Ele nao da nenhum erro, simplesmente nao grava, alguma ideia?

 

<%
set conn = CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.Oledb.4.0"
conn.Open Server.MapPath("db/12345678.mdb")
set rs=server.createobject("adodb.recordset")

if request.form("insform.x")>0 then
addusers
end if

sub addusers()

if 	request.form("Password")<>request.form("Password2") then
Response.Redirect("reguser.asp?erro=Your password fields dont match")
else

if request.form("E-mail")="" or request.form("Name")="" or request.form("LastName")="" or request.form("Username")="" or request.form("Institution")=""or request.form("Password")="" or request.form("Study")="" or request.form("Study")="Choose" or request.form("Date_Birth_day")="" or request.form("Date_Birth_day")="Day" or request.form("Date_Birth_month")="" or request.form("Date_Birth_month")="Month" or request.form("Date_Birth_year")="" or request.form("Date_Birth_year")="Year" then 	
	Response.Redirect("reguser.asp?erro=Please fill all fields mark with (*). ")
else

 instotal = "select * from users WHERE username = '" & Request.Form("Username") & "' or email = '" & Request.Form("E-mail") & "'"
  rs.open instotal,conn,2,2

	 If not rs.EOF Then 
		Response.Redirect("reguser.asp?erro=That username or e-mail is already in use")
		Else

rs.addnew
rs.fields("email")=request.form("E-mail")
   rs.fields("nome")=request.form("Name")
   rs.fields("data_reg")=date()
rs.fields("last_name")=request.form("LastName")
rs.fields("username")=request.form("Username")
rs.fields("password")=request.form("Password")	
rs.fields("center")=request.form("Institution")
rs.fields("study")=request.form("Study")
rs.fields("website")=request.form("Website")
rs.fields("data_nasc")=request.form("Date_Birth_day")&"-"&request.form("Date_Birth_month")&"-"&request.form("Date_Birth_year")
rs.fields("morada")=request.form("Address")
rs.fields("cidade")=request.form("City")
rs.fields("pais")=request.form("Country")
rs.fields("position")=request.form("Team_Position")
rs.fields("telefone")=request.form("Telephone")
rs.fields("add_by")=Session("user")


'Response.Redirect("reguser.asp?erro=User inserted successfully.")	

end if
end if
end if
  conn.close
end sub

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vi o update

 

a principio deveria ser assim

 

recordset.addnew()

recordset.campo = "valor"

recordset.update

Compartilhar este post


Link para o post
Compartilhar em outros sites

um ganho a mais de performance em sua aplicação seria ao ivés de usar o método Update do recordset seria, usar direto ua string SQL, tipo

 

option explicit

‘declaro as var

dim conexao, conDBQ, constring, rs, SQL, varcodigo, varlogin, varsenha, varemail

‘recupero as var

varcodigo=trim(request.form(“codigo”))

varlogin=trim(request.form(“login”))

varsenha=trim(request.form(“senha”))

varemail=trim(request.form(“email”))

‘ retiro qqer erro de digitaçao do user ,no caso ( aspas simples ‘)

varlogin=replace (varlogin,”‘”,”")

varsenha=replace (varsenha,”‘”,”")

varemail=replace(varemail,”‘”,”")

‘crio a conexao%>

<!–#include file=”conn/conexao1.asp”–>

<% ‘abro a conexao

call abreconexao

‘crio o rs

set rs=Server.createobject(“ADODB.Recordset”)

‘crio a SQL

SQL=”UPDATE login SET login=’”&varlogin&”‘,senha=’”&varsenha&”‘,email=’”&varemail&”‘ WHERE codigo=”&varcodigo&”"

rs.open SQL,conexao,1,3

if session(“login”) = “admin” then

response.redirect(“administracao_treina.asp?msg=2″)

else

response.redirect(“administracao1.asp?msg=2″)

end if

‘fecho o rs

set rs=nothing

‘fecho a conexao

call fechaconexao%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

que troll, so faltava o rs.update no fim :s

 

xanburzum nao percebi o teu exemplo :S fara assim tanta diferenca??

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você tem um volume de dados muito grande é melhor usar uma string SQL, você tem um ganho de performance no site

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você tem um volume de dados muito grande é melhor usar uma string SQL, você tem um ganho de performance no site

 

Nem por isso... vai ter pouca coisa, para ai uns 300 registos por ano.

 

 

aproveitando como faço na pagina para actualizar os dados de utilizador para que ele permita o utilizador manter o mesmo email mas mesmo assim verificar se o email inserido nao é repetido no resto da bd mas podendo ser repetido se o utilizador mantiver o mesmo email.

 

Não sei se me expliquei muito bem.

eu ia fazer o update da mesma maneira que o inserir novo utilizador dai estar com este dilema.

 

 

<%
set conn = CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.Oledb.4.0"
conn.Open Server.MapPath("db/12345678.mdb")
set rs=server.createobject("adodb.recordset")

if request.form("insform.x")>0 then
addusers
end if

sub addusers()

if 	request.form("Password")<>request.form("Password2") then
Response.Redirect("reguser.asp?msg=Your password fields dont match")
else

if request.form("E-mail")="" or request.form("Name")="" or request.form("LastName")="" or request.form("Institution")=""or request.form("Password")="" or request.form("Study")="" or request.form("Study")="Choose" or request.form("Date_Birth_day")="" or request.form("Date_Birth_day")="Day" or request.form("Date_Birth_month")="" or request.form("Date_Birth_month")="Month" or request.form("Date_Birth_year")="" or request.form("Date_Birth_year")="Year" then 	
	Response.Redirect("reguser.asp?msg=Please fill all fields mark with (*). ")
else


instotal = "select * from users WHERE email = '" & Request.Form("E-mail") & "'"
  rs.open instotal,conn,2,2

	 If not rs.EOF Then 
		Response.Redirect("reguser.asp?msg=That username or e-mail is already in use")
		Else

rs.update
rs.fields("email")=request.form("E-mail")
   rs.fields("nome")=request.form("Name")
   rs.fields("data_reg")=date()
rs.fields("last_name")=request.form("LastName")
rs.fields("password")=request.form("Password")	
rs.fields("center")=request.form("Institution")
rs.fields("study")=request.form("Study")
rs.fields("website")=request.form("Website")
rs.fields("data_nasc")=request.form("Date_Birth_day")&"-"&request.form("Date_Birth_month")&"-"&request.form("Date_Birth_year")
rs.fields("morada")=request.form("Address")
rs.fields("cidade")=request.form("City")
rs.fields("pais")=request.form("Country")
rs.fields("position")=request.form("Team_Position")
rs.fields("telefone")=request.form("Telephone")
rs.fields("add_by")=Session("user")
rs.update
rs.close
Response.Redirect("reguser.asp?msg=User inserted successfully.")	

end if
end if
end if
  conn.close
end sub%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

De fato é mais rápido mas se esta ação não efetuada em um numero muito grande de vezes pouca diferença fará

 

O que pode fazer é passar a daqui para frente a padronizar suas estruturas desta forma que além de tudo é mais simples de fazer

 

É apenas o tempo de se acostumar

Compartilhar este post


Link para o post
Compartilhar em outros sites

para verificar se o e-mail ja esta cadastrado faz um select

 

dim rs
set rs = conn.execute("select email from cadastro where email='"&request.form("email")&"'")
'verifica se o email ja esta cadastrado
if not rs.eof then
response.redirect("minhapagina.asp?erro=Este email ja esta cadastrado")
else
dim rsUp
set rsUp = conn.execute("update cadastro set nome='"&request.form("nome")&"',senha='"&request.form("senha")&"', where email='"&request.form("email")&"'")
end if
response.redirect("minhapagina.asp?erro=dados atualizado com sucesso.")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim mas e se ele já estiver a ser utilizado pelo utilizador e ele alterar dados mas nao alterar o email, dessa maneira ao fazer o select ele vai dizer que o email ja esta a ser utilizado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada neste link, tem bastante coisa, lógica sobre um sistema, usando update,insert, delete etc, que pode usar

Compartilhar este post


Link para o post
Compartilhar em outros sites

VOCE PODE FAZER O SEGUINTE ENTAO

dim rs
set rs = con.execute("select count(*) as a from cadastro where email='"&request.for,("email")&"'")
'se rs("a") for igual a 1 e pq existe informacao
if cint(rs("a")) = 1 then
dim rsUp
set rsUp = conn.execute("update cadastro set nome='"&request.form("nome")&"',senha='"&request.form("senha")&"', where email='"&request.form("email")&"'")
response.write("dados alterado com sucesso!")
elseif cint(rs("a")) = 0 then
'se rs("a") for igual a zero e pq nao existe entao ele faz o insert
dim rsIns
set rsIns = con.execute("insert into cadastro (nome,senha,email)values('"&request.form("nome")&"','"&request.form("senha")&"','"&request.for,("email")&"')")
end if
response.write("dados incluido com sucesso!")

Compartilhar este post


Link para o post
Compartilhar em outros sites

viva, resolvi assim

 

 If not rs.EOF And session("user")<> rs.fields("username") Then 

 

Obrigado

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.