WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
<p><strong>登陆邮件提醒实现方法</strong><br>
前提是空间有邮件功能,测试有无邮件功能的方法:登录界面点击“忘记密码”,有邮件发到你邮箱就有邮件功能。</p>
<p>
<strong>一、登录成功提醒</strong><br>
就像银行的登录提醒一样,如果有人登录了系统,就会发一封邮件到邮箱,提醒你有人登录了,如果当时不是你登录,就要引起警惕了。将以下代码放入主题的functions.php中:</p>
<p>
</p>
<div>
<div>
<div id="highlighter_114356">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
<div>
20</div>
<div>
21</div>
<div>
22</div>
</td>
<td>
<div>
<div>
<code>/*****************************************************</code>
</div>
<div>
<code> </code><code>函数名称:wp_login_notify v1.0 by DH.huahua. </code>
</div>
<div>
<code> </code><code>函数作用:有登录wp后台就会email通知博主</code>
</div>
<div>
<code>******************************************************/</code>
</div>
<div>
<code>function</code> <code>wp_login_notify()</code>
</div>
<div>
<code>{</code>
</div>
<div>
<code> </code><code>date_default_timezone_set(</code><code>'PRC'</code><code>);</code>
</div>
<div>
<code> </code><code>$admin_email</code> <code>= get_bloginfo (</code><code>'admin_email'</code><code>);</code>
</div>
<div>
<code> </code><code>$to</code> <code>= </code><code>$admin_email</code><code>;</code>
</div>
<div>
<code> </code><code>$subject</code> <code>= </code><code>'你的博客空间登录提醒'</code><code>;</code>
</div>
<div>
<code> </code><code>$message</code> <code>= </code><code>'<p>你好!你的博客空间('</code> <code>. get_option(</code><code>"blogname"</code><code>) . </code><code>')有登录!</p>'</code> <code>. </code>
</div>
<div>
<code> </code><code>'<p>请确定是您自己的登录,以防别人攻击!登录信息如下:</p>'</code> <code>. </code>
</div>
<div>
<code> </code><code>'<p>登录名:'</code> <code>. </code><code>$_POST</code><code>[</code><code>'log'</code><code>] . </code><code>'</p>'</code> <code>.</code>
</div>
<div>
<code> </code><code>'<p>登录时间:'</code> <code>. </code><code>date</code><code>(</code><code>"Y-m-d H:i:s"</code><code>) . </code><code>'</p>'</code> <code>.</code>
</div>
<div>
<code> </code><code>'<p>登录IP:'</code> <code>. </code><code>$_SERVER</code><code>[</code><code>'REMOTE_ADDR'</code><code>] . </code><code>'</p>'</code><code>; </code>
</div>
<div>
<code> </code><code>$wp_email</code> <code>= </code><code>'no-reply@'</code> <code>. preg_replace(</code><code>'#^www\.#'</code><code>, </code><code>''</code><code>, </code><code>strtolower</code><code>(</code><code>$_SERVER</code><code>[</code><code>'SERVER_NAME'</code><code>]));</code>
</div>
<div>
<code> </code><code>$from</code> <code>= </code><code>"From: \""</code> <code>. get_option(</code><code>'blogname'</code><code>) . </code><code>"\" <$wp_email>"</code><code>;</code>
</div>
<div>
<code> </code><code>$headers</code> <code>= </code><code>"$from\nContent-Type: text/html; charset="</code> <code>. get_option(</code><code>'blog_charset'</code><code>) . </code><code>"\n"</code><code>;</code>
</div>
<div>
<code> </code><code>wp_mail( </code><code>$to</code><code>, </code><code>$subject</code><code>, </code><code>$message</code><code>, </code><code>$headers</code> <code>);</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code> </code>
</div>
<div>
<code>add_action(</code><code>'wp_login'</code><code>, </code><code>'wp_login_notify'</code><code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>二、登录失败提醒</strong><br>
有人尝试登陆你的系统,但是没有成功,这种反复尝试的动作本身就需要被记录下来,发给博主,这样,只要有错误的登录,就会发一封邮件到自己的邮箱,将对方尝试的登录名和登录密码发送到你邮箱。将以下代码放入主题的functions.php中:</p>
<div>
<div>
<div id="highlighter_209461">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
<div>
20</div>
<div>
21</div>
<div>
22</div>
<div>
23</div>
</td>
<td>
<div>
<div>
<code>/*****************************************************</code>
</div>
<div>
<code> </code><code>函数名称:wp_login_failed_notify v1.0 by DH.huahua. </code>
</div>
<div>
<code> </code><code>函数作用:有错误登录wp后台就会email通知博主</code>
</div>
<div>
<code>******************************************************/</code>
</div>
<div>
<code>function</code> <code>wp_login_failed_notify()</code>
</div>
<div>
<code>{</code>
</div>
<div>
<code> </code><code>date_default_timezone_set(</code><code>'PRC'</code><code>);</code>
</div>
<div>
<code> </code><code>$admin_email</code> <code>= get_bloginfo (</code><code>'admin_email'</code><code>);</code>
</div>
<div>
<code> </code><code>$to</code> <code>= </code><code>$admin_email</code><code>;</code>
</div>
<div>
<code> </code><code>$subject</code> <code>= </code><code>'你的博客空间登录错误警告'</code><code>;</code>
</div>
<div>
<code> </code><code>$message</code> <code>= </code><code>'<p>你好!你的博客空间('</code> <code>. get_option(</code><code>"blogname"</code><code>) . </code><code>')有登录错误!</p>'</code> <code>. </code>
</div>
<div>
<code> </code><code>'<p>请确定是您自己的登录失误,以防别人攻击!登录信息如下:</p>'</code> <code>. </code>
</div>
<div>
<code> </code><code>'<p>登录名:'</code> <code>. </code><code>$_POST</code><code>[</code><code>'log'</code><code>] . </code><code>'</p>'</code> <code>.</code>
</div>
<div>
<code> </code><code>'<p>登录密码:'</code> <code>. </code><code>$_POST</code><code>[</code><code>'pwd'</code><code>] . </code><code>'</p>'</code> <code>.</code>
</div>
<div>
<code> </code><code>'<p>登录时间:'</code> <code>. </code><code>date</code><code>(</code><code>"Y-m-d H:i:s"</code><code>) . </code><code>'</p>'</code> <code>.</code>
</div>
<div>
<code> </code><code>'<p>登录IP:'</code> <code>. </code><code>$_SERVER</code><code>[</code><code>'REMOTE_ADDR'</code><code>] . </code><code>'</p>'</code><code>; </code>
</div>
<div>
<code> </code><code>$wp_email</code> <code>= </code><code>'no-reply@'</code> <code>. preg_replace(</code><code>'#^www\.#'</code><code>, </code><code>''</code><code>, </code><code>strtolower</code><code>(</code><code>$_SERVER</code><code>[</code><code>'SERVER_NAME'</code><code>]));</code>
</div>
<div>
<code> </code><code>$from</code> <code>= </code><code>"From: \""</code> <code>. get_option(</code><code>'blogname'</code><code>) . </code><code>"\" <$wp_email>"</code><code>;</code>
</div>
<div>
<code> </code><code>$headers</code> <code>= </code><code>"$from\nContent-Type: text/html; charset="</code> <code>. get_option(</code><code>'blog_charset'</code><code>) . </code><code>"\n"</code><code>;</code>
</div>
<div>
<code> </code><code>wp_mail( </code><code>$to</code><code>, </code><code>$subject</code><code>, </code><code>$message</code><code>, </code><code>$headers</code> <code>);</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code> </code>
</div>
<div>
<code>add_action(</code><code>'wp_login_failed'</code><code>, </code><code>'wp_login_failed_notify'</code><code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
效果如下图所示,后面有个登录所在地是用qqwry.dat做了个查询</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="WordPress中访客登陆实现邮件提醒的PHP脚本实例分享" alt="WordPress中访客登陆实现邮件提醒的PHP脚本实例分享" src="https://zhuji.jb51.net/uploads/img/202305/42ec5ffb5f9914c71f781bd047cb67d9.jpg"></p>
<p>
<strong>修改后台登录地址<br>
插件法</strong><br>
不少插件可以实现这样的功能,比如Protected wp-login和Stealth Login Page,直接下载安装即可,这里不多介绍。</p>
<p>
<strong>代码法</strong><br>
不想用插件的话,直接将下面的代码复制到当前主题的 functions.php 文件中:</p>
<div>
<div>
<div id="highlighter_912141">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
</td>
<td>
<div>
<div>
<code>//保护后台登录</code>
</div>
<div>
<code>function</code> <code>login_protection(){ </code>
</div>
<div>
<code> </code><code>if</code><code>(</code><code>$_GET</code><code>[</code><code>'word'</code><code>] != </code><code>'fuck'</code><code>)header(</code><code>'Location: http://blog.gimhoy.com/'</code><code>); </code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>add_action(</code><code>'login_enqueue_scripts'</code><code>,</code><code>'login_protection'</code><code>); </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
这样只有打开 http://siteurl/wp-login.php?word=fuck,才会打开登录页,否则就会自动跳转到 http://blog.gimhoy.com/</p>
<p>
但是博主这样做之后,邮箱里还是每天都收到很多登录失败的提醒邮件,于是采取了一个更加简单粗暴的方法:修改wp-login.php文件名</p>
<p>
比如将wp-login.php修改成gimhoy-login.php,同时还要打开这个文件,将里面所有的wp-login.php替换成gimhoy-login.php。这样登录地址便成了http://siteurl/gimhoy-login.php.跟前面那个方法结合起来,就成了http://siteurl/gimhoy-login.php?word=fuck.</p>
<p>
简单粗暴,目的达成。</p>
頁:
[1]