function creationavatarAction() { $this->view->title = "Créer votre avatar"; $this->view->action = "creationavatar"; $this->user = Zend_Auth::getInstance()->getIdentity(); $avatar = new Avatar(); $classe = new Classe(); $ville = new Ville(); $ava = array(); $erreurs = array(); $this->view->classe = $classe->fetchAll(); $this->view->ville = $ville->fetchAll(); if ($this->_request->isPost()) { Zend_Loader::loadClass('Zend_Filter_StripTags'); $filter = new Zend_Filter_StripTags(); $ava['avatarpseudo'] = trim($filter->filter($this->_request->getPost('avatarpseudo'))); $ava['classe'] = trim($filter->filter($this->_request->getPost('classe'))); $ava['ville'] = trim($filter->filter($this->_request->getPost('ville'))); if (!preg_match('`^[[:alnum:]]{3,20}$`', $ava['avatarpseudo'])) { $erreurs['avatarpseudo'] = '<span class="erreur">Nom incorrect.</span>'; } if ($avatar->findByNom($ava['avatarpseudo'])) { $erreurs['avatarpseudo'] = '<span class="erreur">Veuillez choisir un nom différent.</span>'; } if (empty($ava['classe'])) { $erreurs['classe'] = '<span class="erreur">Vous devez choisir une classe.</span>'; } if (empty($ava['ville'])) { $erreurs['ville'] = '<span class="erreur">Vous devez choisir un village.</span>'; } $ok = true; foreach ($erreurs as $erreur) { if ($erreur != "") { $ok = false; } } if ($ok) { if (!empty($_FILES['fichier']['name'])) { $max_size = 100000; // Taille max en octets du fichier $width_max = 100; // Largeur max de l'image en pixels $height_max = 100; // Hauteur max de l'image en pixels $nom_file = $_FILES['fichier']['name']; $taille = $_FILES['fichier']['size']; $tmp = $_FILES['fichier']['tmp_name']; $extension = substr($nom_file, -4); if ($extension == '.png') { $infos_img = getimagesize($_FILES['fichier']['tmp_name']); if ($infos_img[0] <= $width_max && $infos_img[1] <= $height_max && $_FILES['fichier']['size'] <= $max_size) { $fichier_temp = $_FILES['fichier']['tmp_name']; } else { // Sinon on affiche une erreur pour les dimensions et taille de l'image $erreurs["portrait"] = '<span class="erreur">Les dimensions et/ou la taille de l\'image dépassent nos limites exigées.</span>'; } } else { // Sinon on affiche une erreur pour l'extension $erreurs["portrait"] = '<span class="erreur">Votre image doit être en .png .</span>'; } } else { $extension = ".png"; $fichier_default = $_SERVER['DOCUMENT_ROOT'] . '/Magic_TA/public/images/avatar/default_avatar.png'; } if ($extension == '.png') { $data = array('id_utilisateur' => $this->user->id_utilisateur, 'id_classe' => $ava['classe'], 'id_case' => $ville->findById($ava['ville'])->id_case, 'nom_avatar' => $ava['avatarpseudo']); $target = $_SERVER['DOCUMENT_ROOT'] . '/Magic_TA/public/images/avatar/'; // Repertoire cible $avatar->insert($data); $avatar = $avatar->findByNom($ava['avatarpseudo']); $idava = $avatar->id_avatar; $fichier = $idava . $extension; if (!empty($_FILES['fichier']['name'])) { move_uploaded_file($fichier_temp, $target . $fichier); } else { copy($fichier_default, $target . $fichier); } } $ok = true; foreach ($erreurs as $erreur) { if ($erreur != "") { $ok = false; } } if ($ok) { $this->_redirect('avatar/avatar'); return; } } $this->view->avatar = $ava; $this->view->erreurs = $erreurs; } }