public function updatesProfil() { $this->allowTo(['user', 'Admin']); $login = new AuthentificationModel(); $usermodel = new usermodel(); $infosUser = $this->getUser(); $projectModel = new ProjetModel(); $photoModel = new PhotoModel(); $errors = array(); $params = array(); // Les paramètres qu'on envoi a la vue, on utilisera les clés du tableau précédé par un $ pour les utiliser dans la vue // Faire vérification des champs ICI if (!empty($_POST)) { // si c'est le formulaire de modif du profil qui a été soumis if ($_POST["submit"] == "edit_profil") { // Faire vérification des champs ICI if (empty($_POST['nom'])) { $errors[] = 'le nom est vide'; } if (empty($_POST['prenom'])) { $errors[] = 'le prenom est vide'; } if (empty($_POST['email'])) { $errors[] = 'l\'email est vide'; } if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) !== false) { $errors[] = 'L\'email est invalide'; } if (empty($_POST['description'])) { $errors[] = 'Votre description ne doit pas est vide'; } if (empty($_POST['description'])) { $errors[] = 'Votre description ne doit pas est vide'; } if (empty($_POST['linkedin'])) { $errors[] = 'Votre linkedin ne doit pas est vide'; } // il n'y a pas d'erreurs, inserer l'utilisateur a bien rentré en bdd : if (count($errors) == 0) { $usermodel->update(['nom' => $_POST['nom'], 'prenom' => $_POST['prenom'], 'email' => $_POST['email'], 'description' => $_POST['description'], 'date_update' => 'NOW()'], $infosUser['id']); $login->refreshUser(); $params['success_updateprofil'] = 'votre nouveau profil à bien été enregistré !'; } else { $params['errors_updateprofil'] = $errors; } } elseif ($_POST["submit"] == "add_project") { $maxSize = 1024 * 3 * 1000; //3Mo $dirUpload = 'photo'; $mimeTypeAllowed = array('image/jpg', 'image/jpeg', 'image/png'); if (empty($_POST['project_title'])) { $errors[] = 'le titre est vide'; } if (empty($_POST['description'])) { $errors[] = 'la description du projet est vide'; } if (isset($_FILES['photo']) && $_FILES['photo']['size'] != 0) { // On vérifie la taille du fichier if ($_FILES['photo']['size'] > $maxSize) { $errors[] = 'Ficher trop volumineux'; } } else { $errors[] = 'Veuillez ajouter au moins une photo au projet'; } if (empty($_POST['caption'])) { $errors[] = 'la description de la photo du projet est vide'; } if (count($errors) == 0) { $projet = $projectModel->insert(['project_title' => $_POST['project_title'], 'description' => $_POST['description'], 'date_publish' => date('Y-m-d'), 'id_user' => $infosUser['id']]); //fichier image projets $finfo = new \finfo(); // chemin matériel du dossier pr upload fichier $uploads_dir_projets = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REDIRECT_W_BASE'] . '/assets/projets'; $tmp_name = $_FILES['photo']['tmp_name']; $namePhoto = $infosUser['id'] . $_FILES['photo']['name']; // On upload le fichier //$uploadAvatar = move_uploaded_file(filename, destination) $uploadAvatar = move_uploaded_file($tmp_name, $uploads_dir_projets . '/' . $namePhoto); //Pour que le nom soit unique et eviter les probleme de nom de fichier on l'incrémente de l'id appartenant à user //supprimer ou remplacer le fichier $photo = $photoModel->insert(['id_projet' => $projet['id'], 'photo' => 'projets/' . $namePhoto, 'caption' => $_POST['caption']]); $params['success_addprojet'] = 'votre nouveau projet à bien été rajouté vous pouvez rajouter des images plus tard !'; } else { $params['errors_addprojet'] = $errors; } } elseif ($_POST["submit"] == "modify_project") { } } $params['projets'] = $usermodel->getUserProjects($infosUser['id']); $this->show('profil/updatesprofil', $params); }