Autor Tema: [Tutorial] Hacer un sistema de BBCODES  (Leído 3208 veces)

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
[Tutorial] Hacer un sistema de BBCODES
« en: 09 de Marzo de 2008, 18:08:09 pm »
He pensado hacer un tuto para que la gente introduzca bbcodes en su web  O0 Aqui lo teneis:!
PARTE 1! Utilizacion
Primero, vamos a crear un codigo sql con la estructura de la tabla donde vamos guardar nuestros bbcodes  8)
Código: [Seleccionar]
CREATE TABLE `bbcodes` (
  `id` int(11) NOT NULL auto_increment,
  `bb1` varchar(250) collate latin1_general_ci NOT NULL,
  `bb2` varchar(250) collate latin1_general_ci NOT NULL,
  `html1` varchar(250) collate latin1_general_ci NOT NULL,
  `html2` varchar(250) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
Os he creado un ejemplo:
Id introduciendo este codigo tambien  ::)
Código: [Seleccionar]
INSERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES
(1, '[b]', '[/b]', '<b>', '</b>');
Ahora vomos con la function que filtrara el texto y lo pasara a html  :P

function bb ($t) {
$sql mysql_query("SELECT * FROM `bbcodes`"); //Hacemos la consulta mysql
while($bb=mysql_fetch_array($sql)) { //cremos un bucle
$t str_ireplace("$bb[bb1]""$bb[html1]"$t); // reemplazamos el bbcode por codigo html
$t str_ireplace("$bb[bb2]""$bb[html2]"$t); // reemplazamos el bbcode por codigo html
}
return 
$t//devolvemos el codigo html
}

Ahora vamos a usarlo  :P
<?
$texto 
"[b]Hello world[/b]";
$mensaje bb($texto); //ejecutamos la function
echo $mensaje//mostramos el resultado
?>

Ahora nos debolvera el texto en negrita!
Saludos!  ;)
PARTE 2! Administracion
Conexion con la base de datos:
config.php
$host "localhost";
$user "root";
$pass "pass";
$db "basededatos";
   
$conecta mysql_connect("$host""$user""$pass") or die ("Datos de Conexion Incorrectos.");
mysql_select_db("$db"$conecta) or die ("No existe la base de datos.");

