C validating filename
Browsers typically re-request a 307 page every time, cache a 302 page for the session, and cache a 301 page for longer, or even indefinitely.
Search engines typically transfer "page rank" to the new location for 301 redirects, but not for 302, 303 or 307.
Most of the pages were displayed correct, but on some of them apache added weird content to it: A 4-digits Hex Code on top of the page (before any output of my php script), seems to be some kind of checksum, because it changes from page to page and browser to browser.
(same code for same page and browser) "0" at the bottom of the page (after the complete output of my php script) It took me quite a while to find out about the wrong protocol in the HTTP-header.
Existen varias opciones que los usuarios pueden cambiar en sus navegadores para cambiar el comportamiento por defecto de la caché.
Al enviar los encabezados mencionados más arriba, se sobreescrirán cualquiera de las opciones que intentan guardar en caché lo que muestre su script.
Otherwise you will face problem of headers not being properly sent eg.
You also won't see any "headers already sent" errors because the browser follows the redirect before it can display the error. When the user clicks the link, I want them to get the uncompressed version of the file.
After decompressing the file, I ran into the problem, that the download dialog would always pop up, even when I told the dialog to 'Always perform this operation with this file type'.
As I found out, the problem was in the header directive 'Content-Disposition', namely the 'attachment' directive.
Here's how: If using the 'header' function for the downloading of files, especially if you're passing the filename as a variable, remember to surround the filename with double quotes, otherwise you'll have problems in Firefox as soon as there's a space in the filename.
So instead of typing: If you don't do this then when the user clicks on the link for a file named "Example file with spaces.txt", then Firefox's Save As dialog box will give it the name "Example", and it will have no extension.
Several times this one is asked on the net but an answer could not be found in the docs on ... If not, click here." you cannot use header( 'Location: ...' ) as you can't sent any output before the headers are sent.