Foros del Web » Programando para Internet » PHP »

este foro hace una cosa muy curiosa!

Estas en el tema de este foro hace una cosa muy curiosa! en el foro de PHP en Foros del Web. tengo un foro que trabaja con archivos .txt, todo va bien, lo único es que cada vez q alguien escribe en el foro y pone ...
  #1 (permalink)  
Antiguo 24/01/2007, 13:23
Avatar de marijos  
Fecha de Ingreso: mayo-2004
Ubicación: Madrid
Mensajes: 241
Antigüedad: 19 años, 11 meses
Puntos: 0
este foro hace una cosa muy curiosa!

tengo un foro que trabaja con archivos .txt, todo va bien, lo único es que cada vez q alguien escribe en el foro y pone el número "12" al publicarlo se sustituye por "br"...???

he revisado el codigo del foro.php, y no se si el error podría estar en esta sentencia $mensaje1 = nl2br($p[6]); , por lo de que pone 12 y br, ha sido extraido de este trozo de código, por si lo quieren ver, por favor diganme que podría hacer para evitar este problema... muchas gracias!!!

Código PHP:
// 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=login&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($fp4096);
 if (
substr($buffer012 )=="[nuevo_post]")
 {
 
$p=explode('|||^^^|||'"$buffer");
 if (
$p[1]==$tid)
 {
 
$asunto=$p[4];
 
$mensaje1 nl2br($p[6]); // no estaria aqui el asunto??? (por lo el 12 y el br)
 
 
if ($usuario == $loginNombre && $password == $loginPass)
 {
 
$eliminar "[ <a href='index.php?ver_formulario=$verFormulario&a=eliminar&usuario=$usuario&password=$password&tid=$tid&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($fp4096);
 if(
substr($buffer012 )=="[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=eliminar&usuario=$usuario&password=$password&tid=$tid&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'>Volver al Foro</A></tr></td></table>"
  #2 (permalink)  
Antiguo 24/01/2007, 14:01
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: este foro hace una cosa muy curiosa!! ayuda por favor

Pues ese "comportamiento" no debiera pasar... ¿Estas haciendo algun str_replace() en alguna parte?

Lo que podrias checar es, si tu cadena no la "modificas" ante de tiempo

Código PHP:
$asunto=$p[4]; 
echo 
$p[6];
//Checamos que trae tu variable antes de aplicarle  nl2br()
$mensaje1 nl2br($p[6]); 
Lo que esta pasando no tiene que ver nada con nl2br().

Saludillos.
  #3 (permalink)  
Antiguo 24/01/2007, 14:35
Avatar de marijos  
Fecha de Ingreso: mayo-2004
Ubicación: Madrid
Mensajes: 241
Antigüedad: 19 años, 11 meses
Puntos: 0
Re: este foro hace una cosa muy curiosa!! ayuda por favor

Si tengo lo que dices, me imagino que te refieres a esto

Código PHP:
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;
 } 
Tengo entonces alguna manera de solucionarlo?? Como??? Gracias por la ayuda, se lo agradezco de verdad
  #4 (permalink)  
Antiguo 29/01/2007, 12:52
Avatar de marijos  
Fecha de Ingreso: mayo-2004
Ubicación: Madrid
Mensajes: 241
Antigüedad: 19 años, 11 meses
Puntos: 0
Re: este foro hace una cosa muy curiosa!

hola, lo vuelvo a subir a ver si alguien me puede ayudar por favor, necesito quitarme este problema de encima como sea. muchas gracias a todos
  #5 (permalink)  
Antiguo 29/01/2007, 13:54
Avatar de merolhack  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 1.242
Antigüedad: 17 años, 10 meses
Puntos: 16
Re: este foro hace una cosa muy curiosa!

Oye y que foro es?
  #6 (permalink)  
Antiguo 29/01/2007, 13:59
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: este foro hace una cosa muy curiosa!

Pues al menos en esa función no alteras en ningun momento al "12", debes empezar a "rastrear" con echo ""; en que momento se altera esta "cadena". Porque nl2br(), se encarga de encontrar el salto de linea que normalmente se encuentra expresado como "\n"y no de cambiar 12 por <br />

Saludillos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:27.