webForumDet fria alternativet

Problem med åäö i header

1 svar · 303 visningar · startad av Famine

FamineMedlem sedan jan. 200265 inlägg
#1

Tja. Sitter och jobbar på ett downloadscript som funkar rätt bra. Det är bara en grej som inte funkar. Det är när man ska försöka ladda ner en fil som har "å","ä" eller "ö" i namnet. Verkar som det itne funkar att skicka dom tecknen med funktionen Header()? Det fungerar helt perfa annars. Några tips på hur man kan fixa det?

Koden för att göra detta ser ut såhär:

  while($row=mysql_fetch_array($result))
  {
   $filer[$i][0] = $row["id"];
   $filer[$i][1] = $row["url"];
   $i++;
  }  
  $fil = $filer[$id][1];
  
  //skickar iväg till url'en som är inlagd i databasen
  header("Location: $fil");

Så här ser det ut i webbläsarens adressfält när det blir fel. Filen ska egentligen heta "glo - ä.mp3": glo%20-%20%E4.mp3

jarvkloMedlem sedan juli 20013 378 inlägg
#2

Det som händer är att mellanslag, å, ä, ö och andra "speciella tecken" "URL-kodas" för att kunna skickas över nätet.
Prova om du kanske kan ha nytta av urldecode (se http://www.php.net/manual/en/function.urldecode.php ) på filnamnet eller någon av de andra relaterade funktionerna kring detta ;)

Mer om URL-kodning hittar du på http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

Det enklaste är kanske att inte tillåta ÅÄÖ, mellanslag osv i filerna som du har på nätet, dvs fundera på om det inte är värt mödan att ändra namnen när filerna har laddas upp... (så att det inte finns några konstiga tecken i filnamnen när de senare skall laddas ner ;) )

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)