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); } }