注意:未定义的偏移量:2 in vendor\magento\framework\Encryption\Encryptor.php

Notice: Undefined offset: 2 in vendor\magento\framework\Encryption\Encryptor.php

使用正确的凭据登录后,我无法登录管理面板。这是我收到的错误消息:

1 exception(s):
Exception #0 (Exception): Notice: Undefined offset: 2 in D:\Xampp\htdocs\demo\webses\projname\vendor\magento\framework\Encryption\Encryptor.php on line 588

通常,当您从另一个具有不同 PHP 版本的环境中获取数据库时,就会发生这种情况,并且已在该环境中创建了管理员用户。例如。你有 PHP 7.1 并且管理员用户是用 PHP 7.2 创建的。 只需在您的环境中创建用户或切换到相同的 PHP 版本。

我遇到了同样的问题。通过使用终端创建一个新的管理员用户并使用该新用户登录后端来解决它。

php bin/magento admin:user:create --admin-user=john --admin-password=doe123445 \
  --admin-email=hi@mydomian.com --admin-firstname=John --admin-lastname=Doe

我为 PHP 安装了 sodium 扩展,在重新启动 PHP 和 nginx 后,这个错误不再出现。我的 PHP 版本是 PHP 7.1.30,我 运行 的命令是:

sudo apt-get install php7.1-sodium -y

将 magento 2.x.x 升级到任何更高版本后,您应该首先确保 运行 升级命令 php bin/magento setup:upgrade php bin/magento setup:setup:static-内容:部署-f php bin/magento setup:di:compile

如果存在阶梯错误,请检查您的 php 版本,它应该是 7。2.x 希望它能解决您的问题!

我遇到了同样的问题,创建新用户对我没有帮助。但是,更新密码和清除缓存对我有用。我使用下面 SQL 来更新我的密码:

UPDATE admin_user SET password = CONCAT(SHA2('xxxxxxxxNewPassword', 256), ':xxxxxxxx:1') WHERE username = 'username';

更新 admin_user table“6f92815f581710d238a9837aa079e722dd5bec27e6717cfa6c691f04b4993797:ZrBkBsjOa8M5izHd4qjhXsSG1uGZgPZY:1”中的管理员密码。这个密码是“admin123”