J'ai été mordu par cela aussi. Je l'ai corrigé grâce aux informations fournies dans stackoverflow.
J'avais deux pages, les deux avaient "session_start()" en haut et le premier appelait le second avec curl afin que je puisse POST les variables au second script après validation. Le serveur Web était suspendu jusqu'à ce que j'ajoute "session_write_close()".
Exemple de code
suit:
// IMPORTANT (OR ELSE INFINITE LOOP) - close current sessions or the next page will wait FOREVER for a write lock.
session_write_close();
// We can't use GET because we can't display the password in the URL.
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$url = "http://$host$uri/formPage2.php?";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); //append URL
curl_setopt($ch, CURLOPT_POST,TRUE);//We are using method POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_REQUEST, '', "&"));//append parameters
curl_exec($ch); // results will be outputted to the browser directly
curl_close($ch);
exit();