TEXTAREA

30/01/2004 - 03:04 por Checho | Informe spam
Hola a todos
tengo un formulario, y lo que quiero hacer es poner un limite de caracteres
en un textarea.
COMO PUEDO HACER??
ESTE ES EL CODIGO

<script>
function Validar(form){
if (formulario.titulo.value == "")
{ alert("Por favor ingrese un titulo"); formulario.titulo.focus(); return; }
if (formulario.cuerpo.value == "")
{ alert("Por favor ingrese un curso"); formulario.cuerpo.focus(); return; }
formulario.submit();
}
</script>
<form name=formulario method="post" action="$pag?accion=saveditar&id=$id">
T&iacute;tulo del Curso<br>
<input type="text" size="51" name="titulo2"
class="imputbox" maxlength="90">
90 caracteres de capacidad m&aacute;xima
<br>Texto del Curso <br>
<textarea name="textarea" cols="50" rows="5"
class="imputbox"></textarea>
<input TYPE="button" name="Envio2" value=" Publicar
" onClick="Validar(this.form)">
</form>






UN SALUDO
Alfredo Javier Qüerio
Tel: (0387) 156845212
ajquerio@saltargentina.com.()ar QUITAR ()
www.masvendido.com.ar
www.saltargentina.com.ar
www.sagta.com.ar
MSN ajquerio@hotmail.()com QUITAR ()
ICQ 53228105

SAGTA - > DISEÑO y HOSTING
www.sagta.com.ar

Preguntas similare

Leer las respuestas

#6 Miguel González
03/02/2004 - 17:03 | Informe spam
Hola Miguel Angel...

No te lo tomes a mal... (es verdad que si desconecto todo lo mejor es irse
al bar...)

Mi pregunta sólo pretendía remarcar que, en definitiva, el límite del
"textarea" no estará nunca en el cliente, sino en el servidor. Puedes
ofrecerle al cliente funcionalidades de control en javascript, activex, etc.
que le "ayuden" a rellenar el formulario, pero al final, lo que cuenta, es
la longitud de datos que procese el servidor y será allí donde habrá que
hacer el "control real" de lo que ha introducido el usuario.

Saludos!!
Miguel


"Miguel Angel Da Vila" escribió en el
mensaje news:
Entonces te quedas con lo que ofrece HTML, los textarea no se pueden
limitar. Pero aún tienes la opción de programar un ActiveX u objeto OCX
(sólo Internet Explorer) que reemplace el trextarea. También un applet de
Java puede hacer el trabajo y tiene la ventaja de que ser compatible con
otros navegadores.

Preguntarás: ¿Y si desconecto la ejecución de OCX y Java? Entonces te


quedas
sin nada.

Un saludo
Miguel Angel Da Vila



"Miguel González" escribió en el mensaje
news:
> y si tengo desactivado el JavaScript?
>
> ;-)
>
> Saludos!
> Miguel
>
>
> "Miguel Angel Da Vila" escribió en el
> mensaje news:%
>
> > Sí puedes poner límites a un textarea. Lo que se necesita es un poco


de
> > Javascript y ya anda por ahí:
> >
> > http://www.dynamicdrive.com/dynamic...tinput.htm
> >
> >
>


Respuesta Responder a este mensaje
#7 Miguel Angel Da Vila
03/02/2004 - 17:23 | Informe spam
No te ofendas, escribí en broma. En lo personal no veo nada de malo en
aprovechar la tecnología Javascript para mejorar la facilidad de uso del
cliente y ampliar su funcionalidad.

Generalmente prefiero validar en el servidor para garantizar la calidad de
la información, aunque a veces signifique cargar y explotar los recursos en
el servidor con tareas que se resuelven fácilmente en el cliente. Yo lo hago
en PHP y aprovecho las expresiones regulares que son muy potentes para esta
labor. Sobre todo permite asegurar ciertos casos como los algoritmos de
tarjeta de crédito al aplicar la fórmula Luhn.

En el caso particular de los textarea, resulta un poco incómodo para el
usuario permitirle que capture 500 caracteres, recibirlos en el servidor,
contarlos y regresarlo a la página con un mensaje de que el texto es muy
grande. Peor sería mutilar el mensaje a la hora de grabar los datos.

Por ello, considero que una solución en Javascript es razonable. Con un
aviso al usuario de que Javascript debe estar prendido. Este tipo de
situaciones por lo general se presentan en aplicaciones intranets donde es
más fácil controlar el ambiente. O en lugares donde el usuario debe
registrarse para ser miembro.

