修復 WordPress 密碼重設連結不顯示的問題

Fix WordPress Password

WordPress 會員遺失密碼後,可以透過登入頁面,點擊「忘記密碼」的功能,輸入會員的帳號或電子郵件方法,利用電子郵件的密碼重設的連結,重設一組密碼來登入網站。

不知甚麼時候,第三方 SMTP 郵件主機改了安全設置,電子郵件裡的密碼重設連結網址,都不會顯示了。

目前發現 Mailgun 和 Google SMTP 郵件伺服器,出於安全的設置,阻止了帶有 “<" 和 ">” 的網址連結,減少跨站點攻擊的腳本。

如圖所示,重設密碼的連結消失了。

修復密碼重置鏈接不顯示

感謝 Jack Wu 反饋給我不同的訊息,讓我重新測試手上不同系統、不同 PHP 版本的 VPS 主機。

Jack Wu 正在使用 Facebook。加入 Facebook,与 Jack Wu 和其他可能认识的用户互动。Facebook 让人们相互分享,让世界更开放、联系更紧密。

PHP5.6 ~ 7.2 版本的都沒這問題,也不是 SMTP 外掛的問題,偏偏就是有一台主機發生這狀況,目前先用以下的方法來解決電子郵件裡的密碼重設連結網址。

Advertisement

修復方法

打開你的網站根目錄的 wp-login.php 文件,在第 367 行:

原本的

$message .= '<' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . ">\r\n";

修改為

$message .= "(" . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . ")\r\n";

將 “<" 和 ">” 替換為 “(” 和 “)”

存檔後,用 FTP 上傳覆蓋原本的 wp-login.php 文件,你再測試一下 WordPress 找回密碼的功能,就會正常了,如圖:

修復密碼重置鏈接不顯示

我在網路上搜尋到一些類似的問題,如果您知道,歡迎指教:

Topic: Password reset link not showing « WordPress.org Forums

Reset password link not showing

2019/04/27 補充:

當初這個問題是一個 perfmatter 優化外掛造成的,外掛更新後就正常了。

Featured Photo 攝影師:Jonathan Petersson,連結:Pexels

Follow me

yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師,其實是個打雜小弟,修電燈、水管也都是我的工作。
yungke
Follow me
Advertisement

Follow Me

查看本文
喜愛 Like 點擊數!!

Comments

  1. yungke says:

    原來原來,
    這是 Perfmatters 外掛出問題,有安裝的朋友請盡快更新到 1.2.1 版本,修復這個錯誤。
    所以說,沒事別安裝太多的外掛。
    最近又被 Social Warfare – Pro 雷到,哈哈..

Back to top