Erreur logout depuis ecrire avec nginx
## Description du bug / Comment le reproduire 1. un serveur web sous nginx 2. se connecter à l’espace privé et y entrer 3. se déconnecter depuis l’espace privé 4. une demande de connexion HTTP s’ouvre, au lieu d’afficher le site public ![Capture_d_écran_2026-05-04_à_10.51.56](/uploads/1596e21129dafdd529ca626f5a113b0c/Capture_d_écran_2026-05-04_à_10.51.56.png){width=198 height=137} ## Comportement attendu Afficher le site public sur la déconnexion de ecrire/ ## Piste de résolution - L’action logout vérifie entre autres `isset($_SERVER['PHP_AUTH_USER'])` pour afficher la boite de connexion, or contrairement à apache où la valeur est inexistante, ici elle vaut `$_SERVER['PHP_AUTH_USER'] = ''`. Elle existe mais est vide. - Pourtant dans spip.php cette valeur est inexistante aussi sous nginx - inc/auth la peuple là https://git.spip.net/spip/ecrire/-/blob/0930f715f8bd4da7d0677e0b8b272e8575c6f393/inc/auth.php#L180 ```php // Si auth http differtente de basic, PHP_AUTH_PW // est indisponible mais tentons quand meme pour // autocreation via LDAP || isset($_SERVER['REMOTE_USER']) && ($r = lire_php_auth($_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'], '')) ``` car `$_SERVER['REMOTE_USER']` est défini sous nginx (`''`), mais pas sous apache. A priori il faut tester `isset($_SERVER['REMOTE_USER']) && $_SERVER['REMOTE_USER'] && ...` ## Informations techniques * Version de SPIP : SPIP 4.4 & 5.0-dev * Version de PHP : 8.5 * Serveur web (si pertinent) : Nginx
issue

Forge communautaire SPIP | Charte d'utilisation | Signaler un problème sur ce site