Пример #1
0
 public function postAdd()
 {
     if ($_POST['title'] != '' && $_POST['year'] != '' && $_POST['author'] != '' && isset($_FILES) && isset($_POST)) {
         $uploadOk = 1;
         $unwanted_array = array('Š' => 'S', 'š' => 's', 'Ž' => 'Z', 'ž' => 'z', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y');
         /*Code php d'upload de l'image d'apres : http://www.w3schools.com/php/php_file_upload.asp */
         $target_dir = './storage/films/';
         /*On recupere le titre de l'image en lowercase et on le split pour supprimer les espaces et les appostrophes*/
         $title = strtr($_POST['title'], $unwanted_array);
         $imgTitle = $title;
         $imgTitle = strtolower($imgTitle);
         $imgTitle = str_replace(' ', '', $imgTitle);
         $imgTitle = str_replace("'", '', $imgTitle);
         /*On ajoute au titre l'année, exemple : topgun_1994*/
         $imgTitle .= '_' . $_POST['year'];
         /*On ajoute egalement l'extension*/
         switch ($_FILES["fileToUpload"]["type"]) {
             case 'image/jpeg':
                 $imgTitle .= '.jpg';
                 break;
             case 'image/png':
                 $imgTitle .= '.png';
                 break;
             case 'image/gif':
                 $imgTitle .= '.gif';
                 break;
             default:
                 $imgTitle .= '.jpg';
                 break;
         }
         $target_file = $target_dir . $imgTitle;
         $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
         // Vérifie qu'il s'agit bien d'une image et non d'un virus ou quoi que ce soit d'autre
         if (isset($_POST["submit"])) {
             $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
             if ($check !== false) {
                 $uploadOk = 1;
             } else {
                 $uploadOk = 0;
                 $this->setError("Le fichier est invalide, attention!!!");
             }
         }
         // Regarde s'il existe déjà une image ainsi
         if (file_exists($target_file)) {
             $this->setError("Désolé, un film portant ce nom et à cette date existe déjà.");
             $uploadOk = 0;
         }
         // Vérifie la taille de l'image
         if ($_FILES["fileToUpload"]["size"] > 500000) {
             $this->setError("Désolé mais votre fichier est trop grand");
             $uploadOk = 0;
         }
         // Regarde le format car on ne veut pas de psd, de tiff, de bnp ... ou je ne sais quoi d'autre
         if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
             $this->setError("Fichier incompatible : Seulement des images en Jpg, Png ou Gif.");
             $uploadOk = 0;
         }
         // On vérifie qu'il n'y a pas d'erreurs : $uploadOK == 0
         if ($uploadOk == 0) {
             $this->setError("Votre ajout n'a pas été enregistrée");
             // Si tout es ok on essaie d'uploader le fichier sinon il y a eu une erreur
         } else {
             if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
                 $film = new Film();
                 //On sanitize les données
                 $dbTitle = htmlspecialchars($_POST['title']);
                 $dbAuthor = htmlspecialchars($_POST['author']);
                 $arrayRequest = array('fb_id' => $_SESSION['fbId'], 'title' => $dbTitle, 'annee' => $_POST['year'], 'author' => $dbAuthor, 'image' => $imgTitle, 'vote' => 0);
                 $ok = $film->addByArray($arrayRequest);
                 // Le résultat placé dans $ok vaudra 1 si la requête a pu s'exécuter correctement
                 // Création du message indiquant si l'insertion a réussi
                 if ($ok == true) {
                     $this->setSuccess("Merci, votre ajout a bien était enregistré!");
                 } else {
                     $this->setError("Un problème est survenu lors de l'ajout, veuillez réessayer");
                 }
             } else {
                 $this->setError("Un problème est survenu lors de l'ajout, veuillez réessayer");
             }
         }
     } else {
         $this->setError("Vous devez remplir tous les champs et l'image est obligatoire!!!");
     }
     return view('pages/add');
 }