Añadir un nuevo bbcode:
add.php
<?
include ("config.php");
if (
$_POST) { //comprobamos si hay alguna variable $_POST
if ($_POST[&#39;bb1&#39;] && $_POST[&#39;bb2&#39;] && $_POST[&#39;html1&#39;] && $_POST[&#39;html2&#39;]) {
if (!mysql_query("INSERT INTO `bbcodes` (`bb1`, `bb2`, `html1`, `html2`) VALUES (&#39;$_POST[bb1]&#39;, &#39;$_POST[bb2]&#39;, &#39;$_POST[html1]&#39;, &#39;$_POST[html2]&#39;);")) { // comprobamos que el codigo sql se ejecute con exito, si no:
$error .= "<p>Ha havido un problema al registrar los datos en la base de datos";
}
} else {
$error .= "<p>No has completado todos los campos";
}
if (isset(
$error)) {
echo 
$error;
} else {
echo 
"EL BBCODE fue añadido con exito";
}
}
?>
<form method="POST" action="add.php">
	
<p><input type="text" name="bb1" size="6" value="bb1">
	
<input type="text" name="bb2" size="6" value="bb2">
	
<input type="text" name="html1" size="6" value="html1">
	
<input type="text" name="html2" size="6" value="html2"></p>
	
<p><input type="submit" value="Enviar" name="send"></p>
</form>

Borrar un BBCODE:
delete.php

<?
include (
"config.php");
if (
$_GET[&#39;id&#39;]) {
if (is_numeric($_GET[&#39;id&#39;])) {
if (mysql_query("DELETE FROM `bbcodes` WHERE id=&#39;$_GET[id]&#39;")) {
echo 
"Se ha borrado con exito";
} else {
echo 
"No se ha borrado por problemas mysql";
}
}
}
$sql mysql_query("SELECT * FROM `bbcodes`"); //Hacemos la consulta mysql
while($bb=mysql_fetch_array($sql)) { //creamos un bucle
echo "<p>$bb[bb1] - <a href=&#39;delete.php?id=$bb[id]&#39;>Borrar BBCODE</a>";
}
?>

Saludos!
« Última modificación: 09 de Marzo de 2008, 22:01:38 pm por kekoman »


Este usuario ya no lo uso, mi nuevo usuario es marco811

Comunidad PHPeros

[Tutorial] Hacer un sistema de BBCODES
« en: 09 de Marzo de 2008, 18:08:09 pm »

Desconectado mOrK

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 1.503
  • Karma: 43
  • :)
    • Ver Perfil
    • Sígueme en Twitter!
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #1 en: 09 de Marzo de 2008, 21:58:11 pm »
Completo e interesante.

KARMA +!

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #2 en: 10 de Marzo de 2008, 10:06:54 am »
Muchas gracias por el karma, m0rk  :P Voy a añadir una cosa mas a mi tutorial!  8)
Saludos!  ;D


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado Erik

  • PHPero Avanzado
  • ****
  • Mensajes: 271
  • Karma: 14
  • Sexo: Masculino
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #3 en: 10 de Marzo de 2008, 18:39:15 pm »
Bueno, el codigo de administración seria facil hackearlo mediante XSS :).
Pero buen aporte.
Código: [Seleccionar]
<?php
$myset 
"PHPER@ AVANZADO";
echo 
"Yo soy".$myset;
?>

Desconectado Zergio!

  • PHPer@
  • **
  • Mensajes: 74
  • Karma: 0
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #4 en: 10 de Marzo de 2008, 23:59:29 pm »
OFFTOPIC: kekoman, eres lordoftheeyes=  ???

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #5 en: 11 de Marzo de 2008, 09:29:40 am »
OFFTOPIC: kekoman, eres lordoftheeyes=  ???
no saves utilizar los mensajes privados?


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #6 en: 14 de Marzo de 2008, 20:16:46 pm »
Bueno, el codigo de administración seria facil hackearlo mediante XSS :).
Pero buen aporte.
Me podrias decir como y donde? --'


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #7 en: 14 de Marzo de 2008, 23:59:26 pm »
Me parece que se refiere a usar SQL inyection, en lugar de XSS.
Pero vamos, a partir del lanzamiento de PHP 5, esta la cosa muy chunga...

Esta muy bien el tuto, aunque no lo he leido a fondo ni he testeado los codes, te doy un karma+.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado MeTaLKaT

  • PHPerit@
  • *
  • Mensajes: 15
  • Karma: 2
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #8 en: 02 de Mayo de 2008, 23:19:27 pm »
buena idea poner str_ireplace pa usarlo como "bbcode" pero no se me ocurre como poner para ke cuando aprete enter ( un espacio hacia abajo, una linea mas ) kede automaticamente como <br />

a alguien se le ocurre?

Desconectado MeTaLKaT

  • PHPerit@
  • *
  • Mensajes: 15
  • Karma: 2
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #9 en: 03 de Mayo de 2008, 00:13:52 am »
no me deja editar el otro post asi ke pongo otro xD

bueno keria poner unos bbcodes
Código: [Seleccionar]
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[b]', '[/b]', '<b>', '</b>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[u]', '[/u]', '<u>', '</u>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[i]', '[/i]', '<i>', '</i>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[url]', '[/url]', '<a href="', '"></a>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[img]', '[/img]', '<img href="', '" />');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[center]', '[/center]', '<center>', '</center>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[right]', '[/right]', '<div align="right">', '</div>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[left]', '[/left]', '<div align="left">', '</left>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[size="1"]', '[/size]', '<h6>', '</h6>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[size="2"]', '[/size]', '<h5>', '</h5>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[size="3"]', '[/size]', '<h4>', '</h4>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[size="4"]', '[/size]', '<h3>', '</h3>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[size="5"]', '[/size]', '<h2>', '</h2>');
INTERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES('', '[size="6"]', '[/size]', '<h1>', '</h1>');

