Admin-Login: "Fehler! Ihr Browser unterstützt keine Cookies."

Tachchen,

ich war gerade zum wiederholten Mal genervt von der Fehlermeldung im Titel, und bin das “Problem” gerade mal angegangen. Kann sein, dass es eine relativ seltene Konstellation ist, aber es müsste wie folgt reproduzierbar sein (auch noch in Oxid 4.5.6):

Man hat seinen Shop über einen SSL-Proxy laufen, z.b. in dieser Art:

$this->sAdminSSLURL = 'https://ssl.provider.de/meinshop/admin';

und versucht sich einzuloggen, nachdem man aber den Admin zuerst ohne SSL ansteuert, also z.b. http://www.meinshop.de/admin.

Beim ersten Versuch kommt halt der Fehler, dabei wird aber korrekt auf SSL gesprungen, und beim zweiten Versuch klappt es dann, was ja auch alles logisch ist. Nun könnte man sagen, warum rufe ich nicht gleich die richtige (SSL)-Seite auf? Nun, erstens ist man ja Tippfaul oder pennt gerade und zweitens geht es nicht nur um mich, sondern um Kunden, die das alles so und so nicht verstehen (wollen), was auch okay ist.

Ich halte es seit Jahren in anderen Projekten so, dass ich alle Besucher VOR dem Login auf die richtige Seite umleite, auch damit man gleich sieht, dass das Formular verschlüsselt ist. Muss technisch zwar nicht sein, gilt aber trotzdem als “vertrauensbildende Maßnahme” oder wie es so schön heißt… :wink:

Und genau so habe ich es mal kurz in Oxid ergänzt. Lohnt sich wohl kaum, davon ein Modul ins Exchange zu stellen (mangels Bedarf), aber hole ich notfalls noch gerne nach.

Bis dahin legt man einfach eine Datei “fix_adminloginssl.php” direkt ins modules-Verzeichnis:

<?php
/**
 * Modul: FixAdminLoginSsl
 * Version: 1.0
 * (c) 2012 by Wendnet, Sascha Mahnecke
 */
class fix_adminloginssl extends fix_adminloginssl_parent
{
    /**
     * Redirects to SSL login if activated per config
     *
     * @return string
     */
    public function render()
    {
        $oConf = $this->getConfig();

        if ( !$oConf->isSsl() && strpos( $oConf->getConfigParam( 'sAdminSSLURL' ), 'https://' ) === 0 )
        {
            header( 'Location: ' . $oConf->getConfigParam( 'sAdminSSLURL' ) );
            exit;
        }

        return parent::render();
    }
}

?>

und bindet sie im Admin ein mit:

login => fix_adminloginssl

Simple, aber funzt 1A. Ich weiß nicht, ob das evtl. noch im Zusammenhang mit diesem alten Thread steht und habe diesmal lieber einen neuen gestartet. Einen Download hänge ich auch noch an und hoffe, es hilft irgendwem weiter… :slight_smile: