Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2007, 15:51
Avatar de marijos
marijos
 
Fecha de Ingreso: mayo-2004
Ubicación: Madrid
Mensajes: 241
Antigüedad: 20 años
Puntos: 0
ayuda con este foro, por favor!

Hola, tengo un foro que trabaja sin base de datos, que para el poco movimiento que tiene me va muy bien, pero le he descubierto un fallo y no se como solucionarlo: resulta que cuando la gente escribe el mensaje y le da al intro, el mensaje se corta en ese sitio y ya no se publica más. He mirado en el archivo mensajes.txt e intuyo que tiene ese error porque funciona solo con texto seguido y al aparecer el salto de linea se corta el mensaje, ¿sabeis como podria solucionar esto por favor??? os dejo aqui un buen trozo del codigo de foro.php, que es donde me imagino que tendria q estar la solucion. gracias a todos de antemano!!!


function validarTags()
{
global $nombre;
global $asunto;
global $mensaje;
$nombre = htmlspecialchars(trim($nombre));
$nombre = str_replace("&","&",$nombre);
$nombre = preg_replace("/(1512)|(15)|(12)/","",$nombre);
$nombre = stripslashes(str_replace("<","",$nombre));
$nombre = strip_tags(str_replace(">","",$nombre));
$nombre = substr(strip_tags($nombre),0,20);
$asunto = htmlspecialchars(trim($asunto));
$asunto = str_replace("&","&",$asunto);
$asunto = preg_replace("/(1512)|(15)|(12)/","",$asunto);
$asunto = stripslashes(str_replace("<","",$asunto));
$asunto = strip_tags(str_replace(">","",$asunto));
$asunto = substr(strip_tags($asunto),0,50);
$mensaje = htmlspecialchars(trim($mensaje));
$mensaje = str_replace("&","&",$mensaje);
$mensaje = preg_replace("/(1512)|(15)|(12)/","<br>",$mensaje);
$mensaje = str_replace("<","",$mensaje);
$mensaje = str_replace(">","",$mensaje);
return;
}

function reemplazarTags()
{
global $mensaje1;
$mensaje1 = str_replace('', '<b>', $mensaje1);
$mensaje1 = str_replace('', '</b>', $mensaje1);
$mensaje1 = str_replace('', '<i>', $mensaje1);
$mensaje1 = str_replace('', '</i>', $mensaje1);
$mensaje1 = str_replace('', '<u>', $mensaje1);
$mensaje1 = str_replace('', '</u>', $mensaje1);
$mensaje1 = str_replace('[c]', "<font color='#004080'>", $mensaje1);
$mensaje1 = str_replace('[/c]', '</font>', $mensaje1);
$mensaje1 = str_replace ("[tk]", "<img src='imagenes/tk.gif' width='15' height='15'>", $mensaje1);
$mensaje1 = str_replace(":)", "<img src='imagenes/sonrisa.gif' >", $mensaje1);
$mensaje1 = str_replace(":e", "<img src='imagenes/icon_mad.gif' >", $mensaje1);
$mensaje1 = str_replace(":D", "<img src='imagenes/icon_confused.gif' >", $mensaje1);
$mensaje1 = str_replace(":a", "<img src='imagenes/icon_cool.gif' >", $mensaje1);
$mensaje1 = str_replace(":8", "<img src='imagenes/icon_eek.gif' >", $mensaje1);
$mensaje1 = eregi_replace (":u", "<img src='imagenes/icon_surprised.gif' >", $mensaje1);
$mensaje1 = eregi_replace (":x", "<img src='imagenes/icon_sunrise.gif' >", $mensaje1);
$mensaje1 = eregi_replace (":k", "<img src='imagenes/icon_lol.gif' >", $mensaje1);
$mensaje1 = eregi_replace (":w", "<img src='imagenes/icon_love.gif' >", $mensaje1);
$mensaje1 = eregi_replace (":z", "<img src='imagenes/icon_wtf.gif' >", $mensaje1);
$mensaje1 = eregi_replace (":s", "<img src='imagenes/icon_razz.gif' >", $mensaje1);
$mensaje1 = eregi_replace (":j", "<img src='imagenes/icon_wink.gif' >", $mensaje1);
$mensaje1 = str_replace (":r", "<img src='imagenes/icon_music.gif' >", $mensaje1);
return;
}

