在骰子计划中获得骰子计划的胜利者

时间:2017-04-21 17:37:11

标签: javascript php cron

我想在cron作业中运行PHP脚本。我的主人限制了我很多,我必须每小时等待才能重复这个cron工作。

我有一个120s的计时器,使用javascript递减并更新为0,以防止失步。

我想做一些“滚动骰子”程序,其中每个加入的人都会进入某种大厅阵列,大厅阵列应该迭代到我的cron作业php脚本并在那里挑选一个胜利者。 / p>

我想在cronjob中实现这个structure

我如何计算计时器:

<?php
$timestamp = time();
$nextTwoMinute = ceil($timestamp/120) * 120;
echo json_encode(($nextTwoMinute - $timestamp));    
?>

我如何通过JS递减:

var add_secs = " s";
var time_s = setInterval(update_time, 1000);

function reqListener () {
    console.log(this.responseText);
}
var currTime = "";
 //New request object
oReq.onload = function() {
    currTime = this.responseText;
};
window.onload = function() {
    //dom not only ready, but everything is loaded
    var oReq = new XMLHttpRequest();
    oReq.open("get", "scripts/php/calc.inc.php", true);
    oReq.send();
};
function update_time() {
    document.getElementById("time_left").value = currTime<0 ? currTime=117:currTime--;
    $("input.circle").val(currTime);
    $("input.circle").trigger('change');
}

我在没有使用cron作业的情况下找到了解决问题的方法:

$key=md5('ILOVEYOU');
    $serverseed = floor(time() / 5);
    srand($serverseed);
    $result = rand();

    $modulus_result= $result % 100;

如果有人对解决方案感兴趣:这会产生一个5秒的随机整数!

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法:

   <?php  
    $key=md5('ILOVEYOU');
    $serverseed = floor(time() / 5);
    srand($serverseed);
    $result = rand();

    $modulus_result= $result % 100;

    echo "before: ".$modulus_result."<br>";
    echo "after: ".encrypt($modulus_result, $key)."<br>";
    echo decrypt($modulus_result, $key);

    function decrypt($string, $key){
        $string = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($string), MCRYPT_MODE_ECB));
        return $string;
    }   
    function encrypt($string, $key){
        $string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string, MCRYPT_MODE_ECB)));
        return $string;
    }   

?>

通过使用time(),你可以将时间()的圆形商引入nºsec你希望rand数是活跃的,然后使用模数来限制范围。在一段时间内会有一个随机数,它总是与使用time()作为参考相同。

我希望这可以帮助一些人。 您甚至可以加密此数据以进行跨平台传输。