Foros del Web » Programando para Internet » PHP »

porke sucede esto ?

Estas en el tema de porke sucede esto ? en el foro de PHP en Foros del Web. pues veran estoy programando un sistema de envio de tutoriales y tengo un par de funciones, una para el BBCode y otra para colorear el ...
  #1 (permalink)  
Antiguo 21/07/2005, 18:52
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
porke sucede esto ?

pues veran estoy programando un sistema de envio de tutoriales y tengo un par de funciones, una para el BBCode y otra para colorear el codigo PHP:

Código PHP:
<?
function bbcode ($texto) {
$texto eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]""<a target=\"_blank\" href=\"\\1\">\\2</a>"$texto);
$texto eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a target=\"_blank\" href=\"\\1\">\\1</a>",$texto);
$i=0;
while(
$i 3) {
$texto eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>"$texto);
$texto eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<em>\\1</em>"$texto);
$texto eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<strong>\\1</strong>"$texto);
$texto eregi_replace("\\[center\\]([^\\[]*)\\[/center\\]","<center>\\1</center>"$texto);
$texto eregi_replace("\\[color=((#)?[0-9a-z]+)\\]([^\\[]*)\\[/color\\]","<font color=\"\\1\">\\1</font>",$texto);
$texto eregi_replace("\\[img\\]([^\\[]*)\\[/img\\]","<img src=\"\\1\" border=\"0\"\\1 />",$texto);
$texto eregi_replace("\\[cita\\]([^\\[]*)\\[/cita\\]","\n<div class=\"css_title\">Cita\n<div class=\"css\">\\1</div></div>"$texto);
$i++;
}
return 
$texto;

}
function 
codigo($texto){
if(
strstr($texto,"[ php]")) {
$partes explode("[ php]",$texto) ;
$total count($partes) ;
for(
$a $a $total $a++) {
$posicion strpos($partes[$a],"[ /php]") ;
if(
strstr($partes[$a],"[ /php]")) {
$codigo substr($partes[$a],0,$posicion) ;
$codigo html_entity_decode($codigo) ;
$coloreado highlight_string($codigo,true) ;
$coloreado str_replace("\r<br />","<br>",$coloreado) ;
$coloreado "<table border=0 cellspacing=1 style=border-collapse: collapse bordercolor=#000000 width=100%><tr><td width=100% style=\"border: 1px solid #000000\" bgcolor=#ffffff><font face=courier new style='font-size:11px;'>$coloreado</td></tr></table>" ;
$normal substr($partes[$a],$posicion+9) ;
$partes[$a] = "$coloreado$normal" ;
}
}
$texto implode("",$partes) ;
}
return 
$texto;
}
?>
ahora bien cuando envio un tutorial desde el formulario para guardarlo uso la funcion nl2br() para respetar los saltos de linea, pero al mostrar el tutorial los saltos de linea del texto normal estan bien, el problema llega cuando junto con el texto simple tb se envia codigo PHP, pasa ke despues de cada salto muestra la etiketa "<br />" ke al parecer la toma de la BD pk asi lo he pillao en el PHPMyAdmin, les dejo una captura de pantalla de las pruebas ke hago para ke vean mi problema:



espero me puedan ayudar a dar solucion a esta bronca

Un saludo

PD. he dajado espacios [ php] y [ /php] para no hacer conflicto con el bbcode de este foro
  #2 (permalink)  
Antiguo 21/07/2005, 19:09
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 13 años
Puntos: 0
$coloreado = str_replace("\r<br />","<br>",$coloreado) ;


cambialo por


$coloreado = str_replace("\r\n","<br>",$coloreado) ;
  #3 (permalink)  
Antiguo 21/07/2005, 19:17
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
gracias por tu respuesta pero ya hice eso y otras cosas mas, pero sigue en lo mismo, mira yo para insertar los datos en la BD uso este codigo:

Código PHP:
<?
session_start
();
if (
$envianoticia) {
    include(
'config.php');
    include(
'bbcode.php');
    
$time time(); //establecemos el tiempo actual para la fecha
    
$noticia bbcode(nl2br($noticia));
    
$origen bbcode($origen);
    
$autor $_SESSION['usuario'];
    
$idautor $_SESSION['idusuario'];
    
$query "insert into noticias (idautor, fecha, autor, titulo, noticia,origen) values ('$idautor', '$time', '$autor', '$titulo', '$noticia', '$origen')";
    
mysql_query($query); //insertamos el dato
    
echo "AÑADIDA<br><br>"//te dice que se ha añadido
}
?>
y para mostrar el contenido uso este:
Código PHP:
<?
session_start
();
include(
'config.php');
include(
'bbcode.php');
$query "select * from noticias where id='$id'";
$resp mysql_query($query);
while (
$datos mysql_fetch_array($resp)) {
    
$fecha date("d/m/Y",$datos[fecha]);
    
$texto codigo($datos[noticia]);
    
$extraido bbcode($datos[origen]);
    echo 
'
    <table width=400>
    <tr><td><b>'
.$datos[titulo].'</b></td><td align="right"><b>'.$fecha.'</b></td></tr>
    <tr><td colspan=2>'
.$texto.'</td></tr>
    <tr><td><b>Origen: </b>'
.$extraido.'</td><td align="right"><i>Enviada por <a href=perfil.php?id='.$datos[idautor].'><b>'.$datos[autor].'</b></a></i></td></tr>
    </table><br>'
;
}
mysql_query($query);
?>
kiza por ahi deba estar la falla he puesto de cabeza todos los scripts ke conforman el sistema pero no puedo resolver el problema :s
  #4 (permalink)  
Antiguo 21/07/2005, 19:23
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 13 años
Puntos: 0
<?
session_start();
if ($envianoticia) {
include('config.php');
include('bbcode.php');
$time = time(); //establecemos el tiempo actual para la fecha
$noticia = bbcode($noticia);
$origen = bbcode($origen);
$autor = $_SESSION['usuario'];
$idautor = $_SESSION['idusuario'];
$query = "insert into noticias (idautor, fecha, autor, titulo, noticia,origen) values ('$idautor', '$time', '$autor', '$titulo', '$noticia', '$origen')";
mysql_query($query); //insertamos el dato
echo "AÑADIDA<br><br>"; //te dice que se ha añadido
}
?>



<?
session_start();
include('config.php');
include('bbcode.php');
$query = "select * from noticias where id='$id'";
$resp = mysql_query($query);
while ($datos = mysql_fetch_array($resp)) {
$fecha = date("d/m/Y",$datos[fecha]);
$texto = codigo(nl2br($datos[noticia]));
$extraido = bbcode($datos[origen]);
echo '
<table width=400>
<tr><td><b>'.$datos[titulo].'</b></td><td align="right"><b>'.$fecha.'</b></td></tr>
<tr><td colspan=2>'.$texto.'</td></tr>
<tr><td><b>Origen: </b>'.$extraido.'</td><td align="right"><i>Enviada por <a href=perfil.php?id='.$datos[idautor].'><b>'.$datos[autor].'</b></a></i></td></tr>
</table><br>';
}
mysql_query($query);
?>


  #5 (permalink)  
Antiguo 21/07/2005, 20:05
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
gracias de nuevo pero sigue en lo mismo :s
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 03:09.