Ir para conteúdo

POWERED BY:

Arquivado

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

The Jhunior

Duplica Registro

Recommended Posts

Olá,

 

Fiz um sistema simples de cadastro, e quando ele cadastra, ele grava dois registros.

 

Com varios testes vi que isso só ocorre no MOZILA.

 

Alguem pode me ajudar? segue codigo

DIM n,e,r,en,c,b,es,ce,cn,s,t,em,re,se,se2

n = Request.Form("nome_empresa")
e = Request.Form("ramo_empresa")
r = Request.Form("razao_social")
en = Request.Form("endereco")
co = Request.Form("complemento")
b = Request.Form("bairro")
c = Request.Form("cidade")
es = Request.Form("estado")
ce = Request.Form("cep")
cn = Request.Form("cnpj")
s = Request.Form("site")
t = Request.Form("telefone")
em = Request.Form("email")
re = Request.Form("responsavel")
se = Request.Form("senha")
se2 = Request.Form("senha2")


if se<>se2 then

Response.Redirect("incluirempresa.asp?erro=1")

end if

Call AbreConn ()

sqlIns = "insert Into tb_empresa (empresa,ramo,razao_social,endereco,complemento,bairro,cep,cnpj,site,telefone,estado,cidade,responsavel,email,senha)" & _
"Values('"&n&"','"&e&"','"&r&"','"&en&"','"&b&"','"&co&"','"&ce&"','"&cn&"','"&s&"','"&t&"','"&es&"','"&c&"','"&re&"','"&em&"','"&se&"') "


conn.Execute(sqlIns)


Call FechaConn()


' Mostra Mensagem de Confirmação na Tela
Response.write "Parabéns, A categoria '" &Vcat& "' foi inserido com sucesso com sucesso!"

' Redireciona após 5 segundos
response.write "<br><br>você será redirecionado em 5 segundos..<br>"
response.write "<meta http-equiv='refresh' content='2; url=empresa.asp'/>"

Desde já agradeço

 

Att

 

Junior

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o Script todo ou apenas parte dele?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o k esta passando

response.write(sqlIns)
response.end()

olha este exemplo simples, onde antes você verifica se ja existe no bd e depois inclui

 

Option explicit
   'declaro as var
   dim varlogin, varemail, varsenha, conexao, conDBQ, constring, rsselect, SQLselect, rsinsert, SQLinsert
   'recupero todos os dados
   varlogin=trim(request.form("login"))
   varsenha=trim(request.form("senha"))
   varemail=trim(request.form("email"))
   'crio a conexao
   %>
   <!--#include file="conn/conexao1.asp"-->
   <% 'abrir a conexao
   call abreconexao
   'crio o rsselect para verificar se os dados jah estaun cadastrados
   set rsselect=server.createobject("ADODB.Recordset")
   'crio o SQLselect
   SQLselect="SELECT login FROM login WHERE login='"&varlogin&"'"
   rsselect.open SQLselect,conexao,1,3
   if not rsselect.eof then
   		response.redirect("incluir_form_treina.asp?msgeof=1")
		set rsselect=nothing
   else	
   		'crio o rsinsert para inseiri os dados no bd
   		 set rsinsert=server.createobject("ADODB.Recordset")
		'crio o SQLinsert pra incluir no bd
		SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"
		rsinsert.open SQLinsert,conexao,1,3
		response.redirect("administracao_treina.asp?msg=1")
		set rsinsert=nothing
	end if 
	call fechaconexao %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

creio que seu problema está no form. Você está usando um input de submit? existe alguma função javascript que faça o post ou que valide os dados? se existe javascript, possivelmente você está postando na função, ai o browser entente que são 2 posts, uma do javascript e outro do botão submit

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun eskça de fazer , antes uma verificaçao no BD através de SQL Select par ver se os dados

ja existem , caso exista você pode redirecionr para outra pagina , senaun inclui no bd atraves da Insert e redireciono para outra pagina , tipo de sucesso, lá receberá um mensagem de sucesso

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun eskça de fazer , antes uma verificaçao no BD através de SQL Select par ver se os dados

ja existem , caso exista você pode redirecionr para outra pagina , senaun inclui no bd atraves da Insert e redireciono para outra pagina , tipo de sucesso, lá receberá um mensagem de sucesso

 

