Моя страница "Забыли пароль" отправляет пользователю электронное письмо (через PHPMailer ver-6.1.1) со ссылкой, содержащей его адрес электронной почты.
Затем он должен щелкнуть ссылку, которая открывает мой "resetPassword.php" страница, где он может сбросить свой пароль, в соответствии с адресом электронной почты, указанным в ссылке.
Работает нормально, но НЕ с адресами электронной почты, содержащими знак плюс (+) (или любым другим специальным символом, в этом отношении).
Соответствующий код JS для отправки почты:
$body="http://localhost/myApp/resetPassword.php?frgt_psw_email=xxxx+1@gmail.com";
, который является именно ссылкой в полученном письме.
Пока все хорошо.
При нажатии на ссылку пользователь переносится на страницу «resetPassword», где первое, что я делаю (для целей отладки):
echo $_GET['frgt_psw_email'];
exit();
Что я получаю: xxxx 1@gmail.com. Как видите, знак плюс заменяется пробелом, поэтому функция resetPassword не работает.
Я попытался заменить знак + на htmlentities, но это не помогло.
Я также попытался добавить к своим параметрам PHPMailer:
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'quoted-printable';
, который тоже не помог.
Пожалуйста, потерпите меня - я новичок в PHP и JS ...
Спасибо!