Foros del Web » Programando para Internet » PHP »

Problema con texto en formulario

Estas en el tema de Problema con texto en formulario en el foro de PHP en Foros del Web. Hola que tal, primeramente saludos cordiales a todos los que ayudan a los novatos como yo, se los he estado agradeciendo bastante, vengo a darles ...
  #1 (permalink)  
Antiguo 21/05/2009, 17:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Problema con texto en formulario

Hola que tal, primeramente saludos cordiales a todos los que ayudan a los novatos como yo, se los he estado agradeciendo bastante, vengo a darles lata de nuevo, resulta que hice un libro de visitas en mi pagina que aun no subo aun la estoy preparando, tengo un formulario donde los usuarios ingresan su nombre y su comentario pero el problema es que si alguien ingresa letras asi: gggggggggggggggggggggggggggggggggggggggggggggggggg gggggggggggggggg, osea todo el texto pegado y le da enviar desfigura mi pagina web, si se escribe un texto normalmente todo esta bien, entonces se me ocurre que debo validar que si se ingresa texto continuo por ejemplo 30 caracteres continuos que salga un mensaje diciendo que no se permite texto continuo, asi se me ocurre que debo hacerle, pero quisiera que me orientaran y me hecharan una mano, de antemano muchas gracias por leer mi problema.
  #2 (permalink)  
Antiguo 21/05/2009, 18:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con texto en formulario

Puedes dividir el texto en una matriz, separando por caracteres de espacio / salto de linea / retorno de carro:

$verifica = explode("\s", $texto);

Despues haces un bucle foreach para analizar la longitud de cada elemento dentro de $verifica.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 21/05/2009, 18:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 21
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problema con texto en formulario

o podrias usar html solamente por ejemplo:

<div align="justify">Texto ggggggggggggggggggggggggggggggggggg</div>

o bien en un <td>, eso :D
  #4 (permalink)  
Antiguo 22/05/2009, 00:59
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Problema con texto en formulario

pues como dice Triby:

esto te podria servir
Código PHP:
$verificar_texto=explode(" ",$texto);
$numero_caracteres_permitidos=30;
    
