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版(3)
Oct 09 PHP
用PHP制作静态网站的模板框架(一)
Oct 09 PHP
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 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利用str_replace防注入的方法
2013/11/10 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
js查找父节点的简单方法
2008/06/28 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python字典的常用操作方法小结
2016/05/16 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
python实现统计代码行数的小工具
2019/09/19 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
二手房买卖协议书
2014/04/10 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
认识实习感想
2015/08/10 职场文书
Python 图片添加美颜效果
2022/04/28 Python
python实现双链表
2022/05/25 Python