Otro aspecto que hay que cuidar especialmente con los textareas cuando se
grabará en la base de datos, es el código potencialmente peligroso. En el
caso de los campos input es de cuidar, pero el texarea provee mucho más
espacio como para que alguien inyecte javascript nocivo, sobre todo si los
resultados se presentarán en una página web. En ese caso no basta el control
en el lado del cliente, también es necesario mediante rutina en el servidor,
ya sea mediante expresiones regulares o utilizando funciones internas como
las que proporciona PHP, limpiar las etiquetas y los caracteres
potencialmente dañinos en la entrada de usuario.

Si esto es una preocupación importante para tu proyecto, no heches al saco
roto la idea de elaborar o encargar un control ActiveX o Java, inclusive
Flash, que es más fácil de programar (aunque exige Javascript para
colocarlo) que te ofrezca mejor funcionalidad que el textarea.

Un atento saludo
Miguel Angel Da Vila

"Miguel González" escribió en el mensaje
news:edNHh#
Hola Miguel Angel...

No te lo tomes a mal... (es verdad que si desconecto todo lo mejor es irse
al bar...)

Mi pregunta sólo pretendía remarcar que, en definitiva, el límite del
"textarea" no estará nunca en el cliente, sino en el servidor. Puedes
ofrecerle al cliente funcionalidades de control en javascript, activex,


etc.
que le "ayuden" a rellenar el formulario, pero al final, lo que cuenta, es
la longitud de datos que procese el servidor y será allí donde habrá que
hacer el "control real" de lo que ha introducido el usuario.

Saludos!!
Miguel


"Miguel Angel Da Vila" escribió en el
mensaje news:
> Entonces te quedas con lo que ofrece HTML, los textarea no se pueden
> limitar. Pero aún tienes la opción de programar un ActiveX u objeto OCX
> (sólo Internet Explorer) que reemplace el trextarea. También un applet


de
> Java puede hacer el trabajo y tiene la ventaja de que ser compatible con
> otros navegadores.
>
> Preguntarás: ¿Y si desconecto la ejecución de OCX y Java? Entonces te
quedas
> sin nada.
>
> Un saludo
> Miguel Angel Da Vila
>
>
>
> "Miguel González" escribió en el mensaje
> news:
> > y si tengo desactivado el JavaScript?
> >
> > ;-)
> >
> > Saludos!
> > Miguel
> >
> >
> > "Miguel Angel Da Vila" escribió en


el
> > mensaje news:%
> >
> > > Sí puedes poner límites a un textarea. Lo que se necesita es un poco
de
> > > Javascript y ya anda por ahí:
> > >
> > > http://www.dynamicdrive.com/dynamic...tinput.htm
> > >
> > >
> >
>
>

Respuesta Responder a este mensaje
#8 Miguel González
03/02/2004 - 18:08 | Informe spam
"Miguel Angel Da Vila" escribió en el
mensaje news:

Por ello, considero que una solución en Javascript es razonable...



Por supuesto: incluso altamente recomendable. Como bien dices no hay que
fiarse de usuarios "malvados". A saber qué meten dentro del textarea.

Gracias por la conversación, ha estado amena.

Saludos!!!
Miguel

:-)
Respuesta Responder a este mensaje
#9 Checho
05/02/2004 - 16:38 | Informe spam
YA ME HICIERON ASUSTAR Jjajaja
El textarea esta puesto en un libro de visitas.
y SIEMPRE hay algun molesto tratando de arruinar todo.
Mediante PHP cuales son las precauciones que tendria que tomar ante el
codigo dañino??


UN SALUDO
Alfredo Javier Qüerio
Tel: (0387) 156845212
()ar QUITAR ()
www.masvendido.com.ar
www.saltargentina.com.ar
www.sagta.com.ar
MSN ()com QUITAR ()
ICQ 53228105

SAGTA - > DISEÑO y HOSTING
www.sagta.com.ar




"Miguel González" escribió en el mensaje
news:

"Miguel Angel Da Vila" escribió en el
mensaje news:

> Por ello, considero que una solución en Javascript es razonable...

Por supuesto: incluso altamente recomendable. Como bien dices no hay que
fiarse de usuarios "malvados". A saber qué meten dentro del textarea.

Gracias por la conversación, ha estado amena.

