会員がパスワードを忘れた際のパスワード再設定機能について、
会員のメールアドレスに + が含まれる場合 (例: aaa+b@example.com ) 、パスワード再設定の通知メール本文内の URL にアクセスすると必ず「Invalid request 2」のメッセージが表示され、パスワード変更フォームが表示されません。
原因は usc-e-shop/classes/usceshop.class.php の uscesmode_changepassword メソッド内で以下のようにHTTPリクエスト変数の値を urldecode 関数で URLデコードしていること、のように思われます。HTTPリクエスト変数の値はURLデコード済みであるはずですので、結果として二重にURLデコードしてしまっているのではないでしょうか。
$mem_mail = urldecode($_REQUEST[‘mem’]);
$lostkey = urldecode($_REQUEST[‘key’]);
私の手元の環境では上記箇所で urldecode を噛ませないようにしたところ、問題のメールアドレスでも正常にパスワード再設定を完了できました。
ご確認のほどよろしくお願い致します。
——————————————-
WordPress のバージョン: 4.3.1
Welcart のバージョン: 1.6.2
ご利用のテーマ: welcartデフォルト
症状を確認したブラウザ: chrome
サーバー(会社名、サービス名):
SSLの利用:
WordPress のパーマリンク設定:
——————————————–