function escribirMensaje($posts, $postsID)
{
global $nueva_id;
$fp = fopen ($postsID, "rb");
$id = fgets($fp, 4096);
$nueva_id = $id + 1;
fclose($fp);
$fp = fopen ($postsID, "r+b");
flock ($fp,2);
fwrite($fp, $nueva_id);
flock ($fp,3);
fclose($fp);

$fp = fopen ($posts, "ab");
flock ($fp,2);
fwrite($fp, "\r\n");
flock ($fp,3);
fclose($fp);
return;
}

function eliminarMensaje($elArchivo, $elPost)
{
$i = 0;
$archivo1 = file($elArchivo);
$fp = fopen($elArchivo, "w");
for ($i = 0; $i <= sizeof($archivo1); $i++)
{
if (strstr($archivo1[$i], $elPost))
{
$archivo1[$i] = "";
}
fwrite($fp, $archivo1[$i]);
}
fclose($fp);
return;
}

// Contar temas y mensajes

$temas=0;
$mens=0;

$fp = fopen ($posts, "rb");
while (!feof ($fp))
{
$buff = fgets($fp, 4096);
if(substr($buff, 0, 12 )=="[nuevo_post]") {
$p=explode('|||^^^|||', "$buff");
if ($p[2]==0) {
$temas++;
$mens++;
}
else {
$mens++;
}
}
}
fclose($fp);

switch($a)
{

// Postear un nuevo mensaje

case "postnuevo":


// Reemplazar tags no deseados

validarTags();

// Escribir post en el archivo

if (!$nombre or !$asunto or !$mensaje) {
$nombre = "(Ninguno)";
$asunto = "(Ninguno)";
}
$fecha=date("d-m-y");
$fp = fopen ($posts, "ab");
flock ($fp,2);
fwrite($fp, "[nuevo_post]|||^^^|||$nueva_id|||^^^|||0|||^^^|||$nombre|||^^^ |||$asunto|||^^^|||$fecha|||^^^|||$mensaje|||^^^|| |");
flock ($fp,3);
fclose($fp);

echo "Muchas gracias. Tu mensaje ha sido agregado.<br><a href='index.php?ver_formulario=$verFormulario' target='_top'><< Volver atrás</a>";
}
break;


// Reemplazar tags...

validarTags();

$fecha=date("d-m-y");
$fp = fopen ($posts, "ab");
flock ($fp,2);
fwrite($fp, "[nuevo_post]|||^^^|||$nueva_id|||^^^|||$tid|||^^^|||$nombre||| ^^^|||$asunto|||^^^|||$fecha|||^^^|||$mensaje|||^^ ^|||");
flock($fp,3);
fclose($fp);

echo "Muchas gracias. Tu respuesta ha sido agregada.<br><a href='index.php?ver_formulario=$verFormulario&a=ve r_mensaje&tid=$tid' target='_top'><< Ver mensaje</a>";
}
break;


// En caso de ver un mensaje

case "ver_mensaje":

$ahora = date("d-m-y");
$zonahoraria = date("O");

echo "<table border='0' width='700'><tr><td align='left'><tr><td>$nForo<td align='right'>";
if ($usuario != $loginNombre || $password != $loginPass)
{
echo "<a href='index.php?ver_formulario=$verFormulario&a=lo gin&tid=$tid'>Admin</a> | ";
}
elseif ($usuario == $loginNombre && $password == $loginPass)
{
$verFormulario = "no";
}
echo "<a href='index.php?ver_formulario=$verFormulario' target='_top'>Volver al Foro</a></td></tr></table>
<table border='0' width='700' cellspacing='1' cellpadding='2' bgcolor='$borde_color'><tr bgcolor='$tabla_color' border='1' bordercolor='1' style='color:#24559F'>
<td width='100'><b>Autor</b><td width='450'><b>Mensaje</b></td></tr>";

$fp = fopen ($posts, "rb");

