Ver Mensaje Individual
  #9 (permalink)  
Antiguo 09/01/2007, 04:46
Avatar de holahola
holahola
 
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Re: Problema con las comillas simples

Estoy probando con la misma tabla que te dije al principio.

Y estoy utilizando el siguiente script:

editarseleccionado_comillas.php
Código PHP:
<?
$link 
mysql_connect('localhost','pepe','pepe');
mysql_select_db('dbangel',$link) or die('No pudo seleccionarse la BD.');


if (
$_POST)
{
    
$descripcion=$_POST["descripcion"];
    
$id=$_POST["id"];

    
//-bbcode
    
$descripcion=bbcode($descripcion);
    echo 
'<br>Descripción después del bbcode: '.$descripcion;

    
//-lo inserto
    
$ssql="UPDATE mitabla SET descripcion = '".$descripcion."'  
    WHERE id="
.$id." ";
    echo 
'<br>El update es: '.$ssql;

    
mysql_query($ssql,$link) or die('Error en UPDATE mitabla'.mysql_error());
}

echo 
'<br>Listado<br>';
$result mysql_query("SELECT * FROM mitabla ",$link);
while(
$row mysql_fetch_array($result)) {

    
// Código para cada fila
    
echo "<br> <a href=editarseleccionado_comillas.php?id=$row[id]>Edito</a> $row[id] $row[descripcion]";
}
mysql_free_result($result);

if (
$_GET)
{
    
//-voy a editar uno de los que tienen comilla y presentarlo en el formulario
    
$id=$_GET[id];
    
$result mysql_query("SELECT * FROM mitabla WHERE id=$id ",$link);
    
$row mysql_fetch_array($result);
    
$descripcion=$row["descripcion"];

    
mysql_close($link);

?>

    <hr>

    <form name=f1 action="editarseleccionado_comillas.php" method="post" />
        <br>Descripcion: <input type="text" name="descripcion" size="50" value="<?echo $descripcion?>" />
        <input type="hidden" name="id" value="<?echo $id?>" />
        <br><input type="submit" value=" Enviar " style="margin-top: 5ex;" />
    </form>

<?
}

function 
bbcode($texto) {
    
$texto nl2br(htmlentities($texto));
    
$textostripslashes($texto);
    
$texto str_replace("[code]""<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><div align=\"left\" style=\"padding:5px;margin:5px;\"><div style=\" background-color:#FFFFFF;border-color:#808080;border-style:solid;border-width:1px;font-size:11px;margin:0px;overflow:auto;padding:6px;text-align:left;width:330px;\">[code]"$texto);
    
$texto str_replace("[/code]""[/code]<br /></div></div></td></tr></table>"$texto);
     
$texto str_replace('&quot;','"',$texto); 
    
$simple_search = array('/\[\|x\|\]/is','/\[\=p\]/is','/\[\;\)\]/is','/\[\:o\]/is','/\[\:\)\]/is','/\[\:s\]/is','/\[&lt;8\]/is','/\[d\=\]/is','/\[\:Q\]/is','/\[\:D\]/is','/\[\:\(\]/is','/\[8\)\]/is','/\[\:_o\]/is','/\[\:\|\]/is','/\[quote\](.*?)\[\/quote\]/is','/\[b\](.*?)\[\/b\]/is','/\[i\](.*?)\[\/i\]/is','/\[u\](.*?)\[\/u\]/is','/\[a href\=(.*?)\](.*?)\[\/a\]/is','/\[img src\=(.*?)\]/','#\[code\](.*?)\[\/code\]#se'); 
    
$simple_replace = array('<img src="bbcode/emoticons/e14.gif">','<img src="bbcode/emoticons/e12.gif">','<img src="bbcode/emoticons/e10.gif">','<img src="bbcode/emoticons/e8.gif">','<img src="bbcode/emoticons/e6.gif">','<img src="bbcode/emoticons/e2.gif">','<img src="bbcode/emoticons/e13.gif">','<img src="bbcode/emoticons/e11.gif">','<img src="bbcode/emoticons/e9.gif">','<img src="bbcode/emoticons/e7.gif">','<img src="bbcode/emoticons/e5.gif">','<img src="bbcode/emoticons/e1.gif">','<img src="bbcode/emoticons/e3.gif">','<img src="bbcode/emoticons/e4.gif">',"<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><div align=\"left\" style=\"padding:5px;margin:5px;\"><div style=\" background-color:#EEEFDC;border-color:#808080;border-style:solid;border-width:1px;font-size:11px;margin:0px;overflow:auto;padding:6px;text-align:left;width:330px;\">$1<br /></div></div></td></tr></table>",'<strong>$1</strong>','<em>$1</em>','<u>$1</u>','<a target=\"_blank\" href=$1>$2</a>','<img src=$1 alt=$1 />',"highlight_string(stripslashes(html_entity_decode(str_replace('<br />','','$1'))), true)");
    
$texto preg_replace ($simple_search$simple_replace$texto); 
    return 
$texto
}

?>
Este código lo he ejecutado asteriscando la parte de bbcode y funciona corretamente. Pero, si se ejecuta tal cual está, sólo funciona cuando el nº de comillas simples que contiene es par, por el contrario te destroza el update.

Yo creo que puede tener solución pero hay que verlo. Un saludo.


EDITO:
-----------------
Perdona pero estaba dando errores porque había comenzado a hacer modificaciones. Creo que este es el script correcto.
-----------------

Última edición por holahola; 09/01/2007 a las 04:50 Razón: corrección script en comillas