Hoe kan ik plugins controleren op niet afgesloten PHP sessies?

1. Check de HTTP‑headers (meest direct & betrouwbaar)
Open je site in Chrome → DevTools → tab Network → klik op de eerste request (meestal /).

Kijk onder Headers → Response Headers of je dit ziet:

Set-Cookie: PHPSESSID=...

Cache-Control: no-store, no-cache

Pragma: no-cache

Als je PHPSESSID ziet → er wordt een sessie gestart.

Als je dit ziet op elke page load, dan wordt de sessie niet goed afgesloten of onnodig opnieuw gestart.

2. Debug log aanzetten en zoeken naar session_start()
Voeg tijdelijk toe aan wp-config.php:

php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
Daarna:

Ga naar /wp-content/debug.log

Zoek op:

Code
session_start
session_write_close
session_destroy
Als je session_start() ziet zonder session_write_close(), dan sluit een plugin de sessie niet goed af.

3. Plugin conflict test: sessie‑start detecteren via MU‑plugin
Maak een MU‑plugin aan:

Bestand: /wp-content/mu-plugins/session-debug.php

php
<?php
add_action( 'init', function() {
    if ( session_status() === PHP_SESSION_ACTIVE ) {
        error_log( '⚠ PHP session already active at init by: ' . print_r( debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ), true ) );
    }
});
Dit logt welke plugin de sessie start.

Daarna check je debug.log.

4. Query Monitor plugin gebruiken
Installeer Query Monitor.

Ga naar:

Admin bar → Query Monitor → PHP Errors → Hooks

Je ziet:

of session_start() is aangeroepen

door welke plugin

op welk moment

Super handig als je snel wilt zien wie de boosdoener is.

Bonus: hoe herken je een plugin die sessies niet goed afsluit?
Let op deze symptomen:

Pagina’s worden niet gecachet (bijv. LiteSpeed/Cloudflare/NGINX)

PHPSESSID cookie blijft bestaan na uitloggen

session_start() wordt meerdere keren aangeroepen

WooCommerce checkout wordt traag

Admin bar verdwijnt soms

Random 500 errors bij hoge load

Artikeldetails

Artikel-ID:
264
Beoordeling :

Gerelateerde artikelen


Terug naar de website van i24