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

Prohibir lenguaje HEX en campo de formulario.

Estas en el tema de Prohibir lenguaje HEX en campo de formulario. en el foro de ASP Clásico en Foros del Web. Buenas tardes, La cuestión sería recoger el valor de un formulario: Request.form("campo") Quitarle todos los espacios y signos de puntuación, interrogación exclamación etc... y luego ...
  #1 (permalink)  
Antiguo 10/04/2007, 07:43
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Prohibir lenguaje HEX en campo de formulario.

Buenas tardes,

La cuestión sería recoger el valor de un formulario:

Request.form("campo")

Quitarle todos los espacios y signos de puntuación, interrogación exclamación etc...

y luego cojer en paquetes de 2 y comprobar que no es un lenguaje hexadecimal de 32bits (0-9 A-F) y si lo detectarlo para prohibirlo.

la pregunta es: ¿Se puede hacer? ¿Alguien me echa una mano o me da alguna idea?

Saludos y gracias.
  #2 (permalink)  
Antiguo 10/04/2007, 08:11
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Prohibir lenguaje HEX en campo de formulario.

construye funcion para poder utilizarla em todas tus paginas.



campo = Request.form("campo")

campo = replace(campo,".","")
campo = replace(campo,",","")
campo = replace(campo,"-","")

y asi en adelante
metelo en una funcion para q
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 10/04/2007, 08:14
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Prohibir lenguaje HEX en campo de formulario.

Puedes usar expresiones regulares. O este otro sitio.

Esto te busca en las parejas leidas si son valores hexadecimales:
[0-9a-fxA-FX][0-9a-fxA-FX]

Para usarlas debes crear un objeto RegExp:

Cita:

Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = "<[^>]+>"
.IgnoreCase = True
.Global = True
End With

stripHTMLtags = RegularExpressionObject.Replace(HTMLstring, "")
Set RegularExpressionObject = nothing




Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #4 (permalink)  
Antiguo 10/04/2007, 09:51
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

Buenas tardes.

Gracias por vuestra colaboración, podríais explicarme un poco más detallado como usar y en que consisten estos códigos, es que para mi son nuevos y ando un poco perdido.

Nuevamente gracias.
  #5 (permalink)  
Antiguo 10/04/2007, 11:03
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

Estuve buscando esos códigos en la web y encontré esta página donde explica algo sobre los códigos de búsqueda en javascript ojalá les sirva.
Salu2.

Expresiones regulares
  #6 (permalink)  
Antiguo 11/04/2007, 02:16
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

Buenos días,

Yo no se por dónde echarle mano a esto, lo único que se es como quitar los espacios de una cadena:
Código:
Sub comprobar()

Dim c, x
c = Request.Form("campo")
x = limpiar(f)

End Sub

Function limpiar(texto)

Dim t
t = texto
If len(t)>0 Then
	t = Replace(t, ".","")
	t = Replace(t, ",","")
	t = Replace(t, "_","")
	t = Replace(t, "-","")
	t = Replace(t, ";","")
	t = Replace(t, ":","")
	t = Replace(t, "?","")
	t = Replace(t, "¿","")
	t = Replace(t, "!","")
	t = Replace(t, "¡","")
	t = Replace(t, " ","")
End If

limpiar = t

End Function
PD: Si en ASP ya me parece un poco complicado, en JS no se ni por dónde empezar, de todas formas gracias ;D
  #7 (permalink)  
Antiguo 11/04/2007, 03:16
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Prohibir lenguaje HEX en campo de formulario.

Esto es lo mismo que tu código pero usando expresiones regulares

Código:
Sub comprobar()

Dim c, x
c = Request.Form("campo")
x = limpiar(f,"[\.\,\_\-\;\:?¿!¡\ ]")

End Sub

Function limpiar(texto, patron)

Dim t
t = texto
If len(t)>0 Then

    Set RegularExpressionObject = New RegExp

    With RegularExpressionObject
        .Pattern = patron
        .IgnoreCase = True
        .Global = True
    End With

    t = RegularExpressionObject.Replace(t, "")
    Set RegularExpressionObject = nothing

End If

limpiar = t

End Function

Prueba ahora a cambiar el patron por este: " [0-9a-fxA-FX][0-9a-fxA-FX]" Y pasaselo a una cadena hexadecimal.

:)


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -

Última edición por tammander; 11/04/2007 a las 03:22
  #8 (permalink)  
Antiguo 12/04/2007, 04:50
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

Buenos días tammander,

Voy a probar y a estudiar un poco el código.

Más tarde te cuento.

¡¡¡MUCHAS GRACIAS!!!

Saludos ;D
  #9 (permalink)  
Antiguo 12/04/2007, 13:53
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

Buenas noches de nuevo,

Podría decirse que el código funciona a las mil maravillas, pero hay un pequeño problema, que cuando quieres escribir una frase y mandarla no te deja ya que lo interpreta como HEX cualquier número o letra de la A a la F...

¿A alguien se le ocurre como soluciono el problema?

Hago un repaso de lo que busco y lo que tengo:

En un campo de un fórmulario hay que bloquear la inserción de códigos HEX del siguiente tipo:
- Prohibir palabras de una largada superior a: xxxxxxxxxxxxxxxx (16 carácteres)
- Prohibir una frase del tipo xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx (dónde los espacios en blanco también pueden ser: ".,/-_\¡?!¿:*;")
***Si la frase es lenguaje normal los signos y los espacios se quedarán igual"
*** Las equis de antes vienen a expresar valores hexadecimales***
- Este campo debe permitir la inserción de frases coherentes largas y con números.

Gracias a todos por su esfuerzo y ayuda!
  #10 (permalink)  
Antiguo 12/04/2007, 13:57
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

Juas que idiota que soy, ya he dado con la posible solución voyu a probar y os cuento!!!

Un saludo!
  #11 (permalink)  
Antiguo 13/04/2007, 10:10
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

Sigo sin conseguirlo...

A alguien se le ocurre como hacerlo, yo havia pensado en hacer:

If x = "" Then
Response.Wirte ("Los Datos que has insertado no son válidos")
Else
Response.Wirte f
End If

Pero siempre me pinta el resultado ya queaunque haga el remplace, la cadena no queda como "" sino que tiene la misma longitud pero con espacios...

Un saludo y gracias!
  #12 (permalink)  
Antiguo 13/04/2007, 10:21
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Prohibir lenguaje HEX en campo de formulario.

¿Has probado con Trim?

If Trim(x) = "" Then
Response.Wirte ("Los Datos que has insertado no son válidos")
Else
Response.Write f
End If


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #13 (permalink)  
Antiguo 14/04/2007, 06:55
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Prohibir lenguaje HEX en campo de formulario.

tammader ahora si que si!!!

Menudo máquina, MUCHISIMAS GRACIAS!!!

Funciona a las mil maravillas, no se que hubiera echo sin la ayuda de todos vosotros, probablemente se me hubiera caído el pelo y aún seguiria sin conseguirlo jejeje

MUCHAS GRACIAS!!!!

Un saludo!
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 19:37.