Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/11/2009, 03:29
nayade1984
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Respuesta: caracteres %0d%0a en el nombre de un archivo

Veo que los caracteres %0d%0a se corresponden con nueva linea y retorno de carro, he pensado en incluir otra nueva funcion que filtre de nuevo la cadena incluida en la variable que voy a poner en el href y que elimine todo lo que pueda dar lugar a un retorno de carro, sería algo así:

Código PHP:
function Limpia0d0a ($cadena){
$cadena= strtolower($cadena); //paso de nuevo a minusculas
$cadena= ereg_replace( " ", "", $cadena); //tambien mete un espacio
$cadena= ereg_replace( "%20", "", $cadena); //por si transforma el espacio 
$cadena= ereg_replace( "%0d%0a", "", $cadena); //los navegadores interpretan %0d%0a como un retorno de carro
$cadena= ereg_replace( "%0d", "", $cadena);
$cadena= ereg_replace( "%0a", "", $cadena);
$cadena= ereg_replace( "<br/>", "", $cadena);
$cadena= ereg_replace( "<br>", "", $cadena);
$cadena= ereg_replace( "\n", "", $cadena);
$cadena= ereg_replace( "\r", "", $cadena);
$cadena= ereg_replace( "\x0d", "", $cadena);
$cadena= ereg_replace( "\x0a", "", $cadena);

return 
$cadena;
} 
para luego mostrarlo así:

Código PHP:
if ($adjuntos!="") {
    
$_SESSION["foot"] .= "<br><b>Adjunto:</b> <a href='descarga.php?id=".Limpia0d0a($adjuntos)."' target='_blank'><b>".$adjuntos."</b></a>";
    } 
¿Tenéis una solución mejor?
Gracias