Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/12/2005, 21:44
Avatar de david_M_G
david_M_G
 
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Sí, es exactamente lo que te he explicado.


¿Los contenidos los escribes tú o los puede escribir cualquiera? (Supongo que todo el mundo, ya que el hacer este "editor" solo tiene sentido si es por la comodidad del visitante).

Bueno, pues hay que prevenir que la gente no pueda poner etiquetas HTML porque pueden liártela. (Por ejemplo si te ponen </BODY>, se te rompe el diseño de la web).

Entonces eso es muy fácil... sólo hay que hacer que no puedan poner "<" ni ">" en el código. Los cuales se cambian por &lt; y &gt;

Código PHP:
<?
function reemplazo($cadena){

//Evitar confusiones con el HTML
$cadena=str_replace("<","&lt;",$cadena);
$cadena=str_replace(">","&gt;",$cadena);

return 
$cadena;
}
Siguiendo ese mismo ejemplo, ya puedes poner otras cositas, como cambiar [negrita] y [/negrita] por <b> y </b> (Ésta sería la única forma de poner negrita porque recuerda que hemos prohibido los símbolos > y < )


Código PHP:
<?
function reemplazo($cadena){

//Evitar confusiones con el HTML
$cadena=str_replace("<","&lt;",$cadena);
$cadena=str_replace(">","&gt;",$cadena);

//Tipos de letra
$cadena=str_replace("[negrita]","<b>",$cadena);
$cadena=str_replace("[/negrita]","</b>",$cadena);

return 
$cadena;
}
Y a partir de ahí, todo lo que tú quieras...

Como ya he dicho antes, el str_replace() se aplica en la página al mostrar los datos y NO al insertarlos en la base de datos.

Por eso, en la página donde lo quieres mostrar haces la llamada a la base de datos y simplemente lo escribes así:

Código PHP:
<? echo nl2br(reemplazo($row['fila'])); ?>

NOTA: El echo nl2br, por si no lo sabías, es para que te detecte los saltos de línea.



Espero haberte sido de ayuda. Saludossss