Foros del Web » Programando para Internet » ASP Clásico »

Por que se me duplican los datos al llenar el formulario?

Estas en el tema de Por que se me duplican los datos al llenar el formulario? en el foro de ASP Clásico en Foros del Web. Que tal: Ojala me puedan ayudar con esto. Tengo un formulario en html y funciona con javascript por que quiero que se llenen los datos ...
  #1 (permalink)  
Antiguo 04/05/2010, 16:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Por que se me duplican los datos al llenar el formulario?

Que tal:

Ojala me puedan ayudar con esto. Tengo un formulario en html y funciona con javascript por que quiero que se llenen los datos de acuerdo a varios parametros (edad, tel, etc) aqui esta el codigo html con el js:

<script type="text/javascript">
function validar(formulario) {
if (formulario.nombre.value.length < 6) {
alert("Escriba por lo menos 6 caracteres en el campo \"Nombre\".");
formulario.nombre.focus();
return (false);
}
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
var checkStr = formulario.nombre.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
}
if (!allValid) {
alert("Escriba sólo letras en el campo \"Nombre\".");
formulario.nombre.focus();
return (false);
}
var checkOK = "0123456789";
var checkStr = formulario.telefono.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
allNum += ch;
}
if (!allValid) {
alert("Escriba sólo dígitos en el campo \"Teléfono\".");
formulario.telefono.focus();
return (false);
}
var chkVal = allNum;
var prsVal = parseInt(allNum);
if (formulario.telefono.value.length < 8) {
alert("Escriba por lo menos 8 números en el campo \"Teléfono\".");
formulario.telefono.focus();
return (false);
}
if ((formulario.correo.value.indexOf ('@', 0) == -1)||(formulario.correo.value.length < 5)) {
alert("Escriba una dirección de correo válida en el campo \"Dirección de correo\".");
formulario.correo.focus();
return (false);
}
return (true);
}
</script>
</HEAD>
<form method = "POST" name = "registro" onSubmit = "return validar(this)" action = "mi.asp">
<BODY>
<pre class="style1"><span class="style4">Nombre:</span>
<TEXTAREA style="FONT-SIZE: 14px; WIDTH: 283px; FONT-STYLE:normal; FONT-FAMILY:Arial, Helvetica, sans-serif; HEIGHT: 16px" name="nombre" cols=26></TEXTAREA>
</pre>
<pre class="style1"><span class="style4">Tel&eacute;fono:</span>
<TEXTAREA style="FONT-SIZE: 14px; WIDTH: 283px; FONT-STYLE:normal; FONT-FAMILY:Arial, Helvetica, sans-serif; HEIGHT: 16px" name="telefono" cols=26></TEXTAREA>
</pre>
<pre class="style1"><span class="style4">Escribe tu correo electronico:</span>
<TEXTAREA style="FONT-SIZE: 14px; WIDTH: 283px; FONT-STYLE:normal; FONT-FAMILY:Arial, Helvetica, sans-serif; HEIGHT: 16px" name="correo" cols=26></TEXTAREA>
</pre>
<pre class="style1"><span class="style4">Preguntas y Comentarios:</span>
<TEXTAREA style="FONT-SIZE: 12px; WIDTH: 283px; FONT-STYLE:normal; FONT-FAMILY:Arial, Helvetica, sans-serif; HEIGHT: 50px" name="mensaje" cols=26></TEXTAREA>
</pre>
<table width="290" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left"><span class="style1">
<input type="submit" value="Enviar" name="Enviar" />
</span></td>
<td align="right"><span class="style1">
<input type="reset" value="Borrar" name="Borrar" />
</span></td>
</tr>
</table>
</BODY>
</HTML>
</form>


Depues al llenar el formulario se manda al asp para que este lo mande a un correo electronico:
<%

if Request.Form("Enviar")<>"" then

strMail=""
strMail=Request.form("nombre")()
strmail=strMail & "<p>"
strMail=strMail & Request.form("telefono")()
strmail=strmail & "<p>"
strMail=strMail & Request.form("correo")()
strmail=strmail & "<p>"
strmail=strmail & strmail & Request("mensaje")()

sch = "http://schemas.microsoft.com/cdo/configuration/"
Set cdoConfig = CreateObject("CDO.Configuration")

With cdoConfig.Fields
.Item(sch & "sendusing") = 2 ' cdoSendUsingPort
.Item(sch & "smtpserver") = "DIRECCION IP"
.update
End With
Set myMail=CreateObject("CDO.Message")

Set mymail.Configuration = cdoConfig
myMail.Subject="Contacto desde mi pag web"
myMail.to="[email protected]"
myMail.From = "[email protected]"
myMail.HTMLBody=strmail

myMail.Send
Response.redirect "gracias.html"
set myMail=nothing
end if
%>

El problema es que cuando se envian los datos, llegan 2 veces el nombre, telefono, y el correo pero una sola vez el comentario.
Alguien me puede decir que codigo puse mal ? Se los agredeceria
  #2 (permalink)  
Antiguo 05/05/2010, 20:12
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años, 1 mes
Puntos: 19
Respuesta: Por que se me duplican los datos al llenar el formulario?

Hola

Creo que aca esta el problema

strMail=""
strMail=Request.form("nombre")()
strmail=strMail & "<p>"
strMail=strMail & Request.form("telefono")()
strmail=strmail & "<p>"
strMail=strMail & Request.form("correo")()
strmail=strmail & "<p>"
strmail=strmail & strmail & Request("mensaje")()

Fijate que donde te marco en negrita estás juntando dos veces la variable, pone esto:

strmail=strmail & Request("mensaje")

UN CONSEJO, NUNCA GUARDES DATOS O ENVIES DATOS DE FORMULARIOS SIN ASEGURARTE QUE NO TE METAN POR SEGURIDAD JAVASCRIPT O OTRO CODIGO MALVADO

siempre cuando uses request.form o request.querystring metelo dentro de Server.HTMLEncod osea algo así:

xNombre = Server.HTMLEncode( request.form("apellido") )
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 06/05/2010, 10:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Por que se me duplican los datos al llenar el formulario?

Trulala de cordoba:

Gracias x tu aportacion!!!. Lo pruebo y te digo.

Te lo agradezco mucho. Referente al comentario que dices, el servidor es mio.

Con lo que tengo en el form puede ser motivo para que me metan cochinadas? Tengo que meter eso en el html donde esta el formulario?

Saludos
  #4 (permalink)  
Antiguo 06/05/2010, 17:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Por que se me duplican los datos al llenar el formulario?

Gracias trulala de Cordoba!!!!
Lo probe y ahi estaba el error!!
Gracias me has salvado. Referente a lo otro no entiendo del todo.
Ese codigo que me sugieres, tiene que ser aplicable a la fuerza en este codigo?!
Saludos

Etiquetas: llenar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:52.