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获取mysql版本的几种方法小结
Mar 25 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
理解php Hash函数,增强密码安全
Feb 25 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 PHP
PHP两种快速排序算法实例
Feb 15 PHP
PHP获取数组最大值下标的方法
May 12 PHP
PHP6新特性分析
Mar 03 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
PHP设计模式之工厂模式详解
Oct 24 PHP
php app支付宝回调(异步通知)详解
Jul 25 PHP
php反射学习之依赖注入示例
Jun 14 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字符串截取问题
2006/11/28 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
js中将String转换为number以便比较
2014/07/08 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
Python从MP3文件获取id3的方法
2015/06/15 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
python实发邮件实例详解
2019/11/11 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
八年级历史教学反思
2014/01/10 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
酒店员工检讨书
2014/02/18 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
2014年团总支工作总结
2014/11/21 职场文书
文明单位汇报材料
2014/12/24 职场文书
安全生产感想
2015/08/07 职场文书