Example #1
0
 public function sign()
 {
     $errors = array();
     $VLog = new VLog();
     $data = $VLog->getSignData();
     if ($data) {
         $bool = true;
         foreach ($data as $elem) {
             if ($elem == "" && $bool) {
                 $errors[] = 1;
                 $bool = false;
             }
         }
         if ($data['password'] != $data['r_password']) {
             $errors[] = 2;
             $bool = false;
         }
         if ($bool) {
             $n = ucfirst($data['name']);
             $s = ucfirst($data['surname']);
             $SSN = strtoupper($data['ssn']);
             $p = $data['phone'];
             $m = strtolower($data['mail']);
             $pass = $data['password'];
             try {
                 $b = new DateTime($data['birth']);
                 $now = new DateTime();
                 $diff = $now->diff($b);
                 if (intval($diff->format('%Y')) < 18) {
                     $errors[] = 6;
                     $bool = false;
                 } else {
                     $new_user = new DUser($n, $s, $SSN, $p, $m, $b, $pass);
                 }
             } catch (Exception $e) {
                 $errors[] = 3;
                 $bool = false;
             }
         }
     } else {
         $errors[] = 1;
     }
     $n_errors = count($errors);
     if ($n_errors == 0) {
         $FUser = new FUser();
         $hypS = $FUser->is_a_user($SSN);
         //controlla se c'è già un utente con quel codice fiscale
         if ($hypS) {
             $errors[] = 4;
             $bool = false;
         }
         $hypM = $FUser->mail_in($m);
         if ($hypM) {
             $errors[] = 7;
             $bool = false;
         }
         if (!$hypS && !$hypM) {
             try {
                 global $config;
                 $Mailer = new UEmail();
                 $VMail = new VMail();
                 $VMail->setLayout("confirmation");
                 $VMail->setDest("{$n} {$s}");
                 $VMail->setCode($new_user->getCode());
                 $message = $VMail->processTemplate();
                 if ($Mailer->send_mail($m, $n, $config['name'] . " confirmation mail", $message, true)) {
                     $FUser->saveUser($new_user);
                     //salva il nuovo utente (o aggiorna i campi nelle tabella person per un cliente ancora non utente)
                 } else {
                     $errors[] = 5;
                     $bool = false;
                 }
             } catch (Exception $e) {
                 $errors[] = 5;
                 $bool = false;
             }
         }
     }
     if ($bool) {
         return $this->show('sign_outcome', false);
     } else {
         return $this->show('sign_outcome', $errors);
     }
 }