public function profil() { $user = $this->getUser(); $userManager = new UserManager(); $error = ""; $succes = ""; $id = ""; $username = ""; $email = ""; $firstname = ""; $lastname = ""; $streetname = ""; $phonenumber = ""; $zipcode = ""; $pic_name = $this->getUser()['pic_name']; $user_name_regex = "/^[\\p{L}0-9._-]{2,100}\$/u"; if (!empty($_POST)) { $id = $user["id"]; $email = trim(strip_tags($_POST['email'])); $username = trim(strip_tags($_POST['username'])); $firstname = trim(strip_tags($_POST['firstname'])); $lastname = trim(strip_tags($_POST['lastname'])); $streetname = trim(strip_tags($_POST['streetname'])); $zipcode = trim(strip_tags($_POST['zipcode'])); $phonenumber = trim(strip_tags($_POST['phonenumber'])); //|||||||||||||||||||| username valide ? if (strlen($username) < 4) { $error = "Votre Pseudo doit comporter 4 lettres minimum !"; } if (!preg_match($user_name_regex, $username)) { $error = "Votre Pseudo ne doit pas contenir de caractère spéciaux !"; } else { if ($username !== $_SESSION['user']['username']) { $foundPseudo = $userManager->usernameExists($username); if (!empty($foundPseudo)) { $error = "Ce pseudo est déjà enregistré ici !"; } } } //|||||||||||||||| Email valide ? if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error = "Email non valide"; } else { if ($email !== $_SESSION['user']['email']) { $foundEmail = $userManager->emailExists($email); if (!empty($foundEmail)) { $error = "Ce pseudo est déjà enregistré ici !"; } } } // |||||||||||||||| IMAGE valide ? if ($_FILES['pic_name']['error'] != 4) { $tmpName = $_FILES['pic_name']['tmp_name']; if ($_FILES['pic_name']['error'] != 0) { switch ($_FILES['pic_name']['error']) { case 1: $error = "Votre fichier est trop gros !"; break; case 4: $error = "Aucun fichier n'a été selectionné !"; break; default: $error = "Une erreur est survenue lors du chargement de votre image LOL"; break; } } $info = finfo_open(FILEINFO_MIME_TYPE); $mime = finfo_file($info, $tmpName); $acceptedMime = array("image/jpeg", "image/gif", "image/png"); if (!in_array($mime, $acceptedMime)) { $error = "Type de fichier refuser "; } if ($_FILES == $_SESSION['user']['pic_name']) { } if (empty($error)) { $extention = pathinfo($_FILES['pic_name']['name'], PATHINFO_EXTENSION); $pic_name = md5($tmpName . time() . uniqid()) . "." . $extention; $destinationDirectory = __DIR__ . "/../../public/assets/img/uploads/"; if (file_exists($destinationDirectory . "originals/" . $pic_name)) { $pic_name = md5($tmpName . time() . uniqid()) . uniqid() . "." . $extention; } move_uploaded_file($tmpName, $destinationDirectory . "originals/" . $pic_name); $img = new \abeautifulsite\SimpleImage($destinationDirectory . "originals/" . $pic_name); $img->best_fit(600, 600)->save($destinationDirectory . "mediums/" . $pic_name); $img->thumbnail(150, 150)->save($destinationDirectory . "thumbnails/" . $pic_name); } if (empty($error)) { $succes = "Bravo !"; } } //|||||||||||||||| ZIPCODE valide ? if ($zipcode <= "75000" || $zipcode >= "75021") { $error = "Vous devez habiter Paris pour vous inscrire à notre service !"; } //|||||||||||||||| Téléphone valide ? if (preg_match("/^[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{2}\$/", $phonenumber)) { // $phonenumber is valid $error = "Votre numéro de téléphone n'est pas valide !"; } //|||||||||||||||| 2er cihffre du Telephone coresponde a 01,02,03,04,05,06,07,08 ou 09 if (substr($phonenumber, 0, 2) < "01" || substr($phonenumber, 0, 2) > "09") { $error = "Votre numéro de téléphone n'est pas valide !"; } //si valide... if (empty($error)) { //insérer en base $modifySubscriber = ["username" => $username, "email" => $email, "firstname" => $firstname, "lastname" => $lastname, "zip_code" => $zipcode, "street_name" => $streetname, "phone_number" => $phonenumber, "date_modified" => date("Y-m-d H:i:s"), "pic_name" => $pic_name]; $userManager = new \Manager\UserManager(); $userManager->update($modifySubscriber, $id); //Crée une instance et refresh le contenu $am = new AuthentificationManager(); $am->refreshUser(); $succes = "Votre profil a bien été enregistré !"; } } $data = []; $data['error'] = $error; $data['succes'] = $succes; $data['username'] = $username; $data['email'] = $email; $data['firstname'] = $firstname; $data['lastname'] = $lastname; $data['zipcode'] = $zipcode; $data['streetname'] = $streetname; $data['phonenumber'] = $phonenumber; $data['pic_name'] = 'default.png'; $this->show('user/profile', $data); }