Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/11/2009, 03:29
nayade1984
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 5 meses
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){
$cadenastrtolower($cadena); //paso de nuevo a minusculas
$cadenaereg_replace" """$cadena); //tambien mete un espacio
$cadenaereg_replace"%20"""$cadena); //por si transforma el espacio 
$cadenaereg_replace"%0d%0a"""$cadena); //los navegadores interpretan %0d%0a como un retorno de carro
$cadenaereg_replace"%0d"""$cadena);
$cadenaereg_replace"%0a"""$cadena);
$cadenaereg_replace"<br/>"""$cadena);
$cadenaereg_replace"<br>"""$cadena);
$cadenaereg_replace"\n"""$cadena);
$cadenaereg_replace"\r"""$cadena);
$cadenaereg_replace"\x0d"""$cadena);
$cadenaereg_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