Saludos!!!
Miguel

:-)


Respuesta Responder a este mensaje
#10 Miguel Angel Da Vila
05/02/2004 - 20:14 | Informe spam
La primera precaución cuando usas MySQL como back-end consiste evitar la
inyección de código SQL que permita al usuario mal intencionado enviar
queries para ganar derechos administrativos en la base de datos, esto es muy
peligroso y fácil de ejecutar. El primer paso consiste en hacer que el
programa se ejecute bajo un usuario con privilegios mínimos para acceder a
la base de datos. Puedes pedirle a tu ISP que te proporcione un usuario así.
En el manual de PHP en línea se explica el problema y se ofrecen soluciones
para ello.

http://www.php.net/manual/es/security.database.php

El otro aspecto es impedir que el usuario pueda escribir código en el campo
de texto o en el textarea. Para ello se pasan todos los datos enviador por
el usuario a una función que puede ser (call-back antes de escribir a la
BD). el objeto de esta función consiste en eliminar o reemplazar las
etiquetas o símbolos de script que el usuario pudiera escribir. Desde el más
simple elimiando los "<" o reemplazándolos por un carácter diferente como
[ que inutiliza el código. Si se desean cambiar ciertos caracteres para un
foro de expertos en Javascript y no se quiere arruinar el texto, entonces
resulta interesante cambiar algo así:

<script>
alert('idea brillante');
</sript>

por algo así:

[script]
alert('idea brillante');
[/sript]

Para evitar que se ejecute en una página web de resultados

function html_to_special($user_input)
{
if(preg_match_all("/&.?.?.?.?.?.?;/",$user_input,$match))
{
while(list($key,$value) = each($match[0]))
{
$temp_value = eregi_replace("<","[",$value);
$new_value = ereg_replace("/>","/]",$temp_value);
$user_input = ereg_replace($value,$new_value,$user_input);
}
}
$user_input = eregi_replace("<script>", " " , $user_input);
$user_input = eregi_replace("</script>"," ",$user_input );
return $user_input ;
}

entoces se pone

$user_message = html_to_special($user_message)

ahora sí, $user_message se graba en la base de datos.

La solución más simple es usar las funciones internas de PHP para eliminar
todo el código HTML

$string = strip_tags($string, '<a><b><i><u>');

También se debe cuidar que el contenido siembre vaya entre comillas

En el manual de PHP en línea, vienen otras técnicas probablemente más
sofisticadas, busca entre los comentarios subidos por usuarios:

function strip_tag_script($html) {
$pos1 = false;
$pos2 = false;
do {
if ($pos1 !== false && $pos2 !== false) {
$first = NULL;
$second = NULL;
if ($pos1 > 0)
$first = substr($html, 0, $pos1);
if ($pos2 < strlen($html) - 1)
$second = substr($html, $pos2);
$html = $first . $second;
}
preg_match("/<script[^>]*>/i", $html, $matches);
$str1 =& $matches[0];
preg_match("/<\/script>/i", $html, $matches);
$str2 =& $matches[0];
$pos1 = strpos($html, $str1);
$pos2 = strpos($html, $str2);
if ($pos2 !== false)
$pos2 += strlen($str2);
} while ($pos1 !== false && $pos2 !== false);
return $html;
}



"Checho" ()ar> escribió en el mensaje
news:
YA ME HICIERON ASUSTAR Jjajaja
El textarea esta puesto en un libro de visitas.
y SIEMPRE hay algun molesto tratando de arruinar todo.
Mediante PHP cuales son las precauciones que tendria que tomar ante el
codigo dañino??


UN SALUDO
Alfredo Javier Qüerio
Tel: (0387) 156845212
()ar QUITAR ()
www.masvendido.com.ar
www.saltargentina.com.ar
www.sagta.com.ar
MSN ()com QUITAR ()
ICQ 53228105

SAGTA - > DISEÑO y HOSTING
www.sagta.com.ar




"Miguel González" escribió en el mensaje
news:
>
> "Miguel Angel Da Vila" escribió en el
> mensaje news:
>
> > Por ello, considero que una solución en Javascript es razonable...
>
> Por supuesto: incluso altamente recomendable. Como bien dices no hay que
> fiarse de usuarios "malvados". A saber qué meten dentro del textarea.
>
> Gracias por la conversación, ha estado amena.
>
> Saludos!!!
> Miguel
>
> :-)
>
>


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