程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> WordPress中訪客登陸實現郵件提醒的PHP腳本實例分享

WordPress中訪客登陸實現郵件提醒的PHP腳本實例分享

編輯:PHP綜合


登陸郵件提醒實現方法
前提是空間有郵件功能,測試有無郵件功能的方法:登錄界面點擊“忘記密碼”,有郵件發到你郵箱就有郵件功能。

一、登錄成功提醒
就像銀行的登錄提醒一樣,如果有人登錄了系統,就會發一封郵件到郵箱,提醒你有人登錄了,如果當時不是你登錄,就要引起警惕了。將以下代碼放入主題的functions.php中:


/*****************************************************
 函數名稱:wp_login_notify v1.0 by DH.huahua. 
 函數作用:有登錄wp後台就會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>請確定是您自己的登錄,以防別人攻擊!登錄信息如下:</p>' . 
 '<p>登錄名:' . $_POST['log'] . '</p>' .
 '<p>登錄時間:' . 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');

二、登錄失敗提醒
有人嘗試登陸你的系統,但是沒有成功,這種反復嘗試的動作本身就需要被記錄下來,發給博主,這樣,只要有錯誤的登錄,就會發一封郵件到自己的郵箱,將對方嘗試的登錄名和登錄密碼發送到你郵箱。將以下代碼放入主題的functions.php中:

/*****************************************************
 函數名稱:wp_login_failed_notify v1.0 by DH.huahua. 
 函數作用:有錯誤登錄wp後台就會email通知博主
******************************************************/
function wp_login_failed_notify()
{
  date_default_timezone_set('PRC');
  $admin_email = get_bloginfo ('admin_email');
  $to = $admin_email;
 $subject = '你的博客空間登錄錯誤警告';
 $message = '<p>你好!你的博客空間(' . get_option("blogname") . ')有登錄錯誤!</p>' . 
 '<p>請確定是您自己的登錄失誤,以防別人攻擊!登錄信息如下:</p>' . 
 '<p>登錄名:' . $_POST['log'] . '</p>' .
 '<p>登錄密碼:' . $_POST['pwd'] . '</p>' .
 '<p>登錄時間:' . 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');

效果如下圖所示,後面有個登錄所在地是用qqwry.dat做了個查詢

20151214174440293.png (427×347)

修改後台登錄地址
插件法
不少插件可以實現這樣的功能,比如Protected wp-login和Stealth Login Page,直接下載安裝即可,這裡不多介紹。

代碼法
不想用插件的話,直接將下面的代碼復制到當前主題的 functions.php 文件中:

//保護後台登錄
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,才會打開登錄頁,否則就會自動跳轉到 http://blog.gimhoy.com/

但是博主這樣做之後,郵箱裡還是每天都收到很多登錄失敗的提醒郵件,於是采取了一個更加簡單粗暴的方法:修改wp-login.php文件名

比如將wp-login.php修改成gimhoy-login.php,同時還要打開這個文件,將裡面所有的wp-login.php替換成gimhoy-login.php。這樣登錄地址便成了http://siteurl/gimhoy-login.php.跟前面那個方法結合起來,就成了http://siteurl/gimhoy-login.php?word=fuck.

簡單粗暴,目的達成。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved