Esempio n. 1
0
 public function go()
 {
     try {
         // select visitor type (user or guest)
         if (self::CheckSession()) {
             $visitor = new User($_SESSION['user']['name']);
         } elseif (self::checkCookies()) {
             $visitor = new User($_COOKIE['name']);
         } else {
             $visitor = new Guest();
         }
         // select action
         $action = $visitor->getAction();
         // perform action
         if ($action) {
             switch ($action) {
                 case "login":
                     if ($visitor->auth()) {
                         $visitor = new User($visitor->getName());
                         $visitor->login();
                     }
                     break;
                 case "register":
                     if ($visitor->register()) {
                         $visitor = new User($visitor->getName());
                         $visitor->login();
                     }
                     break;
                 case "logout":
                     $visitor->logout();
                     break;
                 case "delete":
                     $visitor->remove();
                     break;
             }
             $this->reload();
         }
         // show html
         if ($visitor instanceof User) {
             $this->templateVars['name'] = $visitor->getName();
             $this->templateVars['id'] = $visitor->getId();
             $this->templateVars['regdate'] = $visitor->getRegDate();
             $this->templateVars['lastvisit'] = $visitor->getLastVisit();
             $this->showTemplate('inner');
         } elseif ($visitor instanceof Guest) {
             if (isset($_SESSION['message'])) {
                 $this->templateVars['message'] = $_SESSION['message'];
                 unset($_SESSION['message']);
             }
             if (isset($_SESSION['guest']['entered_name'])) {
                 $this->templateVars['entered_name'] = $_SESSION['guest']['entered_name'];
                 unset($_SESSION['guest']['entered_name']);
             }
             $this->showTemplate('login');
         } else {
             throw new \Exception();
         }
     } catch (\Exception $e) {
         $_SESSION['message'] = $e->getMessage();
         $this->reload();
     }
 }