WordPress中訪客登陸實(shí)現(xiàn)郵件提醒的PHP腳本實(shí)例分享
登陸郵件提醒實(shí)現(xiàn)方法
前提是空間有郵件功能,測(cè)試有無(wú)郵件功能的方法:登錄界面點(diǎn)擊“忘記密碼”,有郵件發(fā)到你郵箱就有郵件功能。
一、登錄成功提醒
就像銀行的登錄提醒一樣,如果有人登錄了系統(tǒng),就會(huì)發(fā)一封郵件到郵箱,提醒你有人登錄了,如果當(dāng)時(shí)不是你登錄,就要引起警惕了。將以下代碼放入主題的functions.php中:
/***************************************************** 函數(shù)名稱:wp_login_notify v1.0 by DH.huahua. 函數(shù)作用:有登錄wp后臺(tái)就會(huì)email通知博主 ******************************************************/ function wp_login_notify() { date_default_timezone_set('PRC'); $admin_email = get_bloginfo ('admin_email'); $to = $admin_email; $subject = '你的博客空間登錄提醒'; $message = '<p>你好!你的博客空間(' . get_option("blogname") . ')有登錄!</p>' . '<p>請(qǐng)確定是您自己的登錄,以防別人攻擊!登錄信息如下:</p>' . '<p>登錄名:' . $_POST['log'] . '</p>' . '<p>登錄時(shí)間:' . date("Y-m-d H:i:s") . '</p>' . '<p>登錄IP:' . $_SERVER['REMOTE_ADDR'] . '</p>'; $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); $from = "From: \"" . get_option('blogname') . "\" <$wp_email>"; $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n"; wp_mail( $to, $subject, $message, $headers ); } add_action('wp_login', 'wp_login_notify');
二、登錄失敗提醒
有人嘗試登陸你的系統(tǒng),但是沒有成功,這種反復(fù)嘗試的動(dòng)作本身就需要被記錄下來,發(fā)給博主,這樣,只要有錯(cuò)誤的登錄,就會(huì)發(fā)一封郵件到自己的郵箱,將對(duì)方嘗試的登錄名和登錄密碼發(fā)送到你郵箱。將以下代碼放入主題的functions.php中:
/***************************************************** 函數(shù)名稱:wp_login_failed_notify v1.0 by DH.huahua. 函數(shù)作用:有錯(cuò)誤登錄wp后臺(tái)就會(huì)email通知博主 ******************************************************/ function wp_login_failed_notify() { date_default_timezone_set('PRC'); $admin_email = get_bloginfo ('admin_email'); $to = $admin_email; $subject = '你的博客空間登錄錯(cuò)誤警告'; $message = '<p>你好!你的博客空間(' . get_option("blogname") . ')有登錄錯(cuò)誤!</p>' . '<p>請(qǐng)確定是您自己的登錄失誤,以防別人攻擊!登錄信息如下:</p>' . '<p>登錄名:' . $_POST['log'] . '</p>' . '<p>登錄密碼:' . $_POST['pwd'] . '</p>' . '<p>登錄時(shí)間:' . date("Y-m-d H:i:s") . '</p>' . '<p>登錄IP:' . $_SERVER['REMOTE_ADDR'] . '</p>'; $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); $from = "From: \"" . get_option('blogname') . "\" <$wp_email>"; $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n"; wp_mail( $to, $subject, $message, $headers ); } add_action('wp_login_failed', 'wp_login_failed_notify');
效果如下圖所示,后面有個(gè)登錄所在地是用qqwry.dat做了個(gè)查詢
修改后臺(tái)登錄地址
插件法
不少插件可以實(shí)現(xiàn)這樣的功能,比如Protected wp-login和Stealth Login Page,直接下載安裝即可,這里不多介紹。
代碼法
不想用插件的話,直接將下面的代碼復(fù)制到當(dāng)前主題的 functions.php 文件中:
//保護(hù)后臺(tái)登錄 function login_protection(){ if($_GET['word'] != 'fuck')header('Location: http://blog.gimhoy.com/'); } add_action('login_enqueue_scripts','login_protection');
這樣只有打開 http://siteurl/wp-login.php?word=fuck,才會(huì)打開登錄頁(yè),否則就會(huì)自動(dòng)跳轉(zhuǎn)到 http://blog.gimhoy.com/
但是博主這樣做之后,郵箱里還是每天都收到很多登錄失敗的提醒郵件,于是采取了一個(gè)更加簡(jiǎn)單粗暴的方法:修改wp-login.php文件名
比如將wp-login.php修改成gimhoy-login.php,同時(shí)還要打開這個(gè)文件,將里面所有的wp-login.php替換成gimhoy-login.php。這樣登錄地址便成了http://siteurl/gimhoy-login.php.跟前面那個(gè)方法結(jié)合起來,就成了http://siteurl/gimhoy-login.php?word=fuck.
簡(jiǎn)單粗暴,目的達(dá)成。
相關(guān)文章
PHP實(shí)現(xiàn)上傳圖片到 zimg 服務(wù)器
zimg是一個(gè)具有圖片處理功能的圖片存儲(chǔ)服務(wù),你可以上傳圖片到zimg服務(wù)器,然后通過帶有參數(shù)的URL來獲取被處理過的圖片,今天我們的主要內(nèi)容是使用php實(shí)現(xiàn)圖片上傳到zimg服務(wù)器上,希望大家能夠喜歡2016-10-10Laravel Memcached緩存驅(qū)動(dòng)的配置與應(yīng)用方法分析
這篇文章主要介紹了Laravel Memcached緩存驅(qū)動(dòng)的配置與應(yīng)用方法,結(jié)合實(shí)例形式分析了在Laravel框架配置Memcached緩存及相關(guān)使用方法,需要的朋友可以參考下2016-10-10yii2中添加驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要介紹了yii2中添加驗(yàn)證碼的實(shí)現(xiàn)方法,實(shí)例分析了Yii2中實(shí)現(xiàn)添加驗(yàn)證碼的具體步驟與相關(guān)功能代碼,需要的朋友可以參考下2016-01-01Laravel框架控制器的request與response用法示例
這篇文章主要介紹了Laravel框架控制器的request與response用法,結(jié)合實(shí)例形式分析了Laravel框架控制器的request與response發(fā)送請(qǐng)求及響應(yīng)請(qǐng)求的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09阿里云服務(wù)器搭建Php+Apache運(yùn)行環(huán)境的詳細(xì)過程
這篇文章主要介紹了阿里云服務(wù)器搭建Php+Apache運(yùn)行環(huán)境,本文分步驟通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)阿里云服務(wù)器搭建php環(huán)境相關(guān)知識(shí)感興趣的朋友參考下吧2021-05-05TP5(thinkPHP5)框架使用ajax實(shí)現(xiàn)與后臺(tái)數(shù)據(jù)交互的方法小結(jié)
這篇文章主要介紹了TP5(thinkPHP5)框架使用ajax實(shí)現(xiàn)與后臺(tái)數(shù)據(jù)交互的方法,結(jié)合實(shí)例形式總結(jié)分析了thinkPHP5使用ajax與后臺(tái)數(shù)據(jù)交互的兩種實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下2020-02-02PHP驗(yàn)證終端類型是否為手機(jī)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄狿HP驗(yàn)證終端類型是否為手機(jī)的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02