Jump to content

Strange 500 error when shifting to php 8.0 on trying to log in.


gornycreative
 Share

Recommended Posts

Running on 7.4, the same trace appears but with a warning... under 8.0 it is fatal.

The line in question is the line that expires past login attempts using a time calculation

$expired = $time - $this->maxSeconds;
Hey now… Fatal Error: Uncaught TypeError: Unsupported operand types: int - string in wire/modules/Session/SessionLoginThrottle/SessionLoginThrottle.module:183

#0 wire/modules/Session/SessionLoginThrottle/SessionLoginThrottle.module (91): SessionLoginThrottle->allowLogin('admin')
#1 wire/core/WireHooks.php (1060): SessionLoginThrottle->hookSessionAllowLoginAttempt(Object(HookEvent))
#2 wire/core/Wire.php (484): WireHooks->runHooks(Object(Session), 'allowLoginAttem...', Array)
#3 wire/core/Session.php (996): Wire->__call('allowLoginAttem...', Array)
#4 wire/core/Wire.php (419): Session->___login('admin', '!plDA#6c*H1$g0')
#5 wire/core/WireHooks.php (952): Wire->_callMethod('___login', Array)
#6 wire/core/Wire.php (484): WireHooks->runHooks(Object(Session), 'login', Array)
#7 wire/modules/Process/ProcessLogin/ProcessLogin.module (546): Wire->__call('login', Array)
#8 wire/core/Wire.php (419): ProcessLogin->___login('admin', '!plDA#6c*H1$g0')
#9 wire/core/WireHooks.php (952): Wire->_callMethod('___login', Array)
#10 wire/core/Wire.php (484): WireHooks->runHooks(Object(ProcessLogin), 'login', Array)
#11 wire/modules/Process/ProcessLogin/ProcessLogin.module (385): Wire->__call('login', Array)
#12 wire/core/Wire.php (413): ProcessLogin->___execute()
#13 wire/core/WireHooks.php (952): Wire->_callMethod('___execute', Array)
#14 wire/core/Wire.php (484): WireHooks->runHooks(Object(ProcessLogin), 'execute', Array)
#15 wire/core/ProcessController.php (350): Wire->__call('execute', Array)
#16 wire/core/Wire.php (413): ProcessController->___execute()
#17 wire/core/WireHooks.php (952): Wire->_callMethod('___execute', Array)
#18 wire/core/Wire.php (484): WireHooks->runHooks(Object(ProcessController), 'execute', Array)
#19 wire/core/admin.php (160): Wire->__call('execute', Array)
#20 wire/modules/AdminTheme/AdminThemeUikit/controller.php (15): require('/home/gornycre/...')
#21 site-solon/templates/admin.php (34): require('/home/gornycre/...')
#22 wire/core/TemplateFile.php (328): require('/home/gornycre/...')
#23 wire/core/Wire.php (413): TemplateFile->___render()
#24 wire/core/WireHooks.php (952): Wire->_callMethod('___render', Array)
#25 wire/core/Wire.php (484): WireHooks->runHooks(Object(TemplateFile), 'render', Array)
#26 wire/modules/PageRender.module (575): Wire->__call('render', Array)
#27 wire/core/Wire.php (416): PageRender->___renderPage(Object(HookEvent))
#28 wire/core/WireHooks.php (952): Wire->_callMethod('___renderPage', Array)
#29 wire/core/Wire.php (484): WireHooks->runHooks(Object(PageRender), 'renderPage', Array)
#30 wire/core/WireHooks.php (1060): Wire->__call('renderPage', Array)
#31 wire/core/Wire.php (484): WireHooks->runHooks(Object(Page), 'render', Array)
#32 wire/modules/Process/ProcessPageView.module (184): Wire->__call('render', Array)
#33 wire/modules/Process/ProcessPageView.module (114): ProcessPageView->renderPage(Object(Page), Object(PagesRequest))
#34 wire/core/Wire.php (416): ProcessPageView->___execute(true)
#35 wire/core/WireHooks.php (952): Wire->_callMethod('___execute', Array)
#36 wire/core/Wire.php (484): WireHooks->runHooks(Object(ProcessPageView), 'execute', Array)
#37 index.php (55): Wire->__call('execute', Array)
#38 {main}
thrown (line 183 of wire/modules/Session/SessionLoginThrottle/SessionLoginThrottle.module)

This error message was shown because: site is in debug mode. ($config->debug = true; => site/config.php). Error has been logged.

For some reason I only have one site that causes this error on login in PHP8 - the rest login just fine. This is a multisite installation and they all share /wire.

I'm stumped.

Link to comment
Share on other sites

Oh I see. Never mind. The password manager I am using in my browser decided that one of the configuration fields in the Session Login Throttle configuration page is where a username should go. Thus I accidentally saved a text value into the maximum number of seconds a user would ever have to wait field.

image.thumb.png.fbc619ad308e074a3cb405622f54272e.png

Thanks autofill!

Shouldn't this form field be constrained to an integer, or does it allow relative time entry?

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...