WordPress中访客登陆实现邮件提醒的PHP脚本实例分享


Posted in PHP onDecember 14, 2015

登陆邮件提醒实现方法
前提是空间有邮件功能,测试有无邮件功能的方法:登录界面点击“忘记密码”,有邮件发到你邮箱就有邮件功能。

一、登录成功提醒
就像银行的登录提醒一样,如果有人登录了系统,就会发一封邮件到邮箱,提醒你有人登录了,如果当时不是你登录,就要引起警惕了。将以下代码放入主题的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做了个查询

WordPress中访客登陆实现邮件提醒的PHP脚本实例分享

修改后台登录地址
插件法
不少插件可以实现这样的功能,比如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.

简单粗暴,目的达成。

PHP 相关文章推荐
十天学会php(1)
Oct 09 PHP
PHP语法速查表
Jan 02 PHP
mysql 的 like 问题,超强毕杀记!!!
Jan 18 PHP
php 中英文语言转换类
Sep 07 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
PHP中判断变量为空的几种方法分享
Aug 26 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
Dec 10 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
Nov 16 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 #PHP
php生成curl命令行的方法
Dec 14 #PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 #PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 #PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 #PHP
php类中的$this,static,final,const,self这几个关键字使用方法
Dec 14 #PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 #PHP
You might like
PHP页面中文乱码分析
2013/10/29 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
营业经理岗位职责
2013/11/10 职场文书
收银出纳员岗位职责
2014/02/23 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
婚礼主持结束词
2014/03/13 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
离婚起诉书范本
2015/05/18 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
小学毕业感言200字
2015/07/30 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS