sobre la validacion

09/10/2005 - 19:53 por Enrique | Informe spam
hola a todos,

tengo un lio con la validacion. sé recuperar datos pero lo cierto es que no
los he validado todavia. no sé si se debe validar del lado del cliente, del
servidor o de ambos lados y en que lenguaje

creo saber, y corregirme si me confundo que ASP valida los datos del lado
del servidor, por lo que se hace un POST que abre una pagina determinada,
esta pagina recibe los valores mediante un "request.form" y si los datos son
inexistentes o incorrectos, se manda un parametro para cada valor erroneo a
la primera pagina en forma de URL codificada o parametrizada mediante un GET
que se recibira por el otro lado mediante un request.querystring y despues
se podra escribir el mensaje de error al lado del control en el que se ha
puesto el valor erroneo o todos los mensajes de error de forma masiva al
principio de la pagina.

imaginando que tengo 2 campos nombre y appellido lo haria de la siguiente
forma:

en el cliente (paginaA.asp): ***********************************

nom=request.querystring("nom")
app=request.querystring("app")

if nom = "no" then
muestra mensaje en el lugar adecuado
end if

if app="no" then
muestra mensaje en el lugar adecuado
end if
...
POST: paginaB.asp
...

en el servidor (paginaB.asp): *********************************
nombre = request.form("nombre")
appellido=request.form("appellido")

if nombre ="" then
nom="no"
else
nom="si"
end if

if appellido = "" then
app="no"
else
app="si"
end if

GET: ... "paginaA?app=" & app & "nom=" & nom

¿os parece eso correcto? ¿no esta mal pero puede mejorar? ¿a evitar
absolutamente?


por otro lado, creo saber que en ASP .NET se hace validacion tanto del lado
del cliente como del lado del servidor porque si se trata de una URL
parametrizada (codificada) el usuario puede perfectamente modificar el valor
de los parametros lo que supone la modificacion del lado del servidor.

¿es eso cierto? ¿no se puede hacer lo mismo en ASP?

¿como soleis actuar normalmente para la validacion? ¿que tipo de funciones
de validacion creais? en fin, lo que me digais me interesa
respecto a los lenguajes prefiero dejar otro POST para preguntar largo y
tendido

muchas gracias de antemano por su ayuda.

Preguntas similare

Leer las respuestas

#6 Enrique
10/10/2005 - 18:52 | Informe spam
gracias de nuevo por tu ayuda, dani. excelente respuesta la tuya. la grabo
en disco para que veas.

segun lo que entiendo y corrigeme si me confundo, casi toda la validacion
"no critica" se debe hacer del lado del cliente y se suele hacer en
Javascript y la validacion "critica" tipo nombreUsusario, pass se debe
hacer del lado servidor pero ...

solo una pregunta mas ¿porque empeñarse en funciones de validaciones del
lado del cliente en JavaScript si se pueden hacer en VBScript (lo entendera
Netscape explorer si se le instala el plugin adecuado que seguramente se le
pedira de forma automatica al usuario)?

veo que ciertos entornos de desarrollo como Frontpage, ofrecen ayudas a la
validacion que crean funciones automaticamente en Javascript. se que es algo
muy logico teniendo en cuenta que el "netscape navigator" solo entiende su
lenguaje nativo: javascript por lo que es lo que, al menos a primera vista,
debemos hacer para que cualquiera de los 2 navegadoers mas utilizados nos
entiendan correctamente. pero debemos tener en cuenta tambien que a netscape
se le puede instalar un plugin para que entiende VBScript, entonces ¿cual es
el problema? ¿tendremos toda libertad en cuanto a la eleccion de lenguaje se
refiere?¿es una simple eleccion sobre el hecho de que le aparezca al usuario
un cuadro de dialogo de peticion de plugin?

