View Issue Details

IDProjectCategoryView StatusLast Update
0006992OXID eShop (all versions)1. ----- eShop frontend -----public2024-06-12 11:27
Reporterit artvera Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status confirmedResolutionopen 
Product Version6.1.2 
Summary0006992: call "widget.php" without parameters throws exception
Description[2019-06-06 12:53:20] OXID Logger.ERROR: OxidEsales\Eshop\Application\Controller\ExceptionErrorController is not an instance of OxidEsales\Eshop\Application\Component\Widget\WidgetController
["[object] (OxidEsales\\Eshop\\Core\\Exception\\ObjectException(code: 0): OxidEsales\\Eshop\\Application\\Controller\\ExceptionErrorController is not an instance of OxidEsales\\Eshop\\Application\\Component\\Widget\\WidgetController at \vendor\\oxid-esales\\oxideshop-ce\\source\\Core\\UtilsObject.php:231)
[stacktrace]
#0 \source\\oxfunctions.php(101): OxidEsales\\EshopCommunity\\Core\\UtilsObject->oxNew('OxidEsales\\\\Esho...', 'OxidEsales\\\\Esho...')
#1 \vendor\\oxid-esales\\oxideshop-ce\\source\\Core\\WidgetControl.php(130): oxNew('OxidEsales\\\\Esho...', 'OxidEsales\\\\Esho...')
#2 \vendor\\oxid-esales\\oxideshop-ce\\source\\Core\\ShopControl.php(272): OxidEsales\\EshopCommunity\\Core\\WidgetControl->_initializeViewObject('exceptionError', 'displayExceptio...', NULL, NULL)
#3 \vendor\\oxid-esales\\oxideshop-ce\\source\\Core\\ShopControl.php(794): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('exceptionError', 'displayExceptio...')
#4 \vendor\\oxid-esales\\oxideshop-ce\\source\\Core\\ShopControl.php(145): OxidEsales\\EshopCommunity\\Core\\ShopControl->_handleBaseException(Object(OxidEsales\\Eshop\\Core\\Exception\\ObjectException))
#5 \vendor\\oxid-esales\\oxideshop-ce\\source\\Core\\WidgetControl.php(62): OxidEsales\\EshopCommunity\\Core\\ShopControl->start('start', NULL, NULL, NULL)
#6 \source\\modules\\ava\\Utils\\Core\\WidgetControl.php(16): OxidEsales\\EshopCommunity\\Core\\WidgetControl->start(NULL, NULL, NULL, NULL)
#7 \vendor\\oxid-esales\\oxideshop-ce\\source\\Core\\Oxid.php(41): De\\Artvera\\Oxid\\Module\\Utils\\Core\\WidgetControl->start()
#8 \source\\widget.php(10): OxidEsales\\EshopCommunity\\Core\\Oxid::runWidget()
#9 {main}
"] []
Steps To Reproducejust call "widget.php" in the browser
TagsNo tags attached.
ThemeNot defined
BrowserNot defined
PHP VersionNot defined
Database VersionNot defined

Activities

QA

2019-06-06 16:05

administrator   ~0012909

-MK

mario_lorenz

2019-09-11 13:54

developer   ~0012994

I can confirm the behavior. Throwing an Exception is Ok, the shop owner or the developer should already hear the wrong call, but the shop should not show a white page with the status 200. It is better to do the redirect to the start page here as well, as happens when I call widget.php with a fantasy controller (widget.php?cl=FantasyXYC).
The background is that in our shop SearchBots are responsible for the "empty"-call and keep coming back, because the status 200 causes them to do so.

In my opion is the status 302 (temporary not available) for a fantasy-Controller call in the index.php and the widget.php also not the right solution. Because a robot will come back for a 302 page. Better is 404 or 503.

DayanaLuedecke

2019-12-12 13:35

reporter   ~0013066

We can reproduce. Had a lot of Exception in Logfile, because of doing a page scan with robot "Gtmetrix.com".

SvenBrunk

2024-06-12 11:27

administrator   ~0017013

Last edited: 2024-06-12 11:27

Changed the bug severity to feature as this works as designed, but could use some improvements. The widget controller is not meant to be exposed externally. So there really should be no direct link to it. So in the first place there should be no entry in any search engine that will be called.
At the same time, it would be used by reverse proxy servers and a redirect to the startpage might lead to unwanted behaviour.
Thus I will confirm the issue to get an analysis about what we can do about it.