Пример #1
0
 private function newCookie()
 {
     $randomStringGenerator = new generateRandomString(30, true, 50, 300);
     $randomString = $randomStringGenerator->run();
     $this->key = Hasher::generateHmacHash($randomString) . " # " . $randomString;
     $aSingleDay = 24 * 60 * 60;
     $cookieExpireTime = time() + $aSingleDay;
     setcookie("educaskS", $this->key, $cookieExpireTime, null, null, null, true);
 }
Пример #2
0
function installContent()
{
    if (!isset($_SESSION['configureComplete'])) {
        header('Location: install.php?action=configure');
        return;
    }
    $general = new generateRandomString(30);
    $token = $general->run();
    $_SESSION['token'] = $token;
    $_SESSION['moduleStatus'] = 'Installing...';
    $_SESSION['moduleProgress'] = 0;
    $toReturn = '<h1>Installing Educask</h1>';
    $toReturn .= '<p>Please be patient while I install Educask.</p>';
    $toReturn .= '<div id="progressBar"><div id="progress" style="width: 0;"></div></div>';
    $toReturn .= '<p id="currentStep">Installing...</p>';
    $toReturn .= '<p id="addLink"></p>';
    $toReturn .= "<script type=\"text/javascript\">\n                        var updateInt = setInterval(function(){doUpdate()}, 1000);\n                        <!--  AJAXInteraction class from dev.fyicenter.com/Interview-Questions/AJAX/How_do_I_handle_concurrent_AJAX_requests_.html -->\n                        function AJAXInteraction(url, callback) {\n                            var req = init();\n                            req.onreadystatechange = processRequest;\n\n                            function init() {\n                              if (window.XMLHttpRequest) {\n                                return new XMLHttpRequest();\n                              } else if (window.ActiveXObject) {\n                                return new ActiveXObject('Microsoft.XMLHTTP');\n                              }\n                            }\n                            function processRequest () {\n                              if (req.readyState != 4) {\n                                return;\n                              }\n                              if (req.status != 200) {\n                                return;\n                              }\n                              if (callback) callback(req.responseText);\n                            }\n                            this.doGet = function() {\n                              req.open('GET', url, true);\n                              req.send(null);\n                            }\n                        }\n                        function doUpdate() {\n                             var progress = new AJAXInteraction('installModules.php?action=percent&token={$token}',\n                              function(data) {\n                                if(parseInt(data) >= 100) {\n                                    clearInterval(updateInt);\n                                }\n                                var progress = document.getElementById('progress');\n                                progress.style.width = data + '%';\n                              });\n                              progress.doGet();\n                              var message = new AJAXInteraction('installModules.php?action=status&token={$token}',\n                              function(data) {\n                                 var statusElem = document.getElementById('currentStep');\n                                 statusElem.innerHTML = data;\n                              });\n                              message.doGet();\n                        }\n                         var install = new AJAXInteraction('install.php?action=doInstall&token={$token}',\n                            function() {\n                                var statusElem = document.getElementById('currentStep');\n                                 statusElem.innerHTML = 'Done';\n                                 var addLink = document.getElementById('addLink');\n                                 addLink.innerHTML = '<a href=\"install.php?action=finish\" class=\"button\">Continue</a>.';\n                            }\n                         );\n                         install.doGet();\n                  </script>";
    $_SESSION['installComplete'] = true;
    return $toReturn;
}
Пример #3
0
 private function regenerate()
 {
     $tokenGenerator = new generateRandomString(5, true);
     $this->knownToken = $tokenGenerator->run();
 }
Пример #4
0
 public function generateNewForgotPassword($userID)
 {
     if (CurrentUser::getUserSession()->isLoggedIn()) {
         return false;
     }
     if (!is_numeric($userID)) {
         return false;
     }
     $database = Database::getInstance();
     if (!$database->isConnected()) {
         return false;
     }
     $randomString = new generateRandomString(50, true, 37, 136);
     $existingTokens = $database->getData('token', 'forgotPassword');
     if ($existingTokens === false) {
         return false;
     }
     if ($existingTokens === null) {
         $existingTokens = array();
     }
     do {
         $token = $randomString->run();
     } while (in_array(array('token' => $token), $existingTokens));
     $date = new DateTime();
     $date = $date->format('Y-m-d H:i:s');
     $token = $database->escapeString($token);
     $date = $database->escapeString($date);
     $userID = $database->escapeString($userID);
     $result = $database->insertData('forgotPassword', 'token, requestDate, userID', "'{$token}', '{$date}', {$userID}");
     if ($result === false) {
         return false;
     }
     return $this->getForgotPasswordByToken($token);
 }