Comunidad PHPeros

Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: kekoman en 09 de Marzo de 2008, 18:08:09 pm

Título: [Tutorial] Hacer un sistema de BBCODES
Publicado por: kekoman 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['bb1'] && $_POST['bb2'] && $_POST['html1'] && $_POST['html2']) {
if (!mysql_query("INSERT INTO `bbcodes` (`bb1`, `bb2`, `html1`, `html2`) VALUES ('$_POST[bb1]', '$_POST[bb2]', '$_POST[html1]', '$_POST[html2]');")) { // 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['id']) {
if (is_numeric($_GET['id'])) {
if (mysql_query("DELETE FROM `bbcodes` WHERE id='$_GET[id]'")) {
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='delete.php?id=$bb[id]'>Borrar BBCODE</a>";
}
?>

Saludos!
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: mOrK en 09 de Marzo de 2008, 21:58:11 pm
Completo e interesante.

KARMA +!
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: kekoman 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
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: Erik en 10 de Marzo de 2008, 18:39:15 pm
Bueno, el codigo de administración seria facil hackearlo mediante XSS :).
Pero buen aporte.
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: Zergio! en 10 de Marzo de 2008, 23:59:29 pm
OFFTOPIC: kekoman, eres lordoftheeyes=  ???
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: kekoman en 11 de Marzo de 2008, 09:29:40 am
OFFTOPIC: kekoman, eres lordoftheeyes=  ???
no saves utilizar los mensajes privados?
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: kekoman 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? --'
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: CarlosRdrz 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
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: MeTaLKaT 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?
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: MeTaLKaT 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>');
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: MeTaLKaT 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'<p><b><span class="head"><u>Noticias:</u></b></p>';

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

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


lo ke kiero es ke se apliken a los "echo" ke puse...
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: westwest 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'<p><b><span class="head"><u>Noticias:</u></b></p>';

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

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


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

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

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

echo "<br /><b>".bb($row['titulo'])."</b><br /><i>".bb($row['subt'])."</i><br /><br />".bb($row['contenido'])."<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...
Título: Re: [Tutorial] Hacer un sistema de BBCODES
Publicado por: MeTaLKaT en 04 de Mayo de 2008, 02:52:56 am
gracias west, hice eso pero no lo habia ordenado bien :)
Título: Re:[Tutorial] Hacer un sistema de BBCODES
Publicado por: Miguelithox 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?
Título: Re:[Tutorial] Hacer un sistema de BBCODES
Publicado por: SoyJoaquin. 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.
Título: Re:[Tutorial] Hacer un sistema de BBCODES
Publicado por: javipilo en 04 de Enero de 2011, 13:55:36 pm
Y tu y yo xD pero bueno crea un nuevo tema.

Saludos