Cita:
Iniciado por kaninox 1.- debes ver bbcode con php
2.- usa la funcion htmlentities(); de php y te evitas codigo html en tu web, al menos ejecutable que es lo que te interesa creo yo.
Saludos
Esta es la parte del bbcode que he encontrado pero no se muy bien donde debo colocarlo... ¿Debe ir donde se visualizan los comentarios o donde se envían? Código PHP:
<?php
function bbparse($mensaje)
{$bbcode = array();
$xhtml = array();
// Ponemos cada BBCode y su reemplazo
$bbcode[] = "[i]"; $xhtml[] = "<em>";
$bbcode[] = "[/i]"; $xhtml[] = "</em>";
$bbcode[] = "[b]"; $xhtml[] = "<strong>";
$bbcode[] = "[/b]"; $xhtml[] = "</strong>";
$bbcode[] = "[imagen]"; $xhtml[] = "<img src='";
$bbcode[] = "[/imagen]"; $xhtml[] = "' />";
return str_replace($bbcode,$xhtml,$mensaje);
}
/* Si el formulario se ha enviado imprimimosla frase introducida parseando BBCode */
if(isset($_POST['comentario'])) {
echo "Has introducido: ".bbparse($_POST['comentario']);
}
?>
Este es el código donde están mis comentarios...
* Visualizando comentario
Código PHP:
<a name="estados"></a>
<?php
require_once '../includes/PHPPaging.lib.php';
require_once '../includes/conexion.php';
$link = mysql_connect('$host', '$user', '$pass');
mysql_select_db('$db', $link);
$paging = new PHPPaging;
$paging->agregarConsulta("SELECT * FROM comentarios_personales WHERE destino='$valor' ORDER BY id DESC");
$paging->porPagina(10);
$paging->paginasAntes(4, 10, 30);
$paging->paginasDespues(4, 10, 30);
$paging->linkClase('nav');
$paging->linkSeparador(false); //Significa que no habrá separacion
$paging->linkSeparadorEspecial('...');
$paging->linkAgregar('');
$paging->linkTitulo('Página %1$s: Mostrando resultados del %2$s al %3$s (Total: %4$s)');
$paging->mostrarPrimera("|<", true);
$paging->mostrarUltima(">|", true);
$paging->mostrarAnterior(false);
$paging->mostrarSiguiente(false);
$paging->mostrarActual("<span class=\"navthis\">{n}</span>");
$paging->nombreVariable("pag");
$paging->ejecutar();
while($datos = $paging->fetchResultado()) {
echo "
".$datos['usuario']."<br>
".$datos['comentario']."
";
}
// Imprimimos la barra de navegación
echo "<div class='navigation' align='center'>".$paging->fetchNavegacion()."</div>";
?>
* Para Enviar
Código PHP:
<?php
if(isset($_POST['comentario']))
{
$usuario = $_POST['usuario'];
$destino = $_POST['destino'];
$comentario = $_POST['comentario'];
mysql_query('INSERT INTO comentarios_personales (usuario, destino, comentario, hora, fecha, ip) VALUES ("' . $usuario . '", "' . $destino . '", "' . $comentario . '");') or $error = true;
if(isset($error))
echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=">';
else
echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=">';
exit;
}
echo '
<div align="center">
<form name="formulario" action="yo.php?p=' . $valor . '" method="POST" onSubmit="return validate()">
<textarea name="comentario" rows="6" cols="90" wrap="physical" onKeyDown="contador(this.form.comentario,this.form.remLen,500);" onKeyUp="contador(this.form.comentario,this.form.remLen,500);"></textarea><br>
Tienes <input type="text" name="remLen" size="1" maxlength="3" value="500" style="border: 0px solid #FFFFFF; color: #006699; background: #FFFFFF" readonly> caracteres restantes<br><br>
<input type="text" value="' . $username . '" name="usuario" style="display:none;">
<input type="text" value="' . $valor . '" name="destino" style="display:none;">
<input type="submit" name="enviar" class="login-button" value="Enviar Comentario">
</form>
</div>
<SCRIPT language="JavaScript" type="text/javascript">
function contador (campo, cuentacampo, limite) {
if (campo.value.length > limite) campo.value = campo.value.substring(0, limite);
else cuentacampo.value = limite - campo.value.length;
}
</script>
';
?>