Ayuda con problemas al insertar un valor en la base de datos desde mi página web

Primero que todo quiero saludarte...
Ahora te pongo el problema, estoy haciendo un sitio donde en una de las páginas muestro la descripción de cierta cosa, noticia, libro,
Y puse abajo de la descripción un Tfield para que los usuarios pongan susu comentarios, pero mi problema es el siguiente, mientras sea la primera ves la variable comentario esta vacía o undefined pero cuando ya el usuario ha hecho un comentario lo ha insertado y presiona F5 vuelve a insertar el mismo valor aunque en el Tfield no tenga nada,... ¿me pudieras ayudar? Eso espero bueno aquí va el código...
Fíjate que la variable conne, es mi connection String porque lo tengo incluido...
--------------------------------
<%@language=javascript%>
<!-- #include file='_connection/connection.asp'-->
<%
var comentario= String(Request.Form("comentario"));
if ( (comentario == "undefined") | (comentario == "" ) )
{ Response.Write ("test");
} else {
var connect = Server.CreateObject("ADODB.Connection");
connect.Open = conne;
var Sql = "INSERT INTO coment(comentario) VALUES ('"+comentario+"')";
var Rs =connect.Execute(Sql);
}%>
<HTML>
<HEAD>
<TITLE>Insertar.html</TITLE>
</HEAD>
<BODY onLoad="comentario.value="";">
<br>
<FORM METHOD="POST" ACTION="prueba_insert.asp">
<br>
<textarea name="comentario" cols="40" rows="5"></textarea>
<br>
<INPUT TYPE="SUBMIT" value="Insertar">
</FORM>
</BODY>
</HTML>

1 respuesta

Respuesta
1
Creo que lo que te pasa es que no has pensado la página con lógica. La forma correcta de hacer estas cosas es separar funcionalidad. Hay páginas que muestran cosas y páginas que hacen cosas con la base de datos.
1. Sera la página que tienes sin el script
2. Sera una página que no muestre nada. Solo el script de asp. Al final de esta página tienes un response. Redirect a la página 1.
Entonces de 1 cuando se pulsa aceptar se va a 2. 2 se ejecuta y al final lo que hace es ir a 1.
Por más que pulsen f5 en la 1 nunca se insertara nada, puesto que esta página no hace nada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas