PHP和MySQL有无限循环?

时间:2014-02-02 13:57:12

标签: php mysql mysqli

我正在创建一个系统,我发送一个令牌(在PHP中生成并存储在MySQL数据库中)并使用form.on提交我将该令牌与证书一起验证。

问题在于处理所有这些的类文件。函数set_token()表现得很荒谬。

每10-12秒设置一次令牌并无限制地存储它。甚至在我关闭浏览器之后。连接既没有终止,又从我不知道的来源中再次调用该功能。

这是类文件..

class auth {
    private $uplink;

    public function __construct(){
        $this->uplink=new mysqli(HOST_NAME,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
    }

    public function __destruct(){
        $this->uplink->close();
    }

    public function query_noreturn($q) {
       $query = $q;

       if($this->uplink->query($q)){
          return true;
       }
       else {
          return false;
       }
    }

   public function gen($len){
    $data="ASDFGHJKLQPOWERITYULZXCVMBNasdlkjfhgzmnxcbvqpwoeiuty_1597863420@";
    $rgen='';
    for($i=0;$i<=$len;$i++){
        $rgen.=$data[rand(0,strlen($data)-1)];
    }
    $generate=hash('sha256',$rgen);
    return $generate;
        }

    public function set_token(){
        $token=$this->gen(20);
        $f=time();
        $query="INSERT INTO token_auth(token_val,token_tm)"."VALUES('$token','$f')";
        if(($this->query_noreturn($query))){
            return $token;
        }
        else{
            return false;
        }   
    }
}

这是第一次设置它的php文件。

$auth = new auth();
$key = $auth->set_token();

0 个答案:

没有答案