foreach(
$verificar_texto as $valor)
{
    if(
strlen($valor)>=$numero_caracteres_permitidos)
        
// texto no valido;
    
else
        
// texto valido;

  #5 (permalink)  
Antiguo 22/05/2009, 02:40
 
Fecha de Ingreso: noviembre-2003
Mensajes: 94
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Problema con texto en formulario

Hola koferito,

La mejor solución que puedes tomar es a la hora de mostrar la salida, por ejemplo utilizando capas (div) que eviten que la página se "desmonte". Te digo esto porque quien quiera meter texto con malas intenciones irá por delante de las protecciones que pongas... por desgracia el ladrón va por delante de la policía.

Un saludo,
Carlos
__________________
Contrata Tu Web La mejor solución para profesionales y pymes
  #6 (permalink)  
Antiguo 23/05/2009, 10:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con texto en formulario

Muchísimas gracias por sus respuestas amigos se los agradezco mucho, voy a calar con el código php que me sugirieron, aunque tengo duda si utilizar un codigo limitante, porque me imagino que seria mucho mejor que aunque el usuario ingresara texto continuo la pagina no se desconfigurara, toda la pagina la tengo dentro de una capa DIV y ya todo el cuerpo enmaquetado en tablas y celdas. Otra cosa como hago la referencia de este codigo en el formulario donde ingresan el comentario.

$verificar_texto=explode(" ",$texto);
$numero_caracteres_permitidos=30;

foreach($verificar_texto as $valor)
{
if(strlen($valor)>=$numero_caracteres_permitidos)
// texto no valido;
else
// texto valido;
}


muchas gracias por estarme ayudando amigos.
  #7 (permalink)  
Antiguo 23/05/2009, 11:01
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Problema con texto en formulario

hombre, si no quieres usar el codigo php ese, puedes poner en el div overflow:auto;

lo que creara scrollbar en el div si necesario...

si quieres usar el codigo php, tienes que ponerlo al recivir el formulario,

cuando envias el formulario con todo el texto, lo recives por post

cuando lo tienes pues puedes hacer lo siguiente:
$texto=htmlspecialchars($_POST['texto']);

y el codigo que te puse de seguido..

si el texto es valido lo envias a la Base de datos, si no pues puedes poner un mensage al hijo de su madre que a intentado poner mucho texto de seguido..

suerte
  #8 (permalink)  
Antiguo 23/05/2009, 13:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con texto en formulario

Si quieres eliminar cualquier prosibilidad de problemas usa las dos soluciones propuestas PHP + CSS.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 25/05/2009, 20:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con texto en formulario

Muchas gracias a todos, sus consejos me estan siendo de gran ayuda, aunque aun tengo problemitas, mas que nada por que estoy novato en la programacion php, pero le estado calando, tengo problemas de donde colocar el codigo que escribio el amigo fatasma ya que mi script de procesamiento de formulario y envio a la base de datos es este:

<?php
/* conexion ****************/
// conectamos al servidor MySQL
/* conexion ****************/
// conectamos al servidor MySQL
$link = mysql_connect("localhost", "root", "cabradesnuda");
if(!$link) {
die("Error al intentar conectar: ".mysql_error());
}
// seleccionamos la base de datos
$db_link = mysql_select_db("libro_visitas", $link);
if(!$db_link) {
die("Error al intentar seleccionar la base de datos". mysql_error());
}
/* fin conexion ************/
/* prosesamiento de los datos */
// verificamos si ha sido enviado el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == "Enviar"){
// verificamos que el formulario
// no venga vacio
if(!empty($_POST['usuario']) && !empty($_POST['firma'])){
// creamos las variables a usar en la consulta
// y le asignamos sus valores
$usuario = htmlentities(trim($_POST['usuario']));
$firma = htmlentities(trim($_POST['firma']));
// la consulta INSERT
$sqlInsert = mysql_query("INSERT INTO firmas (usuario, firma)
VALUES ('$usuario', '$firma')", $link)
or die(mysql_error());
}else{
echo "¡¡NO SE ENVIO TU MENSAJE, DEBES LLENAR TODOS LOS CAMPOS!!";
}
}
/* fin del proseso de datos */
/* mostrando los registros (firmas) */
$sqlQuery = mysql_query("SELECT * FROM firmas", $link)
or die(mysql_error());
$totalFirmas = mysql_num_rows($sqlQuery);
// verificamos si hay
// alguna firma registrada,
// de lo contrario enviamos un mensaje
if($totalFirmas == 0){
echo "Nadie se ha animado a firmar este libro :(";
}
// si hay firmas registradas
// las mostramos
else{
while($row = mysql_fetch_array($sqlQuery)){
echo "<p><b>$row[usuario]</b> predico:<br />". nl2br($row['firma'])."<p></p><hr />";
}
}
?>
<!– el formulario –>
<center>Dejen su comentario</center>
<form name="html" action="<?php $_SERVER['localhost/PHP_SELF']; ?>" method="post">
<TABLE BORDER=0 align="center" width="400">
<TR>
<TD>Nombre:</TD>
<TD>
<input type="text" name="usuario" class="transparente" />
</TD>
</TR>
<TR>
<TD>Comentario:</TD>
<TD >
<textarea name="firma" WRAP="soft" cols="35" rows="7" style="overflow: auto;"></textarea>
</TD>
</TR>
<TR>
<TD COLSPAN=2>
<input type="submit" name="enviar" value="Enviar">
</TD>
</TR>
</TABLE>
</form>


y el codigo que me sugirio fatasma es este:
$texto=htmlspecialchars($_POST['texto']);
$verificar_texto=explode(" ",$texto);
$numero_caracteres_permitidos=30;

foreach($verificar_texto as $valor)
{
if(strlen($valor)>=$numero_caracteres_permitidos)
// texto no valido;
else
// texto valido;
}
  #10 (permalink)  
Antiguo 25/05/2009, 20:48
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Problema con texto en formulario

Otra opción es permitir dicho texto (para campos de texto libre) y utilizar la función wordwrap solamente para cortarlo y evitar la "ruptura del diseño".

www.php.net/wordwrap

Pero si de plano se quiere impedir el ingreso de dicho texto, esta bien la sugerencia, solo que hay que tomar en cuenta que es más tiempo procesando la información.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 26/05/2009, 14:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema con texto en formulario

Orale compañero jam1138 tambien me parece buena idea la que me recomendastes de cortar el texto cada ciertas palabras o letras, pero como haria referencia el codigo wordwrap al texto que se mostrara en la pagina al enviar, osea, como acomodo el codigo para que haga esa funcion a los comentarios que envien los usuarios, espero me haya explicado y muchas gracias de antemano.
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 13:07.