PHP - problemas con textarea

   
Vista:

problemas con textarea

Publicado por david (1 intervención) el 12/01/2010 02:23:17
hola antes que nada muchas gracias por tomarse el tiempo de leer esto y por ayudarme.

la verdad soy nuevo en esto de programacion con php estoy haciendo una pagina web

tengo el siguiente codigo:

<html>
<head>

<link rel="stylesheet" href="estilos.css" type="text/css" media="all">

<title>Noticias</title>
</head>
<body>
<H1><p class="centrado">Noticias</H1>

<FORM ACTION="agreganot.php" METHOD="POST" onsubmit=formato_ok();>
<TABLE border="0">
<TR>
<TD><p class="centrado">Titulo:</p>
<textarea NAME="titulo" rows="2" cols="20"> titu</textarea></TD><br>
</TR>
<TR>
<TD><p class="centrado">Contenido:</p>
<textarea NAME="contenido" rows="10" cols="60">cont </textarea></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="accion" VALUE="Grabar">
</FORM>
<hr>
<?php
include("conec.php");
$link=Conectarse();
$result=mysql_query("select * from noticias where noticias.id=id",$link);
?>

<?php
while($col = mysql_fetch_array($result)) {
printf("<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD> %s</TD>

</TR>
<TR>
<TD> %s </TD>

</TR>
<hr><br>
</table>", $col["titulo"], $col["contenido"]);
}
mysql_free_result($result);
?>
</table>
</body>
</html>
el problema que tengo ahorita es que quiero cambiar el color de ese texto

intente poner una pagina de estilo css he intente ponerlo asi

<TD><p class="centrado"> %s</p></TD>

y lo mismo con el otro pero me marca el sig error

Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\Paginas\insernot.php on line 43

tambien con ese codigo o que quiero hacer es ingresar unos comentarios hice una tabla sencilla que contiene los sig. campos: id(auto incremento, campo llave),
titulo y contenido

si hace las inserciones pero el problema que tengo es que cuando estoy escribiendo en el texarea y doy un salto de linea al momento de que lo muestro me muestra todo el texto de corrido quisiera que me pudieran decir como puedo hacer para que me respete los salto de linea

tambien encontre una funcion que vi en un foro para ese mismo problema el de los saltos de linea pero no se donde ponerlo espero me puedan decir acontinuacion les pongo el codigo que encontre:

<?php

function formato_ok(&$texto,&$num){

$numero=$num;
$num="{".$numero.",}";

$ok=htmlspecialchars($texto);
$ok=nl2br($ok);
$ok=preg_replace("/([^ ]$num)/e", "wordwrap('\\1', $numero, ' ', true);", $texto);//corta las palabras en un numero de letras pasado como parámetro.
return $ok;

}

?>

quisiera hacer algo asi como el que ocupan aqui si se puede tambien que puedan agregar imagenes y cosas asi espero me puedan ayudarme les repito es mi primera pagina y de antemano les agradesco su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problemas con textarea

Publicado por Diego Romero (1450 intervenciones) el 13/01/2010 00:13:10
El primer problema es que debes escapar las comillas en el código HTML, de lo contrario PHP creerá que el printf termina ahí, cosa que no es tu intensión. O sea debería ser:

printf("<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD><p class=\"centrado\">%s</p>
<TR>
<TD> %s
</table>", $col["titulo"], $col["contenido"]);

Al margen de esto, no es necesario cerrar las celdas y las filas en una tabla y no debes poner <hr> ni <br> dentro del ámbito de una tabla (solo dentro del ámbito de una celda).

Para el segundo problema, la función que has visto, no sirve para el problema que te ocupa. Lo que dices es que cuando el visitante escribe un mensaje en un textarea y el mensaje tiene saltos de línea, luego cuando quieres imprimir en la página ese comentario, no respeta los saltos de línea (en realidad sí lo hace, si miras el código fuente verás que el texto está bien, pero según el estandar HTML los navegadores deben ignorarlos).

La solución es, al momento de imprimir el mensaje usar la función nl2br() así:

$mensaje = nl2br($mensaje);
echo $mensaje;

Esa función convierte saltos de línea en tags HTML <br /> que sí le instruye al navegador a hacer un salto de línea a la hora de mostrarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar