Example #1
0
 public function testCompareStrings()
 {
     $random_string = \SecureFuncs\SecureFuncs::randomString(12);
     $this->assertTrue(\SecureFuncs\SecureFuncs::compareStrings($random_string, $random_string));
 }
Example #2
0
 /**
  * Leave param2 empty if you want to generate the qrcode yourself using the returned data
  * @param bool $returnimage
  * @return array
  * @throws \Endroid\QrCode\Exceptions\ImageFunctionUnknownException
  */
 public function createQrCode($returnimage = false)
 {
     // delete old qr codes
     $this->newBuilder()->delete('qr_activation')->where('ip = :ip')->setParameter('ip', filter_input(INPUT_SERVER, 'REMOTE_ADDR'))->execute();
     // Random code
     $new_code = \SecureFuncs\SecureFuncs::randomString(64);
     // insert qr code into the database
     $this->newBuilder()->insert('qr_activation')->values(array('ip' => ':ip', 'qr_code' => ':qr', 'expires' => ':expires'))->setParameter(':qr', $new_code)->setParameter(':ip', filter_input(INPUT_SERVER, 'REMOTE_ADDR'))->setParameter(':expires', date('Y-m-d H:i:s', strtotime('+30seconds')))->execute();
     if ($returnimage === true && !headers_sent()) {
         header('Content-type: image/png');
         $link = ADVANCEDLOGINSCRIPT_QR_PAGE;
         $link = str_replace('{code}', $new_code, $link);
         $qr_image = new \Endroid\QrCode\QrCode();
         $qr_image->setText($link)->setSize(300)->setPadding(20)->setErrorCorrection('high')->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))->setLabel('Valid for 30 seconds')->setLabelFontSize(16)->render();
     } else {
         $qr_image = false;
     }
     $_SESSION[ADVANCEDLOGINSCRIPT_QR_COOKIEKEY]['qr'] = $new_code;
     $this->destroyOldQrCodes();
     return array('qr' => $new_code, 'qr_image' => $qr_image);
 }