Hallo,
ich habe den Eindruck, dass in der Datei BaseSearchQuery.php ein Bug sein könnte.
Ausgangssituation: Die Volltextsuche (Einstellung #1657) ist deaktiviert. Die Standardsuche wird verwendet.
Bei der erstmaligen Suche nach einem Suchbegriff (weniger als 3 Suchwörter), zu dem es keine Suchtreffer gibt, erhalte ich folgende Fehlermeldung:
Jede weitere Suchanfrage mit gleichem Suchbegriff scheint fehlerfrei zu funktionieren. Es wird wie erwartet die Suchseite angezeigt - mit der Meldung, dass nichts gefunden wurde.
Ich vermute, dass der Suchbegriff noch nicht im Cache gespeichert ist und daher an folgender Stelle im Code $rows leer ist und str_repeat() mit dem Wert -1 aufgerufen wird:
Kann das jemand reproduzieren?
Liegt das an einer falschen Konfiguration in unserem Shop oder ist das ein Bug im Code?
Gerade teste ich, ob der Fehler auch bei aktivierter Volltextsuche auftritt (Volltextindex wird gerade erstellt). Ich werde hier berichten.
VG Sven
ich habe den Eindruck, dass in der Datei BaseSearchQuery.php ein Bug sein könnte.
Ausgangssituation: Die Volltextsuche (Einstellung #1657) ist deaktiviert. Die Standardsuche wird verwendet.
Bei der erstmaligen Suche nach einem Suchbegriff (weniger als 3 Suchwörter), zu dem es keine Suchtreffer gibt, erhalte ich folgende Fehlermeldung:
Code:
Fatal error: Uncaught ValueError: str_repeat(): Argument #2 ($times) must be greater than or equal to 0 in [root]/includes/src/Filter/States/BaseSearchQuery.php:867
Stack trace:
#0 [root]/includes/src/Filter/States/BaseSearchQuery.php(867): str_repeat()
#1 [root]/includes/src/Filter/ProductFilter.php(707): JTL\Filter\States\BaseSearchQuery->editSearchCache()
#2 [root]/includes/src/Router/Controller/AbstractController.php(184): JTL\Filter\ProductFilter->initStates()
#3 [root]/includes/src/Router/Controller/SearchController.php(28): JTL\Router\Controller\AbstractController->updateProductFilter()
#4 [root]/includes/src/Router/Controller/SearchController.php(47): JTL\Router\Controller\SearchController->getStateFromSlug()
#5 [root]/includes/src/Router/Controller/RootController.php(40): JTL\Router\Controller\SearchController->getResponse()
#6 [root]/includes/src/Router/Strategy/SmartyStrategy.php(40): JTL\Router\Controller\RootController->getResponse()
#7 [root]/includes/vendor/league/route/src/Route.php(167): JTL\Router\Strategy\SmartyStrategy->invokeRouteCallable()
#8 [root]/includes/vendor/league/route/src/Dispatcher.php(59): League\Route\Route->process()
#9 [root]/includes/src/Router/Middleware/OptinMiddleware.php(49): League\Route\Dispatcher->handle()
#10 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\OptinMiddleware->process()
#11 [root]/includes/src/Router/Middleware/CurrencyCheckMiddleware.php(26): League\Route\Dispatcher->handle()
#12 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\CurrencyCheckMiddleware->process()
#13 [root]/includes/src/Router/Middleware/LocaleCheckMiddleware.php(34): League\Route\Dispatcher->handle()
#14 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\LocaleCheckMiddleware->process()
#15 [root]/includes/src/Router/Middleware/CartcheckMiddleware.php(25): League\Route\Dispatcher->handle()
#16 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\CartcheckMiddleware->process()
#17 [root]/includes/src/Router/Middleware/WishlistCheckMiddleware.php(24): League\Route\Dispatcher->handle()
#18 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\WishlistCheckMiddleware->process()
#19 [root]/includes/src/Router/Middleware/SSLRedirectMiddleware.php(30): League\Route\Dispatcher->handle()
#20 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\SSLRedirectMiddleware->process()
#21 [root]/includes/src/Router/Middleware/MaintenanceModeMiddleware.php(40): League\Route\Dispatcher->handle()
#22 [root]/includes/vendor/league/route/src/Dispatcher.php(59): JTL\Router\Middleware\MaintenanceModeMiddleware->process()
#23 [root]/includes/vendor/league/route/src/Strategy/ApplicationStrategy.php(37): League\Route\Dispatcher->handle()
#24 [root]/includes/vendor/league/route/src/Dispatcher.php(59): Psr\Http\Server\MiddlewareInterface@anonymous->process()
#25 [root]/includes/vendor/league/route/src/Dispatcher.php(53): League\Route\Dispatcher->handle()
#26 [root]/includes/vendor/league/route/src/Router.php(111): League\Route\Dispatcher->dispatchRequest()
#27 [root]/includes/src/Router/Router.php(659): League\Route\Router->dispatch()
#28 [root]/includes/src/Shop.php(455): JTL\Router\Router->dispatch()
#29 [root]/index.php(7): JTL\Shop::dispatch()
#30 {main} thrown in [root]/includes/src/Filter/States/BaseSearchQuery.php on line 867
Jede weitere Suchanfrage mit gleichem Suchbegriff scheint fehlerfrei zu funktionieren. Es wird wie erwartet die Suchseite angezeigt - mit der Meldung, dass nichts gefunden wurde.
Ich vermute, dass der Suchbegriff noch nicht im Cache gespeichert ist und daher an folgender Stelle im Code $rows leer ist und str_repeat() mit dem Wert -1 aufgerufen wird:
PHP:
$brackets = 0;
$prio = 1;
foreach ($rows as $i => $col) {
[...]
++$brackets;
[...]
}
$sql .= \str_repeat(')', ($brackets - 1));
Kann das jemand reproduzieren?
Liegt das an einer falschen Konfiguration in unserem Shop oder ist das ein Bug im Code?
Gerade teste ich, ob der Fehler auch bei aktivierter Volltextsuche auftritt (Volltextindex wird gerade erstellt). Ich werde hier berichten.
VG Sven