7

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

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

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

Prestashop バージョン: 1.4.7.3 および 1.4.8.2

サーバー: CentOs、PHP

4

12 に答える 12

23

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

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

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

PS_SHOP_DOMAIN3 /チェックPS_SHOP_DOMAIN_SSLインps_configurationテーブル

4/ Smarty キャッシュを手動でクリア: からすべてのファイルを削除しtools/smarty/compiletools/smarty/cache

5/ IP チェックインを無効にします(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);

于 2012-07-05T14:17:51.267 に答える
6

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

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

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

PS :ps_テーブルの接頭辞です。設定に合わせて変更できます。

于 2016-09-11T14:46:59.573 に答える
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'))

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

于 2016-02-12T16:54:33.610 に答える
0

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

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

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

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

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

于 2012-07-05T14:09:26.750 に答える
0

解決策については、これを試してください:

  • 開ける; phpMyAdmin、ps_configuration テーブル

  • PS_COOKIE_CHECKIP を検索し、0 に設定します。

  • すべてのキャッシュをクリアしてから再試行してください。おそらく解決されるでしょう。

IP/ネットワークの問題に関連していると考えられます。

于 2019-12-18T18:53:22.593 に答える
-1

ログインできる作業サイトがある場合。たぶん、ユーザーを作業中から非作業中にコピーして、それが機能するかどうかを確認できます。

于 2012-07-05T13:49:21.920 に答える
-1

クラシックに加えて、ローカル バージョンまたは別のドメインから prestashop を移動した場合。

update ps_configuration table set value="www.myshop.com" where name ="PS_SHOP_DOMAIN";

update ps_configuration table set value="www.myshop.com" where name ="PS_SHOP_DOMAIN_SSL";

と呼ばれるテーブルを確認し、フィールドとフィールドps_shop_urlを更新します。domaindomain_sslphysical_url

例:

update ps_shop_url set domain='www.myshop.com', domain_ssl='www.myshop.com', physical_url='/';
于 2015-07-04T15:21:09.403 に答える
-1

たとえば、ショップのドメインを www 以外で設定し、www でアクセスしようとすると、このエラーが発生することがあります。私はすべてのユーザーに同じ URL を強制するのが好きなので、.htaccess に www を入力するよう強制します。

RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
于 2015-05-05T19:54:49.233 に答える
-1

私はこれが古いことを知っていますが、/config/config.inc.php を開いてエラーをオンにして、誰かを助けるかもしれません。

次の行を探します。

ini_set('display_errors', 'off');

次のように変更します。

ini_set('display_errors', 'on');

編集:一見タイプミスを変更しました

于 2012-08-02T12:59:14.123 に答える