otra cosa: no se si me has respondido sobre la forma de actuar que he
descrito: si un pagina A bien validada debe llamar a la pagina B, puedo
crear una pagina A' intermedia entre A y B que define si A puede abrir B o
no. esta pagina es una pagina sin una linea de HTML, de extension ASP y que
contiene solo codigo VBscript que es el que nos va a permitir determinar si
vamos a B o volvemos a A para poner los datos correctos. dicho de otra
forma, seria una validacion del lado servidor en VBScript.

muchas gracias por tu respuesta
Respuesta Responder a este mensaje
#7 dani castillo
10/10/2005 - 19:05 | Informe spam
Mmm bueno te comento mi opinion

en general conviene que el usuario no tenga que poner nada extra para
interpretar tu pagina (quiero decir, si pepito de nuevazelanda entra en tu
pagina y no le funciona, no se complicara la vida en instalar el plugin de
vb), la unica excepcion serian los plugins ampliamente difundidos como el
flash

por otro lado , en asp con vbscript servidor tienes muchisimos ejemplos,
igual que en javascript para cliente, tienes miles de codigos y de ejemplos
en google

pero al contrario no tantos =) , por ejemplo buscas en google por
"validacion formularios javascript" y obtienes 88.800 resultados, buscando
por "validacion formularios vbscript" tienes 744 :), asi que codigo de
apoyo vas a tener mucho mas en javascript

por otro lado, a mi me gusta tener muy diferenciado "a simple vista" lo que
es codigo cliente y lo que es codigo servidor, uso distintos lenguajes para
cada cosa y asi en un vistazo a una linea se si es cliente o si es servidor
:o) , es mania jeje

si mas o menos te da igual el lenguaje mejor tender a lo mas standar porque
, por un lado simplificas la vida al usuario, y por otro te la simplificas
tu al tener miles de ejemplos si te atascas en una funcion, como te digo
codigo hecho que valida un mail, o que muestra un reloj, o valida un campo
numerico, o muestra y oculta capas o llena combos dinamicos... lo tienes ya
hecho buscando por google solo es ir adaptandolo a tus necesidades,
dificilmente te encontraras con la necesidad de hacer un javascript que
nadie mas haya hecho al menos algo similar , sobretodo porque el peso real
de programacion lo tienes soportado en asp


"Enrique" escribió en el mensaje
news:eez%
gracias de nuevo por tu ayuda, dani. excelente respuesta la tuya. la grabo
en disco para que veas.

segun lo que entiendo y corrigeme si me confundo, casi toda la validacion
"no critica" se debe hacer del lado del cliente y se suele hacer en
Javascript y la validacion "critica" tipo nombreUsusario, pass se debe
hacer del lado servidor pero ...

solo una pregunta mas ¿porque empeñarse en funciones de validaciones del
lado del cliente en JavaScript si se pueden hacer en VBScript (lo
entendera
Netscape explorer si se le instala el plugin adecuado que seguramente se
le
pedira de forma automatica al usuario)?

veo que ciertos entornos de desarrollo como Frontpage, ofrecen ayudas a la
validacion que crean funciones automaticamente en Javascript. se que es
algo
muy logico teniendo en cuenta que el "netscape navigator" solo entiende su
lenguaje nativo: javascript por lo que es lo que, al menos a primera
vista,
debemos hacer para que cualquiera de los 2 navegadoers mas utilizados nos
entiendan correctamente. pero debemos tener en cuenta tambien que a
netscape
se le puede instalar un plugin para que entiende VBScript, entonces ¿cual
es
el problema? ¿tendremos toda libertad en cuanto a la eleccion de lenguaje
se
refiere?¿es una simple eleccion sobre el hecho de que le aparezca al
usuario
un cuadro de dialogo de peticion de plugin?

otra cosa: no se si me has respondido sobre la forma de actuar que he
descrito: si un pagina A bien validada debe llamar a la pagina B, puedo
crear una pagina A' intermedia entre A y B que define si A puede abrir B o
no. esta pagina es una pagina sin una linea de HTML, de extension ASP y
que
contiene solo codigo VBscript que es el que nos va a permitir determinar
si
vamos a B o volvemos a A para poner los datos correctos. dicho de otra
forma, seria una validacion del lado servidor en VBScript.

muchas gracias por tu respuesta




Respuesta Responder a este mensaje
#8 Enrique
10/10/2005 - 19:51 | Informe spam
muchas gracias de nuevo. palabras biblicas para mi. eso de andar con 2
lenguajes: 1 para cliente y otro para servidor es lo mejor. es cierto que
asi a primera vista, podras saber de que tipo de codigo se trata. tambien es
importante entender la importancia de lo que podamos encontrar en google.

no se si me confundo pero pienso que a mayoria de la gente que programa en
ASP, si bien sabe VBScript, desconoce bastante JavaScript y como bien dices,
tira de ejemplos todo hechos en google.

ademas seamos claros, aunque sepas Javascript y ya esta hecho pues no lo
haces tu sino que solo comprobaras que funciona bien y ya esta.
Respuesta Responder a este mensaje
#9 Matías Iacono
10/10/2005 - 22:17 | Informe spam
JavaScript es un lenguaje standarizado por las W3C, y todos los navegadores
lo implementan.

VBScript, en cambio, es propio de Microsoft, por lo que no es soportado por
todos los navegadores.

Si quieres hacer mas compatible tu sitio web, debes utilizar este lenguaje,
en vez de cualquier otro.

Ahora, porque validar en el cliente, como te comento Dani en otro mensaje,
muchas veces el ida y vuelta al servidor hace que el usuario pierda mucho
tiempo y ademas, implica consumo de recursos por parte de tu servidor.

Y validar en el cliente hace que esto ocurra justamente, en el cliente.
Claro esta, que ninguna validacion en el cliente hace que debas obviar una
validacion en el servidor.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"Enrique" escribió en el mensaje
news:%23s4%
muchas gracias. eso del campo "hidden" no se me habia occurido la verdad
como alternativa a la URL codificada. Tomo nota de todo eso y lo voy a
aplicar ahora mismo.

solo una pregunta mas y aunque prefieras validar todo del lado del
servidor,
te la hago igualmente: ¿porque empeñarse en funciones de validaciones del
lado del cliente en JavaScript si se pueden hacer en VBScript (lo
entendera
Netscape explorer si se le instala el plugin adecuado que seguramente se
le
pedira de forma automatica al usuario)?

gracias de nuevo por tu ayuda :-)

"Matías Iacono" escribió en el mensaje
news:
En la primera parte, me parece que te complicas demaciado.

Personalmente, prefiero, ademas de validar solo desde el lado del


servidor,
usar la misma pagina para ello. Eso de ir de un lado a otro es realmente
complicado, y te genera pedidos al servidor innecesarios.

Lo que podrias hacer es, por ejemplo, tener un campo oculto "hidden" en
tu
formulario, que te diga la accion a realizar, en base a este campo, sabes


si
tienes que aplicar tu form, o simplemente debes mostrar la pagina.

Te planteo un ejemplo.

