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

Fix WordPress Password

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

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

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

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

修復密碼重置鏈接不顯示

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

Jack Wu is on Facebook. Join Facebook to connect with Jack Wu and others you may know. Facebook gives people the power to share and makes the world more open an...

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