Validator verhindert Aufruf des Backends

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
bodil
Beiträge: 366
Registriert: Fr 7. Okt 2011, 04:10
Danksagung erhalten: 2 Mal
Kontaktdaten:

Validator verhindert Aufruf des Backends

Beitrag von bodil »

Guten Abend zusammen,
ich habe ben ein Contenido-System aufgesetzt:
Version 4.10.2-DEV (gerade von GitHub geholt)
PHP 8.1
MYSQL 8.0
Nach dem Setup ist die Seite contenido/ nur leer.
Das Errorlog verrät:

Code: Alles auswählen

PHP Fatal error:  Uncaught TypeError: cRegistry::getConfigValue(): Argument #3 ($defaultValue) must be of type ?string, array given, called in [..]/contenido/classes/validator/class.validator.factory.php on line 78 and defined in [..]/contenido/classes/class.registry.php:574
Stack trace:
#0 [..]/contenido/classes/validator/class.validator.factory.php(78): cRegistry::getConfigValue('validator', 'email', Array)
#1 [..]/contenido/classes/class.password.request.php(144): cValidatorFactory::getInstance('email')
#2 [..]/contenido/main.loginform.php(85): cPasswordRequest->__construct(Object(cDb), Array)
#3 [..]/contenido/classes/auth/class.auth.handler.backend.php(75): include('/var/www/vhosts...')
#4 [..]/contenido/classes/auth/class.auth.php(327): cAuthHandlerBackend->displayLoginForm()
#5 [..]/contenido/classes/auth/class.auth.php(182): cAuth->_fetchLoginForm()
#6 [..]/contenido/classes/class.registry.php(790): cAuth->start()
#7 [..]/contenido/index.php(34): cRegistry::bootstrap(Array)
#8 {main}
  thrown in [..]/contenido/classes/class.registry.php on line 574
Sieht für mich so aus, als würde da eine E-Mail-Adresse validiert werden und als schlüge das fehl, weil statt der E-Mail-Adresse ein Array hinterlegt sei.
Kann mir da jemand weiterhelfen? Was wird da validiert? In der Conf finde ich nichts und in der DB steht nur die E-Mail, die ich als Admin-Kontakt während des Setups eingetragen habe. Stringförmig, wie auch sonst?
(Die nächste Frage wäre dann: warum verhindert eine nicht validierbare E-Mail-Adresse den Aufruf des Backends?)
Hat jemand eine Idee?
Immer dankbar!
Bodil
xmurrix
Beiträge: 3200
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 1 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: Validator verhindert Aufruf des Backends

Beitrag von xmurrix »

Hallo Bodil,

es gab einen Fehler in der Datei class.registry.php, die habe ich gerade behoben, siehe Commit 487b227.

Der dritte Parameter der Funktion getConfigValue() darf nicht vom Typ string sein.

Da stand vorher folgendes:

Code: Alles auswählen

    public static function getConfigValue(
        string $sectionName = null,
        string $optionName = null,
        string $defaultValue = null
    )
Richtig ist:

Code: Alles auswählen

    public static function getConfigValue(
        string $sectionName = null,
        string $optionName = null,
        $defaultValue = null
    )
Da ich die ganze Zeit an einer anderen Branch arbeite, ist mir das bisher nicht aufgefallen. Danke dir für den Hinweis.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
bodil
Beiträge: 366
Registriert: Fr 7. Okt 2011, 04:10
Danksagung erhalten: 2 Mal
Kontaktdaten:

Re: Validator verhindert Aufruf des Backends

Beitrag von bodil »

Und schon geht’s! Vielen Dank!
B.
Antworten