web-dev-qa-db-ja.com

Prestashopは管理者にログインできません

数日前、prestashopプラットフォームに基づいて自分のサイトの管理パネルにアクセスできませんでした。ログインとパスワードを入力した後、私は再びログインページにリダイレクトされ、すべてが繰り返されました。

このサイトは専用サーバーでホストされており、私が開発している他のいくつかのprestashopサイトもホストされています。これらのサイトの管理パネルにアクセスしようとすると、同じ「エラー」が発生します。

あなたはどう思いますか、何が問題ですか?

Prestashop ver。:1.4.7.3および1.4.8.2

サーバー:CentOs、PHP

7
Cvalya

ここにあなたが試すことができるいくつかのことがあります:

1 /ブラウザのキャッシュとCookieをクリアする

2/Chromeの代わりにFirefoxを使用してみてください(予期しない問題があるようです)

/_PS_SHOP_DOMAIN_テーブルの_PS_SHOP_DOMAIN_SSL_と_ps_configuration_を確認してください

4/Smartyキャッシュを手動でクリア:_tools/smarty/compile_および_tools/smarty/cache_からすべてのファイルを削除します

5/IPチェックを無効にする in _classes/Cookie.php_(これにより、ダイナミクスIPで多くの問題が発生する可能性があります):isLoggedBack()で、4番目の条件を削除またはコメントします:

AND (!isset($this->_content['remote_addr']) OR $this->_content['remote_addr'] == ip2long(Tools::getRemoteAddr()) OR !Configuration::get('PS_COOKIE_CHECKIP'))

6/Cookieの有効期限を短くする(IEでは最長時間のCookieで問題が発生する可能性があります):_classes/Cookie.php_コンストラクターで

セット:$this->_expire = isset($expire) ? (int)($expire) : (time() + 3600);

$this->_expire = isset($expire) ? (int)($expire) : (time() + 1728000);の代わりに

22
zessx

Apache Webサーバーの前にリバースプロキシとしてNGINXを追加した後、同じ問題が発生しました。

問題は、"CookieのIPアドレスを確認してください"パラメータが"yes"に設定されていることが原因でした。管理者からロックアウトされて変更できなかったため、このSQLリクエストを使用してデータベースで直接実行しました。

UPDATE ps_configuration SET value = 0 WHERE name='PS_COOKIE_CHECKIP';

PS:ps_は私のテーブルプレフィックスです、あなたはそれをあなたの設定に適応させることができます。

4
Nicolas Karolak

私はこれをデバッグするのに多くの時間を費やしました。 prestashopを自分のコンピューターにローカルにインストールします。私の場合は次のとおりです。手動で次の場所に移動する必要があります。

< domain >/admin/index.php
3
dark knight

これが私にとってうまくいったことです。[管理]> [設定]コントロールパネルで、[CookieのIPアドレスを確認してください]を[いいえ]に設定します。

http://xbfish.com/tag/auto-logout/

1
philosodad

私は他のみんなと同じ問題を抱えていました。

IE経由でログインできましたが、Firefoxではログインできませんでした。

この問題を解決するために私がしたことは、Cookie Managerにアクセスして、すべてのCookieを削除することでした。

私はそれが決まり文句に聞こえることを知っていますが、他には何も機能しませんでした。

私は自分のサイト名を検索し、Cookieを調べました。日付は長いですが、アクティブではなくなりました。管理パネルを使用している途中で、電話のブラウザに切り替えて何かを確認したため、Cookieが破損しているか、IPマッチングが行われている可能性があります。戻ったときは、ログインページをループするだけで、エラーは発生しません。

ソフトウェアの観点から問題を解決する必要があると思います。

とにかく、自分のサイトに関連付けられているすべてのCookieを削除した後、問題なく元に戻りました。また、www.mysite.comとmysite.comで発生していた問題も解決しました。テクニカルサポートと話していたのは、うまくいくこともあれば、うまくいかないこともあったからです。たぶん、Cookieには、動的リンクに使用されたwww/nonのバリアントも格納されます。私のDNSは解決する時間が許され、テクニカルサポートはそれを非難しましたが、そうではありませんでした。

Cookieをクリアするだけでなく、サイトのCookieを手動で削除してください。クリアクッキーを使用したところ、多くのクッキーは削除されませんでした。私のサイトには、クリアCookieの後にまだ9つのCookieが設定されていることがわかりました。それが私の間違いなのか他の何かなのか、私にはわかりません。

すべての人に幸運を祈り、他の提案に感謝します。それが戻ってきたら、私は他の提案に行き、報告します。

1

Prestashop 1.4.8.2を使用しています。admin/ login.phpを変更して、バックオフィスのログインループをデバッグしました。次のコードで、一見役に立たない条件を削除するだけです。

if ((empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) == 'off')
     AND Configuration::get('PS_SSL_ENABLED'))

で変更

 if (!Configuration::get('PS_SSL_ENABLED'))

私はまた、それが機能したクッキーとバムをクリアしました。それが他のものを台無しにするかどうかはわかりませんが、AT最後に私のバックオフィスに入ることができます。平和!!

1
Towelie

古いパスワードが機能しなくなる原因となる可能性のあることがいくつかあります。 1つは、_COOKIE_KEY_が変更された可能性があります。

次のスクリプトを使用して、新しいパスワードハッシュを生成してみてください。次に、データベース内のxxxx_employeeテーブル(xxxx_はテーブルプレフィックス)で置き換えることができます。それがあなたのために働くことを願っています。いずれにせよ、古いハッシュのバックアップを保管してください。

小さなスクリプトは次のとおりです。

<?php
require(dirname(__FILE__).'/config/config.inc.php');
echo Tools::encrypt($_REQUEST["pw"]);

完了したら、サーバーからスクリプトを削除することを忘れないでください。

0
csupnig