Ho trovato un bug nel novello figlio di Google, Chrome. C’è un problema con la gestione dei buffer di ricezione dei dati quando si utilizza l’autenticazione http con il PHP (e suppongo non solo quello). Se non si abilita l’implicit flush che invia i dati al browser ogni appena disponibili e invece si tenta di bufferizzare un po’ di dati in una volta sola, il browser di Google va in pappa e mostra solo parte dell’output!
Ecco uno script di test che riproduce il problema:
<?
ob_implicit_flush(FALSE);
if (! isset($_SERVER["PHP_AUTH_USER"]))
{
$realm = "Test authentication";
header ('HTTP/1.0 401 Unauthorized');
header ('WWW-Authenticate: Basic realm="'.$realm.'"');
echo “Inserisci qualsiasi cosa”;
die();
}
else
{
for ($x = 0; $x < 10; $x++)
{
echo “Line ”.$x.“ - Got username: ”.$_SERVER["PHP_AUTH_USER"].“ and password ”.$_SERVER["PHP_AUTH_PW"].“…………..<br>\n”;
}
echo “<BR><BR>Example code<BR><BR>”;
}
?>
Per vederlo in funzione (o in “malfunzione” se preferite) cliccate qui.