Desconectado MeTaLKaT

  • PHPerit@
  • *
  • Mensajes: 15
  • Karma: 2
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #10 en: 03 de Mayo de 2008, 00:52:42 am »
como puedo aplicar esto a mis noticias? estube viendo muchas formas ke cranie yo xD pero no me sale -.-


<?php
include("config.php");
echo&
#39;<p><b><span class="head"><u>Noticias:</u></b></p>&#39;;

$sql mysql_query("SELECT * FROM `noticias` WHERE seccion = &#39;noticias&#39; ORDER BY `id` DESC LIMIT 4");
while(
$row mysql_fetch_array($sql)) {

echo 
"<br /><b>".$row[&#39;titulo&#39;]."</b><br /><i>".$row[&#39;subt&#39;]."</i><br /><br />".$row[&#39;contenido&#39;]."<br /><hr />";
}
?>


lo ke kiero es ke se apliken a los "echo" ke puse...

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #11 en: 04 de Mayo de 2008, 00:15:31 am »
como puedo aplicar esto a mis noticias? estube viendo muchas formas ke cranie yo xD pero no me sale -.-


<?php
include("config.php");
echo&
#39;<p><b><span class="head"><u>Noticias:</u></b></p>&#39;;

$sql mysql_query("SELECT * FROM `noticias` WHERE seccion = &#39;noticias&#39; ORDER BY `id` DESC LIMIT 4");
while(
$row mysql_fetch_array($sql)) {

echo 
"<br /><b>".$row[&#39;titulo&#39;]."</b><br /><i>".$row[&#39;subt&#39;]."</i><br /><br />".$row[&#39;contenido&#39;]."<br /><hr />";
}
?>


lo ke kiero es ke se apliken a los "echo" ke puse...

<?php
include("config.php");
echo&
#39;<p><b><span class="head"><u>Noticias:</u></b></p>&#39;;

$sql mysql_query("SELECT * FROM `noticias` WHERE seccion = &#39;noticias&#39; ORDER BY `id` DESC LIMIT 4");
while(
$row mysql_fetch_array($sql)) {

echo 
"<br /><b>".bb($row[&#39;titulo&#39;])."</b><br /><i>".bb($row[&#39;subt&#39;])."</i><br /><br />".bb($row[&#39;contenido&#39;])."<br /><hr />";
}
?>


Simplemente aplicamos la funcion a la variable k muestra el contenido
claro k primero deberias incluir un archivo donde esta el codigo de la funcion...

Desconectado MeTaLKaT

  • PHPerit@
  • *
  • Mensajes: 15
  • Karma: 2
    • Ver Perfil
Re: [Tutorial] Hacer un sistema de BBCODES
« Respuesta #12 en: 04 de Mayo de 2008, 02:52:56 am »
gracias west, hice eso pero no lo habia ordenado bien :)

Desconectado Miguelithox

  • PHPerit@
  • *
  • Mensajes: 28
  • Karma: 1
    • Ver Perfil
Re:[Tutorial] Hacer un sistema de BBCODES
« Respuesta #13 en: 04 de Enero de 2011, 05:51:26 am »
y si quiero colocarle parámetros?
ya sea: [youtube]ID DEL VIDEO[/youtube]

Como sería el código?

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Tutorial] Hacer un sistema de BBCODES
« Respuesta #14 en: 04 de Enero de 2011, 06:42:15 am »
y si quiero colocarle parámetros?
ya sea: [youtube]ID DEL VIDEO[/youtube]

Como sería el código?

Antes de publicar un mensaje primero ve la fecha del ultimo.
Gracias por revivir un tema de 3 años de inactividad.
Twitter: @JoakoM010