Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/08/2008, 20:52
Avatar de eminem24
eminem24
 
Fecha de Ingreso: julio-2008
Mensajes: 68
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación Problemas con mensajes del foro en la home

Hola amigos, hace un rato he añadido un código a mi web para mostrar los últimos mensajes del foro en la home. To do funcionaba bien hasta que he escrito un mensaje nuevo en el foro. He vuelto a la web y mostraba un error(haciendo visible parte del código html) He ido al mensaje del foro y he mirado justo en el punto donde comenzaba el error en la web y era por un emoticono que había añadido. Entonces si se escribe un emoticono en las primeras palabras del mensaje da ese error. Pero en el código parece que solo hace referencia al título del mensaje y no al cuerpo.

Como puedo solucionar esto? Este es el código:

Código PHP:
<?php

$directorio 
"/foro"//Carpeta donde esta situado el foro.
$mostrar "10"//Número de mensajes a mostrar.
$caracteres "50"//Caracteres que se mostrarán de cada línea.

$dbhost 'localhost';  //nombre de host (suele ser 'localhost')
$dbname 'mi base';  //nombre de la base de datos
$dbuser 'mi nick';  //usuario de la base de datos
$dbpasswd 'mi password';  //contraseña ...
$table_prefix 'phpbb_';  // prefijo de la tabla

$conexion mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conexion);
$consulta "select * from ".$table_prefix."posts order by post_time desc";
$resultado mysql_query($consulta);
$i 0;
    echo 
"<table width=100% bgcolor=#FFFFFF><tr><td colspan=2></td></tr>";
while (
$rows mysql_fetch_array($resultado)) {
if (
$i <= $mostrar) {
$consulta1 "select * from ".$table_prefix."forums where forum_id='$rows[forum_id]'";
$resultado1 mysql_query($consulta1);
$datosf mysql_fetch_array($resultado1);
$consulta2 "select * from ".$table_prefix."users where user_id='$rows[poster_id]'";
$resultado2 mysql_query($consulta2);
$datosu mysql_fetch_array($resultado2);
$consulta3 "select * from ".$table_prefix."topics where topic_id='$rows[topic_id]'";
$resultado3 mysql_query($consulta3);
$datost mysql_fetch_array($resultado3);
if (
strlen($datost[topic_title]) > $caracteres) {
$datost[topic_title] = substr($datost[topic_title],0,20)."...";
}

   
$consulta6 "select * from ".$table_prefix."posts where post_id='$rows[post_id]'";
   
$resultado6 mysql_query($consulta6);
   
$datosy mysql_fetch_array($resultado6);

   {
   
$datosy[post_text] = preg_replace("(\[.+?\])is",'',$datosy[post_text]);
   }

   {
   
$datosy[post_text] = substr($datosy[post_text],0,150)."...";
   }
   echo 
"<tr><td><font size=0><a href=\"$directorio/viewtopic.php?t=$rows[topic_id]\" title=\"$datosy[post_text]\" class=\"enlaces-dos\">$datost[topic_title]</a></font><font face=arial color=#888888 size=0>›› en <b>$datosf[forum_name]</b> por <b>$datosu[username]</b></font></td></tr>";
$i++;
}
}
echo 
"<tr><td colspan=2 id=subnav name=subnav><a href=$directorio/index.php><font size=0><br></font></a></td></tr></table>";
mysql_free_result($resultado);
mysql_close($conexion);
?>
Haber si alguien me puede dar una solucion, gracias anticipadas!
Saludos a todos!