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

problema con update

Estas en el tema de problema con update en el foro de ASP Clásico en Foros del Web. Tengo este codigo para editar. Me funciona correctamente. El problema que tengo es q si en un formulario de la pagina anterior pongo una comilla ...
  #1 (permalink)  
Antiguo 08/06/2004, 04:52
Avatar de deccweb  
Fecha de Ingreso: febrero-2003
Ubicación: Mataro
Mensajes: 365
Antigüedad: 21 años, 3 meses
Puntos: 0
problema con update

Tengo este codigo para editar. Me funciona correctamente. El problema que tengo es q si en un formulario de la pagina anterior pongo una comilla simple ' no me funciona

Código HTML:
<%
nom = Trim(Request.Form("nom"))
nif = Trim(Request.Form("nif"))
id = Trim(Request.Form("id"))
cognom1 = Trim(Request.Form("cognom1"))
cognom2 = Trim(Request.Form("cognom2"))
curs1 = Trim(Request.Form("curs1"))
curs2 = Trim(Request.Form("curs2"))
curs3 = Trim(Request.Form("curs3"))
curs4 = Trim(Request.Form("curs4"))
curs5 = Trim(Request.Form("curs5"))


If nom = "" or cognom1 = "" or cognom2 = ""  or id = ""  or nif = ""  then
	Response.Write "<font size=1 face=verdana><BR><BR>Hay errores en el formulario o faltan datos."
	Response.Write "<font size=1 face=verdana><BR>Presionar Atras y completarlo correctamente"

Else

Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("mem.mdb")




oConn.Execute "UPDATE mem SET nom = '"&nom&"' , cognom1 = '"&cognom1&"' , cognom2 = '"&cognom2&"', curs1 = '"&curs1&"', curs2 = '"&curs2&"', curs3 = '"&curs3&"', curs4 = '"&curs4&"', curs5 = '"&curs5&"', nif = '"&nif&"' WHERE id = "&id&"" 

%>


<%
oConn.Close
Set oConn = nothing
End If
%> 
__________________
Calle17.net

edgargranados.es
  #2 (permalink)  
Antiguo 08/06/2004, 08:06
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 6 meses
Puntos: 1
¿Donde pones la comilla en el formulario? envia el código pa echarle un ojo...
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...

Última edición por yomesmo; 08/06/2004 a las 08:18
  #3 (permalink)  
Antiguo 08/06/2004, 09:01
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Valida con javascript que no ingresen apóstrofes como contenido de algún control que revisas. O con ASP podrías checar que no existierá:
For X=1 to len(msg)
Comilla=Asc(Mid(msg,X,1))
If Not Comilla=47 Then 'código ASCII de la comilla
...algo....
...

Saludos
  #4 (permalink)  
Antiguo 08/06/2004, 10:06
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
A todo dato que vayas a meter en una instrucción SQL, le deberías reemplazar la comilla simple por dos de ellas seguidas:


Código:
nom = Replace(Trim(Request.Form("nom")), "'", "''")
Sino, te hacés una función que haga todo al mismo tiempo:

Código:
Function Pepe(esto)
a_limpiar = Request(esto)
a_limpiar = Trim(a_limpiar)
a_limpiar = Replace(a_limpiar, "'", "''")
Pepe = a_limpiar
End Function

nom = Pepe("nom")
nif = Pepe("nif")
id = Pepe("id")
cognom1 = Pepe("cognom1")
'... etc
  #5 (permalink)  
Antiguo 08/06/2004, 12:00
Avatar de tuning_boy  
Fecha de Ingreso: mayo-2004
Ubicación: Madrid
Mensajes: 45
Antigüedad: 20 años
Puntos: 0
Yo cuando me he encontrado con este problema y no tengo mas remedio que permitir las comillas lo que hago antes de realizar el update es reemplazar la ' por un caracter que sepa que no se va a utilizar en ese campo, el cual si que controlo que no lo introduzcan.
__________________
Si te gusta el tuning ...
http://www.comunidad-tuning.com
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 23:03.