Na verdade ele não duplica o registro e sim faz outro registro em branco. O interessante é que acontece no MOZILA no IE funciona normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

The Jhunior, tivemos várias perguntas de pessoas dispostas a lhe ajudar e você respondeu apenas uma.

 

Sugiro que responda todas as perguntas para darmos andamento ao tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o Script todo ou apenas parte dele?

 

Da Parte de programação é, só tem o include conexao que não interfere em nada.

 

creio que seu problema está no form. Você está usando um input de submit? existe alguma função javascript que faça o post ou que valide os dados? se existe javascript, possivelmente você está postando na função, ai o browser entente que são 2 posts, uma do javascript e outro do botão submit

 

Sim estou usando um inpuit de submit, e não tem nada em java.

 

Estou verufucando se é o banco de dados que está dando esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha um exemplo, pode te dar uma luz

 

form

<% 'aplicaçaun para efetuar a inclusao de dados
   'onde através de um form com os campos p/ inserir os valores 
   'e serem postados para o inserir_action.asp
   
 Option explicit
 'declaro as var  
  dim varmsgeof
 varmsgeof=request.querystring("msgeof") 'no caso de erro no incluir_action

	%>
	<script language="javascript">
	function novajan(){
window.open ("erro.asp","Erro","width=180,height=240,scrollbar=no,status=yes,resize=no")
}
</script>
<%	
	if varmsgeof <> "" then
	response.write("<script>novajan();</script>")
	end if
	if Session("logado")="falso" then
	response.write("<script>novajan();</script>")
	end if
	%>

<html>
<head>
<title>Incluir Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') {
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function MM_popupMsg(msg) { //v1.0
  alert(msg);
}
//-->
</script>
<style>
body {SCROLLBAR-FACE-COLOR: #336699; SCROLLBAR-HIGHLIGHT-COLOR: #8080FF; SCROLLBAR-SHADOW-COLOR: #FFFFFF; SCROLLBAR-3DLIGHT-COLOR: #ffff99; SCROLLBAR-ARROW-COLOR: #FFFFFF; SCROLLBAR-TRACK-COLOR: #E6E6E6; FONT-FAMILY: Arial, Verdana; SCROLLBAR-DARKSHADOW-COLOR: #008080 }
input {  font: normal 10px Verdana, Arial, Helvetica, sans-serif; color: #0000FF; background: #CCCCCC}
</style>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<table width="75%" border="0" height="139" cellpadding="0" cellspacing="0" align="center"> 
<tr> <td bgcolor="#666666" width="2%"> <div align="center"><b><img src="file:///A|/asp/imgs/curva.gif" width="10" height="19"></b></div></td><td bgcolor="#336699" width="98%"> 
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="3">:: 
</font><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="2">Cadastro 
de Login</font><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="3"> 
</font></b></div></td></tr> <tr bgcolor="#336699"> <td height="5" colspan="2"> </td></tr> 
<tr bgcolor="#e6e6e6"> <td height="163" colspan="2"> <form name="form1" method="post" action="incluir_action_treina.asp"> 
<table width="99%" border="0" bordercolor="#e6e6e6"> <tr> <td><b><font color="#336699" size="1" face="Verdana, Arial, Helvetica, sans-serif">Entre 
com o login: <input type="text" name="login" size="12" maxlength="12"> </font></b></td></tr> 
<tr> <td height="12" bordercolor="0"><b><font color="#336699" size="1" face="Verdana, Arial, Helvetica, sans-serif">Entre 
com sua senha: <input type="password" name="senha" size="8" value="" maxlength="8"> 
</font></b></td></tr> <tr> <td bordercolor="0"><b><font color="#336699" size="1" face="Verdana, Arial, Helvetica, sans-serif">Entre 
com o email: <input type="text" name="email" size="48" maxlength="48"> </font></b></td></tr> 
<tr> <td bordercolor="0"> <div align="center"> 
                <input type="image" border="0" name="imageField" src="imgs/enviar.gif" width="87" height="22" onClick="MM_validateForm('login','','R','email','','RisEmail','senha','','R');MM_popupMsg('Obrigado por se cadastrar.');return document.MM_returnValue" align="middle"> 
</div></td></tr> </table></form></td></tr> </table>
<p> </p>
</body>
</html>

action

<% 'incluir_action.asp => fazer a inclusao no BD, antes fazendo uma verificaçao
   'no BD através de SQL Select if not rs.eof then
   'redireciono para incluir_form.asp?msgeof=1 else
   'incluo no bd atraves da SQL Insert e redireciono para adiministraçao.asp?msg=1
   'e lá receberá um mensagem de sucesso
   
   Option explicit
   'declaro as var
   dim varlogin, varemail, varsenha, conexao, conDBQ, constring, rsselect, SQLselect, rsinsert, SQLinsert
   'recupero todos os dados
   varlogin=trim(request.form("login"))
   varsenha=trim(request.form("senha"))
   varemail=trim(request.form("email"))
   'crio a conexao
   %>
   <!--#include file="conn/conexao1.asp"-->
   <% 'abrir a conexao
   call abreconexao
   'crio o rsselect para verificar se os dados jah estaun cadastrados
   set rsselect=server.createobject("ADODB.Recordset")
   'crio o SQLselect
   SQLselect="SELECT login FROM login WHERE login='"&varlogin&"'"
   rsselect.open SQLselect,conexao,1,3
   if not rsselect.eof then
   		response.redirect("incluir_form_treina.asp?msgeof=1")
		set rsselect=nothing
   else	
   		'crio o rsinsert para inseiri os dados no bd
   		 set rsinsert=server.createobject("ADODB.Recordset")
		'crio o SQLinsert pra incluir no bd
		SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"
		rsinsert.open SQLinsert,conexao,1,3
		response.redirect("administracao_treina.asp?msg=1")
		set rsinsert=nothing
	end if 
	call fechaconexao %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste também o FORM que submete para esse script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste também o FORM que submete para esse script.

 

Aquele formulario consegui resolver, mas este outro não, vou enviar as páginas

 

 

Formulario

<table width="100%" border="0" class="fundo">
  <tr>
    <td colspan="2"><!--#include file="Travar.asp" --><!--#include file="../conexao.asp" --><!--#include file="../topo.asp" --></td>
  </tr>
  <tr>
  	<td width="16%" height="21" align="center" valign="top"><!--#include file="barra_direita.asp" --></td>
    <td width="84%" align="center" valign="top"><form action="incluircategoriafinal.asp" method="post"><table width="100%">
  <tr>
    <td width="17%" align="right" valign="middle" class="texto">Categoria: </td>
    <td width="83%" valign="top"><label>
      <input name="categoria" type="text" class="form" id="categoria" size="100">
    </label></td>
  </tr>
  <tr>
    <td valign="top" class="texto"> </td>
    <td valign="top"><label>
      <input name="Submit" type="submit" class="button" value="Enviar">
    </label></td>
  </tr>
</table>
    </form></td>
  </tr>
  <tr>
    <td height="24" colspan="2"><!--#include file="../rodape.asp" --></td>
  </tr>
</table>

 

Codigo ASP

 

<%' Chamando Funções, que fazem o Upload funcionar


DIM Vcat

Vcat = Request.Form("categoria")


Call AbreConn ()

sqlIns = "insert Into categoria (categoria)" & _
"Values('"&Vcat&"') "


conn.Execute(sqlIns)




Call FechaConn()
' Mostra Mensagem de Confirmação na Tela
Response.write "Parabéns, A categoria '" &Vcat& "' foi inserido com sucesso com sucesso!"

' Redireciona após 5 segundos
response.write "

você será redirecionado em 5 segundos..
"
response.write "<meta http-equiv='refresh' content='2; url=categorias.asp'/>"




%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o k esta sendo passado...

um exemplo simples é como mostrei acima

 

varlogin=trim(request.form("login"))
varsenha=trim(request.form("senha"))
varemail=trim(request.form("email"))

SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

O FORM está no mesmo script da gravação no BD?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aleluia consegui resolver.

 

O problema era no banco de dados.

 

Tirei a opção de "coprimento com zero" e coloquei um campo de Data com valor "Agora()"

 

Não sei o que isso tem haver com o mozila firefox, mas funcionou.

 

Obrigado Xanburzum e Salgado pela ajuda.

 

Boa Sorte a todos.

 

Att

 

Junior

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.