每天更改页面密码(可预测的密码;)

时间:2018-09-07 作者:Rafał

我有一个包含调查的WP页面。这项调查每天都会有不同的人访问(为了简单起见,可以说全年每天都有)。我想用密码保护它,密码每天午夜都会被更改。然而,在某种程度上,密码的格式应该是可预测的,以便管理人员共享调查链接(他们可以轻松地计算出今天的密码)-但最终用户无法预测:)

例如,10月2日的密码可能如下所示

var day = currentDay
var month = currentMonth
var pass = "D!" + month + "K#" + day //formula passed to the managers
导致当天的密码:D!10k#2

这个解决方案不一定非得很好,它只是为了防止调查被“出乎意料”的人过度使用。我读过this 但它似乎没有那么重要。

非常感谢您的阅读和任何帮助:)祝您周五愉快!

拉法ł

//edittit似乎我必须创建一个真正的CRON作业来触发wp\\u CRON和the post 我之前提到过,必须根据上述公式修改才能生成密码。我对php知之甚少,所以如果有任何帮助,我将不胜感激。尽管如此,无需解释实施情况:)

//编辑2实际上我觉得这篇文章非常有用,只是需要一些调整,但我远没有自称为php delveloper,所以想寻求帮助。

我删除了所有的调度代码,只剩下一点点php代码。如果由真正的CRON作业触发,下面的代码片段是否足以工作?下面标注的公式是什么:公式?

<?php
    add_action( \'wpse_change_pass_event\', function()
{
        $slug = \'hello-world\'; // Edit this post slug to your needs!

$formula = WHAT HERE? :)

       global $wpdb;
    $wpdb->update(
        $wpdb->posts,
        array( \'post_password\' => $formula ),
        array( \'post_name\'     => $slug    ),
        array( \'%s\' ),
        array( \'%s\' )
    );
});

1 个回复
SO网友:Izhar Aazmi

它不需要很复杂。您只需创建如下模式2018-09-07-ABC (后缀为ABC) 对于日期2018-09-07.

设置密码创建/验证逻辑,如password = md5(\'2018-09-07-ABC\').

管理员如果知道模式,他们可以随时转到任何联机md5 实用程序,如http://www.md5.cz 并输入当前日期的模式。

例如,今天是2018年12月25日。然后他们会进入2018-12-25-ABC 散列将是b21746c6db1c5323f28dd874fe60165f

TIP: 您不需要使用整个32个字符的密码。使用前8个字符(或任何所需的长度)会更容易。

示例PHP代码生成长度为8的密码:

$md5hash  = md5(date(\'Ymd\') . \'-ABC\');
$password = substr($md5hash, 0, 8);
Note: 生成密码时,请注意服务器上使用的时区。

结束

相关推荐

使用admin-ajax.php进行AJAX轮询

是否可以在WordPress中使用admin ajax进行ajax轮询。例如,每300ms进行一次php?我已经尝试过了,似乎使用admin ajax执行ajax请求所需的时间比setTimeOut间隔要长。我有一个带有setTimeOut的递归函数,用于轮询php中设置的会话变量,以便在前端显示进度条,因此间隔需要非常快。作为一种替代方法,我能够对一个独立的php文件执行ajax请求,该文件响应会话变量。这似乎不是WordPress中实现ajax的规定方法。它在我的系统上工作,但另一个测试人员出现错误(