<%
if len(trim(request.form("accion))) <> 0 then
'Quiere decir que hay algo en el campo hidden
select case request.form("accion")
case "1"
'Valido datos, redirijo a alguna otra pagina, inserto a
la
db.
'Lo que sea
case "2"
'Podria tener mas de una accion.
end select
end if

%>

<form . action=MismaPagina.asp>

...
...
...

<input type=hidden name=accion value=1

</form>

De esta manera, la primera vez que el usuario entre a tu pagina, como el
campo Hidden es inexistente, entonces mostrara tu pagina sin hacer
ninguna
accion. Pero cuando se haga un post de tu formulario, como este contiene


el
campo hidden, y dependiendo de lo que le pongas en el, hara alguna otra
accion. La cual te puede servir para validar datos, o lo que fuera, y


luego
decidir que haras. Por ejemplo, mostrar la misma pagina, pero con algun
mensaje.

> por otro lado, creo saber que en ASP .NET se hace validacion tanto del
> lado
> del cliente como del lado del servidor porque si se trata de una URL
> parametrizada (codificada) el usuario puede perfectamente modificar el
> valor
> de los parametros lo que supone la modificacion del lado del servidor.
>
> ¿es eso cierto? ¿no se puede hacer lo mismo en ASP?

Si, si pasas algo por querystring el usuario podria modificarlo sin
problemas. Se puede hacer lo mismo en ASP, ten en cuenta que ASP y
ASP.net
son las mismas cosas, son exactamente lo mismo que PHP, o JSP, o el


lenguaje
que gustes. Todos corren en el HTTP, y todos arrojan HTML como resultado,
asi que al final todos tienen que basarse en los mismos estandares.

Lo que usa ASP.net para validar son los controles de validacion, que no


son
mas que un grupo de codigo en JavaScript, que puedes parametrizar. De
esta
manera, si usas JavaScript en ASP, tambien puedes lograr lo mismo. Claro
esta, que, en .Net, este codigo ya esta hecho, y en ASP, deberas crear


todo
el codigo JavaScript tu mismo. Entra a www.devguru.com y consulta el


indice
JavaScript.



Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3
"Enrique" escribió en el mensaje
news:
> hola a todos,
>
> tengo un lio con la validacion. sé recuperar datos pero lo cierto es
> que
> no
> los he validado todavia. no sé si se debe validar del lado del cliente,
> del
> servidor o de ambos lados y en que lenguaje
>
> creo saber, y corregirme si me confundo que ASP valida los datos del


lado
> del servidor, por lo que se hace un POST que abre una pagina


determinada,
> esta pagina recibe los valores mediante un "request.form" y si los
> datos
> son
> inexistentes o incorrectos, se manda un parametro para cada valor


erroneo
> a
> la primera pagina en forma de URL codificada o parametrizada mediante
> un
> GET
> que se recibira por el otro lado mediante un request.querystring y


despues
> se podra escribir el mensaje de error al lado del control en el que se


ha
> puesto el valor erroneo o todos los mensajes de error de forma masiva
> al
> principio de la pagina.
>
> imaginando que tengo 2 campos nombre y appellido lo haria de la


siguiente
> forma:
>
> en el cliente (paginaA.asp): ***********************************
>
> nom=request.querystring("nom")
> app=request.querystring("app")
>
> if nom = "no" then
> muestra mensaje en el lugar adecuado
> end if
>
> if app="no" then
> muestra mensaje en el lugar adecuado
> end if
> ...
> POST: paginaB.asp
> ...
>
> en el servidor (paginaB.asp): *********************************
> nombre = request.form("nombre")
> appellido=request.form("appellido")
>
> if nombre ="" then
> nom="no"
> else
> nom="si"
> end if
>
> if appellido = "" then
> app="no"
> else
> app="si"
> end if
>
> GET: ... "paginaA?app=" & app & "nom=" & nom
>
> ¿os parece eso correcto? ¿no esta mal pero puede mejorar? ¿a evitar
> absolutamente?
>
>
> por otro lado, creo saber que en ASP .NET se hace validacion tanto del
> lado
> del cliente como del lado del servidor porque si se trata de una URL
> parametrizada (codificada) el usuario puede perfectamente modificar el
> valor
> de los parametros lo que supone la modificacion del lado del servidor.
>
> ¿es eso cierto? ¿no se puede hacer lo mismo en ASP?
>
> ¿como soleis actuar normalmente para la validacion? ¿que tipo de


funciones
> de validacion creais? en fin, lo que me digais me interesa
> respecto a los lenguajes prefiero dejar otro POST para preguntar largo
> y
> tendido
>
> muchas gracias de antemano por su ayuda.
>
>
>
>
>
>








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida