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的FTP学习(二)[转自奥索]
Oct 09 PHP
一个ftp类(ini.php)
Oct 09 PHP
PHP4中实现动态代理
Oct 09 PHP
php 获取远程网页内容的函数
Sep 08 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
php验证session无效的解决方法
Nov 04 PHP
php查看网页源代码的方法
Mar 13 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
JS实现滑动插件
2020/01/15 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
Python访问纯真IP数据库脚本分享
2015/06/29 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
python数据结构之列表和元组的详解
2017/09/23 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python join方法使用详解
2019/07/30 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
中科软笔试题和面试题
2014/10/07 面试题
法警的竞聘演讲稿
2014/01/02 职场文书
活动策划邀请函
2014/02/06 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
主题团日活动总结
2014/06/25 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
毕业实习计划书
2015/01/16 职场文书
事业单位聘任报告
2015/03/02 职场文书
上甘岭观后感
2015/06/10 职场文书
2016新年年会主持词
2015/07/06 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android