Ohne Warnung: WBCE ohne Cookies

WBCE funktioniert auch dann, wenn ein Besucher Cookies deaktiviert hat. Ergo: Das CMS funktioniert auch dann, wenn gar keine Cookies gesetzt werden. 
So kann man die nervige Cookie-Warnung loswerden.

Update: Diese Möglichkeit ist seit WBCE 1.4.5 fix eingebaut und kann aktiviert werden, indem man in der config.php folgende Zeile einfügt:
define('NO_SESSION_COOKIE',true);

Dabei gilt:

  • Nicht geeignet für mehrsprachige Webseiten (=> Umleitungsfehler)
  • Frontend-Registrierung und Frontend-Anmeldung nicht möglich
  • Formulare können keinen der eingebauten Captcha-Mechanismen verwenden
  • ACHTUNG! Es werden nur mehr miniform-Formulare verarbeitet (gespeichert/versendet), Eingaben in mpform- / form-Formularen werden weder gespeichert noch versendet!
  • Umgehung des Wartungsmodus' für Administratoren nicht möglich

Insgesamt also eine Sache, die man sich gut überlegen sollte. Für kleine Präsenzen aber durchaus sinnvoll.

Vorab: Für die Verwaltung sind Cookies natürlich nötig. Ohne Cookies kann man sich auch gar nicht anmelden.

Was ebenso ohne Cookies nicht funktioniert: ASP, also der Spamfilter in Kontaktformularen und Kommentaren. Ob das dazugehörige Modul ohne Cookies läuft, muss man - nicht angemeldet und mit gelöschtem Cookie!! - ausprobieren.

 

WBCE ohne Cookies - so gehts

In der Datei
/framework/wsession.php > public static function  Start(){..

die Zeile:

ini_set('session.use_cookies',
 true); # use session cookies

ersetzen durch:

$wbce_cookie = false;
if ( count($_COOKIE) > 1) {
	$wbce_cookie = true;
} else {
	$uri = WB_URL.$_SERVER['REQUEST_URI'];
	define('COOKIETEST',
 $uri);
	$pos1 = strpos($uri,ADMIN_URL);
	$pos2 = strpos($uri,'/account/');
	if ($pos1 !== false OR $pos2 !== false) { $wbce_cookie = true; }
}
ini_set('session.use_cookies',$wbce_cookie);

Das bewirkt:

  • Normalerweise wird KEIN Cookie gesetzt.
  • Wenn ich mal im Backend war, wird es gesetzt - und bleibt auch für die Session.

Testen!

Zunächst muss man das Cookie löschen. Bei Chrome geht das so: Klick auf das kleine Icon links neben der URL -> Klick auf: "Cookies (X werden verwendet)" -> "Verwendete Cookies" -> "Entfernen"

Dann teste mal alle Formulare: Sende dir selbst eine Anfrage (Doch! - Das geht, und das solltest du sowieso öfter mal machen)

 

Zurück