while(!feof ($fp))
{

$buffer = fgets($fp, 4096);
if (substr($buffer, 0, 12 )=="[nuevo_post]")
{
$p=explode('|||^^^|||', "$buffer");
if ($p[1]==$tid)
{
$asunto=$p[4];
$mensaje1 = nl2br($p[6]);

if ($usuario == $loginNombre && $password == $loginPass)
{
$eliminar = "[ <a href='index.php?ver_formulario=$verFormulario&a=el iminar&usuario=$usuario&password=$password&tid=$ti d&p1=$p[1]&p2=$p[2]&p3=$p[3]&p4=$p[4]'>Eliminar</a> ]";
}

reemplazarTags();

echo "<tr bgcolor='$fila1_color' border='1' bordercolor='1'><td valign='top'>
<B>$p[3]</B><td><b>$p[4]</b><p>$mensaje1</td></tr>
<tr bgcolor='$fila1_color' border='1' bordercolor='#ffffff'><td>$eliminar</td>
<td>Fecha: $p[5]</td></tr>";
}
}
}
fclose($fp);

$fp = fopen ($posts, "rb");

$color=0;
while (!feof ($fp))
{
$buffer = fgets($fp, 4096);
if(substr($buffer, 0, 12 )=="[nuevo_post]")
{
$p=explode('|||^^^|||', "$buffer");
if ($p[2]==$tid)
{
$asunto = substr(strip_tags($p[4]),0,30);
$nombre = substr(strip_tags($p[3]),0,10);
$mensaje1 = nl2br($p[6]);

if ($usuario == $loginNombre && $password == $loginPass)
{
$eliminar = "[ <a href='index.php?ver_formulario=$verFormulario&a=el iminar&usuario=$usuario&password=$password&tid=$ti d&p1=$p[1]&p2=$p[2]&p3=$p[3]&p4=$p[4]'>Eliminar</a> ]";
}

reemplazarTags();

if ($color==0) {
echo "<tr bgcolor='$fila2_color' border='1' bordercolor='1'><td valign='top'><B>$nombre</B><td><B>Re: $asunto</B><p>$mensaje1</td>
<tr bgcolor='$fila2_color' border='1' bordercolor='#ffffff'><td>$eliminar</td><td>Fecha: $p[5]</td></tr>";
$color=1;
}
else {
echo "<tr bgcolor='$fila1_color' border='1' bordercolor='1'><td valign='top'><B>$nombre</B><td><B>Re: $asunto</B><p>n$mensaje1</td>
<tr bgcolor='$fila1_color' border='1' bordercolor='#ffffff'><td>$eliminar</td><td>Fecha: $p[5]</td></tr>";
$color=0;
}
}
}
}
fclose($fp);
echo "</table><table width='700'><tr><td></tr></td>";
echo "<tr><td align='right'><A HREF='index.php?ver_formulario=$verFormulario'>Vol ver al Foro</A></tr></td></table>";

// Mostrar todos los mensajes

default:

$limite = 5;
$ahora=date("d-m-y");
$zonahoraria=date("O");
echo "<table border='0' width='700' cellspacing='5'><tr><td>$nForo<td align='right'>$temas temas y $mens mensajes</td></tr></table>
<table border='0' width='700' cellspacing='1' cellpadding='2' bgcolor='$borde_color'>
<tr height='25' bgcolor='#CC0033' border='1' bordercolor='1' style='color: #FFFFFF'><td width='20'> </td><td width='280'>
<b>Asunto</b></td><td width='90'><b>Autor</b></td><td width='80'><b>Respuestas</b></td><td width='80'><b>Fecha</b></td></tr>";
$fp = fopen ($posts, "rb");
while (!feof ($fp))
{
$buffer = fgets($fp, 4096);
if(substr($buffer, 0, 12 )=="[nuevo_post]")
{
$p=explode('|||^^^|||', "$buffer");
if ($p[2]==0)
{
$fp1 = fopen ($posts, "rb");
$respuestas=0;
while (!feof ($fp1))
{
$buffer1 = fgets($fp1, 4096);

if(substr($buffer1, 0, 12 )=="[nuevo_post]")
{

$p1=explode('|||^^^|||', "$buffer1");
if ($p1[2]==$p[1]) {
$respuestas++;
}

}
}
fclose($fp1);

echo "<tr height='25' bgcolor='#ffffff' border='1' bordercolor='1'><td>";
if ($respuestas==0)
{
echo "<img src='imagenes/0mens.gif' width='16' height='16'>";
}
else
{
echo "<img src='imagenes/1mens.gif' width='16' height='16'>";
}
echo "<td><A HREF='index.php?ver_formulario=$verFormulario&a=ve r_mensaje&tid=$p[1]'>$p[4]</A><td>$p[3]<td align='center'>$respuestas<td>$p[5]</td></tr>";
}
}
}
fclose ($fp);
echo "</table><br>";