Bonjour j'ai suivie le tutoriel sur la rédimension d'une image sans la déformer pour l'adapté à mes besoins => https://openclassrooms.com/courses/gd-redimensionner-une-image-sans-la-deformer

Voici mon script complet qui fonctionne bien, j'ai bien l'image redimensionner dans mon dossier affiche. Mais j'aimerai converver l'image d'origine pour utiliser le plugin fancybox et agrandir l'image.

Donc je dois enlevé le imagedestroy($ImageChoisie);

Il y a une possibilité de converver l'image d'origine est de le mettre dans un autre dossier ? Si oui comment ? Ou alors dans le même dossier (affiche). Et comment je vais faire pour savoir que l'image d'origine est bien égale à l'image redimensionner ? Pour mon fancybox.


<?php

if(isset($_POST['submit']))
{
$prenom = ucfirst(htmlspecialchars($_POST['prenom']));
$nom = ucfirst(htmlspecialchars($_POST['nom']));
$pseudo = ucfirst(htmlspecialchars($_POST['pseudo']));
$mdp = htmlspecialchars($_POST['mdp']);
$email = htmlspecialchars($_POST['email']);
$verifmdp = htmlspecialchars($_POST['verifmdp']);

$ListeExtension = array('jpg' => 'image/jpeg', 'jpeg'=>'image/jpeg');
$ListeExtensionIE = array('jpg' => 'image/pjpeg', 'jpeg'=>'image/pjpeg');       

if($pseudo == true && $mdp == true && $email == true && $verifmdp == true && $prenom == true && $nom == true)
{
if(email_existe($email)==0) 
{
    if(pseudo_existe($pseudo)==0) 
    {
        if (ctype_alnum(str_replace(array('-', '_'), '', $pseudo)))
        {   
            if(strlen($pseudo) > 2 && strlen($pseudo) < 10 && strlen($prenom) < 10 && strlen($prenom) > 2 && strlen($nom) < 10 && strlen($nom) > 2 &&
            strlen($mdp) < 10 && strlen($mdp) > 2 
            )
            {
                if (preg_match('~[A-Z][a-z]*(-[A-Z][a-z]?)?~', $prenom))
                 {
                        if (preg_match('~[A-Z][a-z]*(-[A-Z][a-z]?)?~', $nom))
                        {

                                if($verifmdp == $mdp)
                                {
                                    if(preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#', $email))
                                    {
                                        if (empty($affiche)) {
                                        $affiche = "defaut.jpg";
                                        }

                                            if ($_FILES['affiche']['size'] <= 2097152)
                                            {

                                                $ImageNews = $_FILES['affiche']['name'];

                                                $ExtensionPresumee = explode('.', $ImageNews);
                                                $ExtensionPresumee = strtolower($ExtensionPresumee[count($ExtensionPresumee)-1]);
                                                if ($ExtensionPresumee == 'jpg' || $ExtensionPresumee == 'jpeg')
                                                {
                                                   $ImageNews = getimagesize($_FILES['affiche']['tmp_name']);
                                                   if($ImageNews['mime'] == $ListeExtension[$ExtensionPresumee]  || $ImageNews['mime'] == $ListeExtensionIE[$ExtensionPresumee])
                                                    {

                                                      $ImageChoisie = imagecreatefromjpeg($_FILES['affiche']['tmp_name']);
                                                      $TailleImageChoisie = getimagesize($_FILES['affiche']['tmp_name']);
                                                      $NouvelleLargeur = 100; //Largeur choisie à 350 px mais modifiable

                                                      $NouvelleHauteur = ( ($TailleImageChoisie[1] * (($NouvelleLargeur)/$TailleImageChoisie[0])) );

                                                      $NouvelleImage = imagecreatetruecolor($NouvelleLargeur , $NouvelleHauteur) or die ("Erreur");

                                                      imagecopyresampled($NouvelleImage , $ImageChoisie  , 0,0, 0,0, $NouvelleLargeur, $NouvelleHauteur, $TailleImageChoisie[0],$TailleImageChoisie[1]);
                                                      imagedestroy($ImageChoisie);
                                                      $NomImageChoisie = explode('.', $_FILES['affiche']['name']);
                                                      $NomImageExploitable = time();

                                                      imagejpeg($NouvelleImage , 'affiche/'.$NomImageExploitable.'.'.$ExtensionPresumee, 100);
                                                      $affiche = 'affiche/'.$NomImageExploitable.'.'.$ExtensionPresumee;

                                                        $mdp = sha1($_POST['mdp'].'@#]##ù%');

                                                        $req2 = $bdd->prepare('INSERT INTO login (pseudo, mdp, email)
                                                        VALUES (:pseudo, :mdp, :email)');
                                                        $req2->execute(array('pseudo' => $pseudo, 'mdp' => $mdp, 'email' => $email));           

                                                        $last = $bdd->lastInsertId();

                                                        $req4 = $bdd->prepare('INSERT INTO membre (id_login, affiche, prenom, nom)
                                                        VALUES (:idlogin, :affiche, :prenom, :nom)');
                                                        $req4->execute(array('idlogin' => $last, 'affiche' => $affiche, 'prenom' => $prenom, 'nom' => $nom
                                                        )); 

                                                        echo "<div class='alert alert-success'>Bravo ! Vous êtes inscrit.</div>";
                                                      }
                                                    else
                                                    {
                                                            echo 'Le type MIME de l\'image n\'est pas bon';
                                                    }
                                                }
                                                else
                                                {
                                                echo 'L\'extension choisie pour l\'image est incorrecte';
                                                }       

                                            }
                                            else
                                            {
                                                echo "<div class='alert alert-danger'>Votre affiche est trop lourde.</div>";
                                            }

                                    }

                                    else
                                    {
                                        echo "<div class='alert alert-danger'>Votre email n'est pas valide.</div>";
                                    }
                                }
                                else
                                {
                                echo "<div class='alert alert-danger'>La confirmation du mot de passe ne correspond pas.</div>";
                                }
                        }
                        else
                        {   
                        echo "<div class='alert alert-danger'>Votre nom ne doit pas contenir de caractères spéciaux.</div>";
                        }               

                }
                else
                {
                echo "<div class='alert alert-danger'>Votre prenom ne doit pas contenir de caractères spéciaux.</div>";
                }

            }
            else
            {
            echo "<div class='alert alert-danger'>Veuillez respecter le format requis pour votre pseudo et votre mot de passe</div>";
            }
        }
        else
        {
        echo "<div class='alert alert-danger'>Votre pseudo ne peut pas contenir de caractères spéciaux (&*@#, etc).</div>";
        }
    }
    else
    {
    echo "<div class='alert alert-danger'>Ce pseudo est déjà utilisé.</div>";
    }
}
else
{
echo "<div class='alert alert-danger'>Cette adresse email est déjà utilisée.</div>";
}
}

else
{
echo "<div class='alert alert-danger'>Veuillez remplir tous les champs.</div>";
}
}
?>

3 réponses


Bonjour.

Et comment je vais faire pour savoir que l'image d'origine est bien égale à l'image redimensionner ?

Quel est l'intérêt de cette question ?
Si tu veux sauvegarder le même fichier avec deux dimensions différentes, pourquoi est-ce que ces deux fichiers devraient avoir les mêmes dimensions ?
Soit tu redimensionnes ton fichier pour avoir les deux versions différentes ou pas.

Serg77
Auteur

Bonjour, je parlais pas dans la dimension, mais de l'image en elle même ? Il y a pas une autres possibilités ?

Bonjour voilà ce que j'ai fait pour ma par

include_once("function.php");

$compteur = 1;
$requete_nombre_im = $connection->prepare('SELECT COUNT(*) idgc FROM photo_contact WHERE id_galc=:id_galc');
if($requete_nombre_im->execute(array(':id_galc'=> $_SESSION['xxxx'])))
{
      $compteur = $requete_nombre_im->fetchColumn();
}

if (isset($compteur) && $compteur <24){
?>
<fieldset>
<legend>Téléchargement de vos images</legend>
<form enctype='multipart/form-data' name='frmupload' action='' method='POST'>
<input type="hidden" name="MAX_FILE_SIZE" value="524288" />
<input name='filename' type='file'>
<input type='submit' value='Submit' name='submit'>
</form>
</fieldset>
<?PHP 
      }else{

      $message = 'Vos 25 images son télécharger.' ;  
      }

// Génère un code aléatoire de 5 caractères pour charques images
$chaine= code_aleatoire(); 
function code_aleatoire() 
{ 
    $alphabet    = 'abcdefghijklmnopqrstuvwxyz'; 
    $alphabet   .= '1234567890'; 
    $chaine      = ''; 
    for($i=0;$i < 5;$i++) 
    { 
        $chaine.= substr($alphabet,rand()%(strlen($alphabet)),1); 
    } 
    return $chaine; 
}
define('TARGET', './image_contact/');

if(isset($_POST['submit'])){

if(is_uploaded_file($_FILES['filename']['tmp_name'])){

if( !is_dir(TARGET) ) {
if( !mkdir(TARGET, 0755) ) {
exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
}
} 
    $maxsize=$_POST['MAX_FILE_SIZE'];       
    $size=$_FILES['filename']['size'];

    $imgdetails = getimagesize($_FILES['filename']['tmp_name']);
    $mime_type = $imgdetails['mime']; 

    if(($mime_type=='image/jpeg')||($mime_type=='image/png')){

      if($size<$maxsize){
        $filename=$_FILES['filename']['name'];
        // On renomme le fichier majuscule et minuscule 
        $filename = strtolower($filename);
        //Insert le code aléatoire pour éviter les doublons
        $filename =  $chaine."_".$filename;
        // Si c'est OK, on teste l'upload
              if(move_uploaded_file($_FILES['filename']['tmp_name'], TARGET.$filename)){
                  //Controle des doublons dans la base de donnée 
                  $controle_im = $connection->prepare('SELECT galc FROM photo_contact WHERE galc=:galc');   
                  $controle_im->execute(array('galc'=> $filename));
                  $nb_resultats_recherche_im=$controle_im->fetch();
                   /*si il n'y a pas de resultat*/ 
                  if(!$nb_resultats_recherche_im){
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                 $im_annonce=array(':id_galc'=> $_SESSION['xxxx'], 
                                   ':galc'=> $filename);

                 $values_info= join(', ',array_keys($im_annonce));
                 $req_im_annonce =$connection->prepare( 'INSERT INTO photo_contact ('.str_replace(':','',$values_info).') VALUES('.$values_info.')' );
                 $req_im_annonce->execute($im_annonce);
                 }else{
                 $message ="L'image est en doublons veulliez renomé l'image!!";
                 }
              }
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      }else{
        $message ="L'image à télécharger est trop grand .. Erreur Télécharger l'image!!";
      }
    }else{
      $message ="Un fichier image valide! S'il vous plaît télécharger jpeg ou png.";
    }

}else{          
  switch($_FILES['filename']['error']){
    case 0: 
      $message ="Il y avait un problème avec votre téléchargement.";
      break;
    case 1: 
      $message = "Le fichier que vous essayez de télécharger est trop grand.";
      break;
    case 2: 
      $message = "Le fichier que vous essayez de télécharger est trop grand.";
      break;
    case 3: 
      $message ="Le fichier que vous essayez téléchargement a été que partiellement téléchargé.";
      break;
    case 4: 
      $message ="Vous devez sélectionner une image pour le téléchargement.";
      break;
    default: 
      $message ="Il y a un problème avec votre téléchargement.";
      break;
  }     
}   

}
if( !empty($message) )
{
echo '<p>',"\n";
echo "\t\t<strong><font style='color:#F00'>", htmlspecialchars($message) ,"</font></strong>\n";
echo "\t</p>\n\n";
}
echo'<p>';
///////////////////////////////////////////////////////////////////////////////////////////////////////////
if(!empty($_POST['DELETE_IM'])){ 
$photos  = $connection->prepare('SELECT * FROM photo_contact WHERE idgc=:idgc');
$photos->execute(array('idgc'=> $_POST['DELETE_IM']));  
while($results = $photos->fetch(PDO::FETCH_OBJ))
$DEL = $results->gal;
if(@!unlink("image_contact/".$DEL) || @!unlink("MINIimage_contact/".$DEL));else{
$photo_im  = $connection->prepare('DELETE FROM photo_contact WHERE galc=:galc');
$photo_im->execute(array('galc'=> $DEL));
$photo_im->execute();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
$photo  = $connection->prepare('SELECT * FROM photo_contact WHERE id_galc=:id_galc');
$photo->execute(array('id_galc'=> $_SESSION['xxxx'] ));
while($result = $photo->fetch(PDO::FETCH_OBJ))
// On test si la variable $result, au cas
// ou elle serait vide.
if($result){
      vignette('image_contact/'.$result->galc.'',100, 75);
      echo'<FORM  method="POST" action="'.$_SERVER['PHP_SELF'].'"><img src="MINIimage_contact/'.$result->galc.'" alt="" border="0" />          
           <input type="hidden" name="DELETE_IM" value="'.$result->idgc.'" />
           <input type="submit" class="delelte" value=""/>
           </FROM>';
          }
// La requète n'a pas retournée de résultat
else {
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/erreur.php");
die();
}
echo'</p>';

$connection=null;
?>