记得回到我做Python的时候,它似乎是一个仍然在运行的循环,从而阻止其他任何工作。
我的代码:
<?php
//We're using a newer and older generation algorithms in order to create different results
//The time and date is used as a basic "salting" mechanism, which will make the number hard to determine without knowing the generation time
//I should consider using more secure generation, such as "random_int"
//EXTREMELY WIP!!!
class authGeneration
{
private function gen($maxOne) {
$begin_value_one = date("sih") * rand(1,100);
$auth_value_one = mt_rand($begin_value_one, $maxOne);
echo $auth_value_one;
}
private function genAdd($maxTwo) {
$begin_value_two = date("his") + mt_rand(1000,1000000);
$auth_value_two = rand($begin_value_two, $maxTwo);
echo $auth_value_two;
}
public function finalGen() {
$begin_value_three = date("dmY");
$auth = $this->gen(999999999) + $this->genAdd(999999999); //No more than 999999999, no less than 100000000 (for both)
$add = $auth + $begin_value_three;
echo parseFloat ($add);
}
}
function authCode() {
$obj = new authGeneration();
echo $obj->finalGen();
}
echo "Authentication code: "; authCode();
echo "MD5 Checksum: "; md5(authCode); //Doesn't work :(
authCode();
的第一个回声是有效的,但是,不管我在那里写什么,它下面的行都没有。知道问题是什么吗?或者,如果它是前面提到的“循环”,我该如何逃避呢?随意概述我的愚蠢。
注意,PHP不是我的专长,我主要使用Java和/或C#(因为它们比PHP更有趣),并且决定用PHP做一些有趣的事情,因此我的语言知识相对有限。
答案 0 :(得分:0)
尝试在脚本末尾运行以下内容。
echo "Authentication code: " . authCode();
echo "MD5 Checksum: " . md5(authCode());
我相信你并没有正确地将php附加到echo语句中,因为&#39 ;;&#39;表示PHP中的行尾。
进一步查看它看起来像你的第二个authCode实例缺少开括号和右括号。
最好在authCode()函数中返回一个字符串,并将结果集authCode()设置为等于变量,这样你就不会再调用authCode()函数两次。例如:
function authCode() {
$obj = new authGeneration();
return $obj->finalGen();
}
var $authvar = authCode();
echo "Authentication code: " . authvar;
echo "MD5 Checksum: " . md5(authvar);