IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

upload multiple de photos [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut upload multiple de photos
    bonjour à tous. voila j'ai réussi à faire un script qui upload via un formulaire une photo, crée une miniature et enregistre les chemins vers la photo et la miniature dans une base de donnée mais voila je voudrais uploader plusieurs photos à la fois en ajoutant des champs à mon formulaire d'upload et je sais vraiment pas comment m'y prendre. je sais pas si je dois copier le code plusieurs fois de suite pour chaque photo à uploader ou bien je dois modifier le code et ajouter un truc. j'ai fais plusieurs recherche sur google et malheureusement j'ai pas trouvé. si vous pouvez m'aider ou me mettre sur la voie ce serait vraiment cool. je joins le code php qui traite le formulaire d'enregistrement dans la base de donnée et d'upload de la photo ainsi que la création de la miniature si ça peut aider.
    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
      <?php
    // Parametres mysql à remplacer par les vôtres
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'partners'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
    DB_SERVER_PASSWORD) 
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_ok = "Votre annonce a bien été ajoutée.<br/><br/>";
    $message = $msg_erreur;
    // vérification des champs 
    if (empty($_POST['ville'])) 
      $message .= "La ville<br/>";
    if (empty($_POST['quartier'])) 
      $message .= "Le quartier<br/>";
    if (empty($_POST['surface'])) 
      $message .= "La Surface<br/>";
    if (empty($_POST['prix'])) 
      $message .= "Le prix<br/>";
     
    $pic=($_FILES['photo_1']['name']); 
    $dossier = 'photos/'; 
    $fichier = basename($_FILES['photo_1']['name']); 
    $taille_maxi = 5000000; 
    $taille = filesize($_FILES['photo_1']['tmp_name']); 
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG'); 
    $extension = strrchr($_FILES['photo_1']['name'], '.'); 
    //Début des vérifications de sécurité... 
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau 
    { 
    $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; 
    } 
    if($taille>$taille_maxi) 
    { 
    $erreur = 'Le fichier est trop gros...'; 
    } 
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload 
    { 
    //On formate le nom du fichier ici... 
    $fichier = strtr($fichier, 
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); 
     
    // Création d'une image minature  - Redimensionner l'image
    	$taille_image = getimagesize($_FILES['photo_1']['tmp_name']); // getimagesize, récupère la hauteur et la largeur d'une image, sous forme de tableau
    	$image_choisie =  imagecreatefromjpeg($_FILES['photo_1']['tmp_name']); // Call_user_fun récupere l'identifiant de l'image, imagecreateform sauvegarde une copie
    	$nouvelle_largeur = 176; // Nouvelle largeur de mon image
     
    	$reduction = ( ($nouvelle_largeur * 100) / $taille_image[0] ); // Calule la ratio qui correspond au quotient de l'ancienne largeur par la nouvelle. C'est un %tage, on multiplie donc par 100
    	$nouvelle_hauteur = ($taille_image[1] * $reduction/100 ); // // Calule la nouvelle hauteur en application la ratio à l'ancienne hauteur. On oublie pas de diviser par 100 sinon notre dimension, reste en %
     
    //Création de la miniature
    	$nouvelle_image = imagecreatetruecolor($nouvelle_largeur , $nouvelle_hauteur); // C
    	imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
     
    	imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
        imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
     
    if(move_uploaded_file($_FILES['photo_1']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
    { 
    echo '<br/><br/>photo ajouté avec succès !'; 
    } 
    else //Sinon (la fonction renvoie FALSE). 
    { 
    echo '<br/><br/>Echec de l\'upload !'; 
    } 
    } 
    else 
    { 
    echo $erreur; 
    } 
     
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
      echo $message;
     
    // sinon c'est ok 
    } else {
     
      foreach($_POST as $index => $valeur) {
        $$index = mysql_real_escape_string(trim($valeur));
      }
     
      $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
        '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
        '".$prix."', '".$pic."', '".$fichier."')";
      $res = mysql_query($sql);
     
      if ($res) {
        echo $msg_ok;
      } else {
        echo mysql_error();
      }
     
    }
    ?>

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Regarde le manuel php.

    A+.

  3. #3
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    dans ton formulaire :
    tu remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<input type='file' name='photo_1'>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<input type='file' name='photo_1[]'>
    et tu ajoute d'autres input identique (autant que tu veux télécharger des fichiers en une seule fois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<input type='file' name='photo_1[]'>
            <input type='file' name='photo_1[]'>
    	<input type='file' name='photo_1[]'>
    dans ton php :
    au lieu de $_FILES['photo_1'] mettre $Fichier , $_FILES['photo_1']['name'] devient $Fichier['name'] , $_FILES['photo_1']['tmp_name'] devient $Fichier['tmp_name'], etc... */
    tu ajoute les lignes (en gras italique dans le code si dessous)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    ....
    if (empty($_POST['prix'])) 
      $message .= "Le prix<br/>";
     
    //var_dump($_FILES['photo_1']); /*décommenter pour voir le contenu*/
    $countFiles=count($_FILES['photo_1']['name']);/* pour obtenir le nombre de fichier téléchargés */
    foreach($_FILES['photo_1'] as $key => $value) /* parcours le tableau des fichiers */
    {
            for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
            {
                 $Fichiers[$Indice][$key]=$_FILES['photo_1'][$key][$Indice]; /* construit un tableau avec les informations */
            }
    }
    //var_dump($Fichiers); /*décommenter pour voir le contenu*/
    for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
    {
            $Fichier=$Fichiers[$Indice];
            if($Fichier['error']==0) /* si il n'y a pas d'erreur */
            {
    	/* au lieu de $_FILES['photo_1'] mettre $Fichier */
            /* $_FILES['photo_1']['name'] devient $Fichier['name'] */
            /* $_FILES['photo_1']['tmp_name'] devient $Fichier['tmp_name'] */
            /* etc... */
            ...
            ton traitement pour le fichier
            ...
    
            } /* ne pas oublier de fermer le if */
    } /* ne pas oublier de fermer le for */ 
    ....
    ?>
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    ptit explication:
    la <form> envois :
    $_FILES['photo_1']['name'][0] = nom_du_premier_fichier
    $_FILES['photo_1']['name'][1] = nom_du_deuxiéme_fichier
    ...
    $_FILES['photo_1']['name'][x] = nom_du_xième_fichier

    $_FILES['photo_1']['type'][0] = type_du_premier_fichier
    $_FILES['photo_1']['type'][1] = type_du_deuxiéme_fichier
    ...
    $_FILES['photo_1']['type'][x] = type_du_xième_fichier
    idem pour
    $_FILES['photo_1']['tmp_name'][x]
    $_FILES['photo_1']['error'][x]
    $_FILES['photo_1']['size'][x]

    on transforme le tout dans un tableau $Fichiers pour avoir
    $Fichiers[0]['name']= nom_du_premier_fichier
    $Fichiers[0]['type']= type_du_premier_fichier
    $Fichiers[0]['tmp_name']= tmp_name_du_premier_fichier
    $Fichiers[0]['error']= error_du_premier_fichier
    $Fichiers[0]['size']= size_du_premier_fichier

    $Fichiers[1]['name']= nom_du_deuxiéme_fichier
    $Fichiers[1]['type']= type_du_deuxiéme_fichier
    $Fichiers[1]['tmp_name']= tmp_name_du_deuxiéme_fichier
    $Fichiers[1]['error']= error_du_deuxiéme_fichier
    $Fichiers[1]['size']= size_du_deuxiéme_fichier
    etc ...

    ensuite on parcours $Fichiers
    en on assigne chaque $Fichiers[x] à $Fichier
    que l' on le traite avec $Fichier['name'],$Fichier['type'],$Fichier['tmp_name'],$Fichier['error'],$Fichier['size']
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    vraiment merci patrickbaras pour ta réponse. je vais essayer ça ce soir et après je reviens te dire si ça a marché. c'est cool d'avoir pris le temps d'expliquer

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    bonjour et merci à patrickbaras pour ton aide. en suivant tes conseils j'ai réussi à uploader 4 photos en même temps et à créer pour chacune d'elles une miniature. mais un nouveau problème à surgit parce que avant les modifications mon code me permettait d'enregistrer en même temps le chemin vers la photo et la miniature dans la base de donnée. le problème c'est que maintenant il y a 4 photos et 4 miniatures à enregistrer dans la base. j'ai créé de nouveaux champs dans la base mais j'ai des problèmes avec le code dans la mesure où $pic enregistre le chemin de la photo et $fichier le chemin vers la miniature. ma question est comment enregistrer les autres liens dans photo2, photo3, photo4 et mini2, mini3, mini4.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
        '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
        '".$prix."', '".$pic."', '".$fichier."')";
      $res = mysql_query($sql);

  7. #7
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    pourquoi ne pas mettre l'insert dans la db aprés le traitement du fichier
    c'est ce que je sous entendais avec ton traitement pour le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [        if($Fichier['error']==0) /* si il n'y a pas d'erreur */
            {
    	/* au lieu de $_FILES['photo_1'] mettre $Fichier */
            /* $_FILES['photo_1']['name'] devient $Fichier['name'] */
            /* $_FILES['photo_1']['tmp_name'] devient $Fichier['tmp_name'] */
            /* etc... */
            ...
            ton traitement pour le fichier
            ton insert dans la db
            ...
     
            } /* ne pas oublier de fermer le if */
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    resalut patrick j'ai bien compris ce que tu as dis. j'ai bien mis l'insert dans la db après le traitement du fichier voici le code final
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
      <?php
    // Parametres mysql à remplacer par les vôtres
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'partners'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
    DB_SERVER_PASSWORD) 
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_ok = "Votre annonce a bien été ajoutée.<br/><br/>";
    $message = $msg_erreur;
    // vérification des champs 
    if (empty($_POST['ville'])) 
      $message .= "La ville<br/>";
    if (empty($_POST['quartier'])) 
      $message .= "Le quartier<br/>";
    if (empty($_POST['surface'])) 
      $message .= "La Surface<br/>";
    if (empty($_POST['prix'])) 
      $message .= "Le prix<br/>";
     
    //var_dump($_FILES['photo_1']); /*décommenter pour voir le contenu*/
    $countFiles=count($_FILES['photo_1']['name']);/* pour obtenir le nombre de fichier téléchargés */
    foreach($_FILES['photo_1'] as $key => $value) /* parcours le tableau des fichiers */
    {
            for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
            {
                 $Fichiers[$Indice][$key]=$_FILES['photo_1'][$key][$Indice]; /* construit un tableau avec les informations */
            }
    }
    //var_dump($Fichiers); /*décommenter pour voir le contenu*/
    for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
    {
            $Fichier=$Fichiers[$Indice];
            if($Fichier['error']==0) /* si il n'y a pas d'erreur */
            {
     
    $pic=($Fichier['name']); 
    $dossier = 'photos/'; 
    $fichier = basename($Fichier['name']); 
    $taille_maxi = 5000000; 
    $taille = filesize($Fichier['tmp_name']); 
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG'); 
    $extension = strrchr($Fichier['name'], '.'); 
    //Début des vérifications de sécurité... 
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau 
    { 
    $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; 
    } 
    if($taille>$taille_maxi) 
    { 
    $erreur = 'Le fichier est trop gros...'; 
    } 
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload 
    { 
    //On formate le nom du fichier ici... 
    $fichier = strtr($fichier, 
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); 
     
    // Création d'une image minature  - Redimensionner l'image
    	$taille_image = getimagesize($Fichier['tmp_name']); // getimagesize, récupère la hauteur et la largeur d'une image, sous forme de tableau
    	$image_choisie =  imagecreatefromjpeg($Fichier['tmp_name']); // Call_user_fun récupere l'identifiant de l'image, imagecreateform sauvegarde une copie
    	$nouvelle_largeur = 176; // Nouvelle largeur de mon image
     
    	$reduction = ( ($nouvelle_largeur * 100) / $taille_image[0] ); // Calule la ratio qui correspond au quotient de l'ancienne largeur par la nouvelle. C'est un %tage, on multiplie donc par 100
    	$nouvelle_hauteur = ($taille_image[1] * $reduction/100 ); // // Calule la nouvelle hauteur en application la ratio à l'ancienne hauteur. On oublie pas de diviser par 100 sinon notre dimension, reste en %
     
    //Création de la miniature
    	$nouvelle_image = imagecreatetruecolor($nouvelle_largeur , $nouvelle_hauteur); // C
    	imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
     
    	imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
        imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
     
    if(move_uploaded_file($Fichier['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
    { 
    echo '<br/><br/>photo ajouté avec succès !'; 
    } 
    else //Sinon (la fonction renvoie FALSE). 
    { 
    echo '<br/><br/>Echec de l\'upload !'; 
    } 
    } 
    else 
    { 
    echo $erreur; 
    } 
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
      echo $message;
     
    // sinon c'est ok 
    } else {
     
      foreach($_POST as $index => $valeur) {
        $$index = mysql_real_escape_string(trim($valeur));
      }
     
      $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
        '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
        '".$prix."', '".$pic."', '".$fichier."')";
      $res = mysql_query($sql);
     
      if ($res) {
        echo $msg_ok;
      } else {
        echo mysql_error();
      }
     
    }
    } /* ne pas oublier de fermer le if */
    } /* ne pas oublier de fermer le for */ 
     
    ?>
    mais mon problème c'est que dans la base de données j'ai ajouté de nouveau champs pour les autres photos à uploader et les miniatures à créer. la question que je posais c'est comment modifier l'insert pour pouvoir également sauvegarder le chemin vers ces photos et miniatures dans la base.
    le premier insert sauvegarde bien la photo unique et la miniature via $pic et $fichier. là où je bloque c'est sur ce que je dois ajouté à la suite de l'insert pour que les autre photos puisse également être enregistré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
        '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
        '".$prix."', '".$pic."', '".$fichier."')";
      $res = mysql_query($sql);
    DSL d'etre aussi nul en programmation php

  9. #9
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    un table avec les infos, et 4 colonnes pour pic(1-4) et 4 pour file(1-4).
    je n'aurais pas travaillé de cette manière.

    tu ajoutes les lignes rouges tu supprime les lignes barrées tu ajoute en fin de code
    les lignes en verts
    attention prévoir ce qui ce passe si l'on ne met moins de 4 photos (voir aucune)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    //var_dump($Fichiers); /*décommenter pour voir le contenu*/
    for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
    {
            $Fichier=$Fichiers[$Indice];
            if($Fichier['error']==0) /* si il n'y a pas d'erreur */
            {
     
    			$pic=($Fichier['name']);
    			$LePic[$Indice]=$pic;
    			$dossier = 'photos/'; 
    			$fichier = basename($Fichier['name']); 
    			$taille_maxi = 5000000; 
    			$taille = filesize($Fichier['tmp_name']); 
    			$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG'); 
    			$extension = strrchr($Fichier['name'], '.'); 
    			//Début des vérifications de sécurité... 
    			if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau 
    			{ 
    			$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; 
    			} 
    			if($taille>$taille_maxi) 
    			{ 
    			$erreur = 'Le fichier est trop gros...'; 
    			} 
    			if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload 
    			{ 
    			//On formate le nom du fichier ici... 
    			$fichier = strtr($fichier, 
    			'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
    			'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
    			$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); 
    			$LeFichier[$Indice] = $fichier;
    			 
    			// Création d'une image minature  - Redimensionner l'image
    				$taille_image = getimagesize($Fichier['tmp_name']); // getimagesize, récupère la hauteur et la largeur d'une image, sous forme de tableau
    				$image_choisie =  imagecreatefromjpeg($Fichier['tmp_name']); // Call_user_fun récupere l'identifiant de l'image, imagecreateform sauvegarde une copie
    				$nouvelle_largeur = 176; // Nouvelle largeur de mon image
    			 
    				$reduction = ( ($nouvelle_largeur * 100) / $taille_image[0] ); // Calule la ratio qui correspond au quotient de l'ancienne largeur par la nouvelle. C'est un %tage, on multiplie donc par 100
    				$nouvelle_hauteur = ($taille_image[1] * $reduction/100 ); // // Calule la nouvelle hauteur en application la ratio à l'ancienne hauteur. On oublie pas de diviser par 100 sinon notre dimension, reste en %
    			 
    			//Création de la miniature
    				$nouvelle_image = imagecreatetruecolor($nouvelle_largeur , $nouvelle_hauteur); // C
    				imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    				imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
    			 
    				imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
    				imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
    			 
    			if(move_uploaded_file($Fichier['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
    			{ 
    			echo '<br/><br/>photo ajouté avec succès !'; 
    			} 
    			else //Sinon (la fonction renvoie FALSE). 
    			{ 
    			echo '<br/><br/>Echec de l\'upload !'; 
    			} 
    			} 
    			else 
    			{ 
    			echo $erreur; 
    			} 
    			// si un champ est vide, on affiche le message d'erreur
    			if (strlen($message) > strlen($msg_erreur)) {
    			 
    			  echo $message;
    			 
    			// sinon c'est ok 
    			} else {
    			 
    /* enlever ici
      			  foreach($_POST as $index => $valeur) {
    				$$index = mysql_real_escape_string(trim($valeur));
    			  }
    			 
    			  $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
    				'".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
    				'".$prix."', '".$pic."', '".$fichier."')";
    			  $res = mysql_query($sql);
    */			 
    			  if ($res) {
    				echo $msg_ok;
    			  } else {
    				echo mysql_error();
    			  }
    			 
    			}
    		} /* ne pas oublier de fermer le if */
    } /* ne pas oublier de fermer le for */ 
    /*mettre ici*/
      			  foreach($_POST as $index => $valeur) {
    				$$index = mysql_real_escape_string(trim($valeur));
    			  }
    			 
    			  $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
    				'".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
    				'".$prix."', 
    				'".$LePic[0]."', '".$LeFichier[0].", 
    				'".$LePic[1]."', '".$LeFichier[1].", 
    				'".$LePic[2]."', '".$LeFichier[2].", 
    				'".$LePic[3]."', '".$LeFichier[3]."')";
    
    			  $res = mysql_query($sql);
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    me revoilà Patrick mais j'ai du louper quelque chose dans tes explications parce que je crois avoir fais ce que tu as dis mais quand j'apporte les modification au code les photos sont toujours uploadé mais la base de données n'enregistre plus rien. même les données comme la ville, le quartier... ne sont plus enregistré.
    je sais que c'est vraiment fatiguant de m'aider mais je bloque vraiment avec le langage php. je crois avoir effectué toutes les modifications ( ajouter les lignes rouges, supprimer les lignes barrées, ajouter en fin de code
    les lignes en verts) et c'est bizarre que la base n'enregistre même plus les données qui étaient enregistré avant.

    Merci de me consacrer un peu de ton temps

    voici le code avec les modifications

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
      <?php
    // Parametres mysql à remplacer par les vôtres
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'partners'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
    DB_SERVER_PASSWORD) 
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_ok = "Votre annonce a bien été ajoutée.<br/><br/>";
    $message = $msg_erreur;
    // vérification des champs 
    if (empty($_POST['ville'])) 
      $message .= "La ville<br/>";
    if (empty($_POST['quartier'])) 
      $message .= "Le quartier<br/>";
    if (empty($_POST['surface'])) 
      $message .= "La Surface<br/>";
    if (empty($_POST['prix'])) 
      $message .= "Le prix<br/>";
     
      //var_dump($_FILES['photo_1']); /*décommenter pour voir le contenu*/
    $countFiles=count($_FILES['photo_1']['name']);/* pour obtenir le nombre de fichier téléchargés */
    foreach($_FILES['photo_1'] as $key => $value) /* parcours le tableau des fichiers */
    {
            for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
            {
                 $Fichiers[$Indice][$key]=$_FILES['photo_1'][$key][$Indice]; /* construit un tableau avec les informations */
            }
    }
    //var_dump($Fichiers); /*décommenter pour voir le contenu*/
    for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
    {
            $Fichier=$Fichiers[$Indice];
            if($Fichier['error']==0) /* si il n'y a pas d'erreur */
            {
     
    $pic=($Fichier['name']);
    $LePic[$Indice]=$pic;
    $dossier = 'photos/'; 
    $fichier = basename($Fichier['name']); 
    $taille_maxi = 5000000; 
    $taille = filesize($Fichier['name']); 
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG'); 
    $extension = strrchr($Fichier['name'], '.'); 
    //Début des vérifications de sécurité... 
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau 
    { 
    $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; 
    } 
    if($taille>$taille_maxi) 
    { 
    $erreur = 'Le fichier est trop gros...'; 
    } 
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload 
    { 
    //On formate le nom du fichier ici... 
    $fichier = strtr($fichier, 
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); 
    $LeFichier[$Indice] = $fichier;
    // Création d'une image minature  - Redimensionner l'image
    	$taille_image = getimagesize($Fichier['tmp_name']); // getimagesize, récupère la hauteur et la largeur d'une image, sous forme de tableau
    	$image_choisie =  imagecreatefromjpeg($Fichier['tmp_name']); // Call_user_fun récupere l'identifiant de l'image, imagecreateform sauvegarde une copie
    	$nouvelle_largeur = 176; // Nouvelle largeur de mon image
     
    	$reduction = ( ($nouvelle_largeur * 100) / $taille_image[0] ); // Calule la ratio qui correspond au quotient de l'ancienne largeur par la nouvelle. C'est un %tage, on multiplie donc par 100
    	$nouvelle_hauteur = ($taille_image[1] * $reduction/100 ); // // Calule la nouvelle hauteur en application la ratio à l'ancienne hauteur. On oublie pas de diviser par 100 sinon notre dimension, reste en %
     
    //Création de la miniature
    	$nouvelle_image = imagecreatetruecolor($nouvelle_largeur , $nouvelle_hauteur); // C
    	imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
     
    	imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
        imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
     
    if(move_uploaded_file($Fichier['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
    { 
    echo '<br/><br/>photo ajouté avec succès !'; 
    } 
    else //Sinon (la fonction renvoie FALSE). 
    { 
    echo '<br/><br/>Echec de l\'upload !'; 
    } 
    } 
    else 
    { 
    echo $erreur; 
    } 
     
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
      echo $message;
     
    // sinon c'est ok 
    } else {
     
     
    }
    } /* ne pas oublier de fermer le if */
    } /* ne pas oublier de fermer le for */
     
    foreach($_POST as $index => $valeur) {
    				$$index = mysql_real_escape_string(trim($valeur));
    			  }
     
    			  $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
    				'".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
    				'".$prix."', 
    				'".$LePic[0]."', '".$LeFichier[0].", 
    				'".$LePic[1]."', '".$LeFichier[1].", 
    				'".$LePic[2]."', '".$LeFichier[2].", 
    				'".$LePic[3]."', '".$LeFichier[3]."')";
     
    			  $res = mysql_query($sql);
     
    ?>

  11. #11
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    reviens a ton code ou l'upload des photos fonctionné mais l'insert ne fessait que l'insert d'une photo ( le code avant de déplacer l'insert dans le traitement de la photo, comme dans to post d'hier 18h11 )

    ajouter les lignes avec $LePic[$Indice]=$pic; et $LeFichier[$Indice] = $fichier; aux endroits je j'ai indiqué

    tu commente ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /* $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
                    '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
                    '".$prix."', '".$pic."', '".$fichier."')";*/
    tu ajoute juste après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                  $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
                    '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
                    '".$prix."', 
                    '".$LePic[0]."', '".$LeFichier[0].", 
                    '".$LePic[1]."', '".$LeFichier[1].", 
                    '".$LePic[2]."', '".$LeFichier[2].", 
                    '".$LePic[3]."', '".$LeFichier[3]."')";
     
    echo "<hr>".$sql."<hr>";/* cette ligne va afficher ta requête sql */
    de cette manière tu verra ce que contient la requête
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  12. #12
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    désolé j'ai oublié des ' dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                  $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
                    '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
                    '".$prix."', 
                    '".$LePic[0]."', '".$LeFichier[0]."', 
                    '".$LePic[1]."', '".$LeFichier[1]."', 
                    '".$LePic[2]."', '".$LeFichier[2]."', 
                    '".$LePic[3]."', '".$LeFichier[3]."')";
    
    echo "<hr>".$sql."<hr>";/* cette ligne va afficher ta requête sql */
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    salut Patrick tout d'abord je tiens à te dire encore merci pour ta disponibilité

    j'ai fais exactement comme tu as demandé et le problème persiste. je m'explique lorsque je supprimes dans la table les champs pour photo2, photo3, photo4 et mini 2 à 4 la base de données enregistre tous les champs du formulaire plus la dernière photo et sa miniature mais lorsque pour chaque photo et chaque miniature il y a un champs dans la base de données, la base n'enregistre rien même pas les autres champs toutefois les images sont toutes uploadé dans les dossiers respectifs. j'ai ajouté le code que tu m'as demandé et j'ai une suite d'erreur que voici:

    ( ! ) Warning: filesize() [function.filesize]: stat failed for Chrysanthemum.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.0661 423120 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 6 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.5157 552688 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for Hydrangeas.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.5200 552464 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 10 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.9015 552592 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for Koala.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.9062 552384 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 14 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.2938 552592 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for Penguins.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.3036 552384 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 18 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0102 413864 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.5995 552600 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !

    INSERT INTO annonce VALUES ('', 'villa', 'vente', 'bbb', 'bbb', '222', '222', '222', 'Chrysanthemum.jpg', 'Chrysanthemum.jpg, 'Hydrangeas.jpg', 'Hydrangeas.jpg, 'Koala.jpg', 'Koala.jpg, 'Penguins.jpg', 'Penguins.jpg')

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Hydrangeas.jpg', 'Hydrangeas.jpg, 'Koala.jpg', 'Koala.jpg, ' at line 4

    voici le code modifié comme demandé enfin je crois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     <?php
    // Parametres mysql à remplacer par les vôtres
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'partners'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
    DB_SERVER_PASSWORD) 
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_ok = "Votre annonce a bien été ajoutée.<br/><br/>";
    $message = $msg_erreur;
    // vérification des champs 
    if (empty($_POST['ville'])) 
      $message .= "La ville<br/>";
    if (empty($_POST['quartier'])) 
      $message .= "Le quartier<br/>";
    if (empty($_POST['surface'])) 
      $message .= "La Surface<br/>";
    if (empty($_POST['prix'])) 
      $message .= "Le prix<br/>";
     
      //var_dump($_FILES['photo_1']); /*décommenter pour voir le contenu*/
    $countFiles=count($_FILES['photo_1']['name']);/* pour obtenir le nombre de fichier téléchargés */
    foreach($_FILES['photo_1'] as $key => $value) /* parcours le tableau des fichiers */
    {
            for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
            {
                 $Fichiers[$Indice][$key]=$_FILES['photo_1'][$key][$Indice]; /* construit un tableau avec les informations */
            }
    }
    //var_dump($Fichiers); /*décommenter pour voir le contenu*/
    for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
    {
            $Fichier=$Fichiers[$Indice];
            if($Fichier['error']==0) /* si il n'y a pas d'erreur */
            {
     
    $pic=($Fichier['name']);
    $LePic[$Indice]=$pic;
    $dossier = 'photos/'; 
    $fichier = basename($Fichier['name']); 
    $taille_maxi = 5000000; 
    $taille = filesize($Fichier['name']); 
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG'); 
    $extension = strrchr($Fichier['name'], '.'); 
    //Début des vérifications de sécurité... 
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau 
    { 
    $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; 
    } 
    if($taille>$taille_maxi) 
    { 
    $erreur = 'Le fichier est trop gros...'; 
    } 
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload 
    { 
    //On formate le nom du fichier ici... 
    $fichier = strtr($fichier, 
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    $LeFichier[$Indice] = $fichier;
     
    // Création d'une image minature  - Redimensionner l'image
    	$taille_image = getimagesize($Fichier['tmp_name']); // getimagesize, récupère la hauteur et la largeur d'une image, sous forme de tableau
    	$image_choisie =  imagecreatefromjpeg($Fichier['tmp_name']); // Call_user_fun récupere l'identifiant de l'image, imagecreateform sauvegarde une copie
    	$nouvelle_largeur = 176; // Nouvelle largeur de mon image
     
    	$reduction = ( ($nouvelle_largeur * 100) / $taille_image[0] ); // Calule la ratio qui correspond au quotient de l'ancienne largeur par la nouvelle. C'est un %tage, on multiplie donc par 100
    	$nouvelle_hauteur = ($taille_image[1] * $reduction/100 ); // // Calule la nouvelle hauteur en application la ratio à l'ancienne hauteur. On oublie pas de diviser par 100 sinon notre dimension, reste en %
     
    //Création de la miniature
    	$nouvelle_image = imagecreatetruecolor($nouvelle_largeur , $nouvelle_hauteur); // C
    	imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
     
    	imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
        imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
     
    if(move_uploaded_file($Fichier['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
    { 
    echo '<br/><br/>photo ajouté avec succès !'; 
    } 
    else //Sinon (la fonction renvoie FALSE). 
    { 
    echo '<br/><br/>Echec de l\'upload !'; 
    } 
    } 
    else 
    { 
    echo $erreur; 
    } 
    } /* ne pas oublier de fermer le if */
    } /* ne pas oublier de fermer le for */
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
      echo $message;
     
    // sinon c'est ok 
    } else {
     
      foreach($_POST as $index => $valeur) {
        $$index = mysql_real_escape_string(trim($valeur));
      }
     
     /* $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
        '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
        '".$prix."', '".$pic."', '".$fichier."')";*/
     $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
                    '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
                    '".$prix."', 
                    '".$LePic[0]."', '".$LeFichier[0].", 
                    '".$LePic[1]."', '".$LeFichier[1].", 
                    '".$LePic[2]."', '".$LeFichier[2].", 
                    '".$LePic[3]."', '".$LeFichier[3]."')";
     
    echo "<hr>".$sql."<hr>";/* cette ligne va afficher ta requête sql */
      $res = mysql_query($sql);
     
      if ($res) {
        echo $msg_ok;
      } else {
        echo mysql_error();
      }
     
    }
     
    ?>

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    je viens de me rendre compte que dans la précipitation j'ai pas pris en compte ton dernier message où tu précise que tu as oublié des ' dans le code désolé. j'ai modifié le code et toutes les image sont enregistré dans la base de données mais j'ai tjr des erreurs que voici:

    ( ! ) Warning: filesize() [function.filesize]: stat failed for Chrysanthemum.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.0141 423144 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 6 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.6169 552712 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for Desert.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.6223 552488 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 10 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.1379 552608 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for Hydrangeas.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.1425 552400 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 14 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.5458 552608 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for Jellyfish.jpg in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.5505 552400 filesize ( ) ..\ajouter_backoffice_confirm.php:83

    ( ! ) Warning: imagejpeg(): 18 is not a valid Image resource in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 118
    Call Stack
    # Time Memory Function Location
    1 0.0036 413888 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 1.9769 552648 imagejpeg ( ) ..\ajouter_backoffice_confirm.php:118


    photo ajouté avec succès !

    INSERT INTO annonce VALUES ('', 'villa', 'vente', 'Dakar', 'dakar', '111', '3', '2345678', 'Chrysanthemum.jpg', 'Chrysanthemum.jpg', 'Desert.jpg', 'Desert.jpg', 'Hydrangeas.jpg', 'Hydrangeas.jpg', 'Jellyfish.jpg', 'Jellyfish.jpg')

    Votre annonce a bien été ajoutée.

    ps: vraiment tu es fort

  15. #15
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    pour tes autres messages
    tu detruit l'image construite en mémoire avant de la sauver

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
     
    	imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
        imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
    a remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
     
    	imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
        imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
    	imagedestroy($nouvelle_image); // Supprimer notre image de sauvegarde
     	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    j'ai toujours une série d'erreur à la ligne 83.
    j'aurais également une question. il faut combien d'année de pratique pour maitriser le PHP comme toi?

    ( ! ) Warning: filesize() [function.filesize]: stat failed for 100_5055.JPG in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0071 414392 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 0.0928 423640 filesize ( ) ..\ajouter_backoffice_confirm.php:83


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for 100_5056.JPG in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0071 414392 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 3.9539 426200 filesize ( ) ..\ajouter_backoffice_confirm.php:83


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for 100_5057.JPG in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0071 414392 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 7.9363 426272 filesize ( ) ..\ajouter_backoffice_confirm.php:83


    photo ajouté avec succès !
    ( ! ) Warning: filesize() [function.filesize]: stat failed for 100_5058.JPG in C:\wamp\www\adminpartners\ajouter_backoffice_confirm.php on line 83
    Call Stack
    # Time Memory Function Location
    1 0.0071 414392 {main}( ) ..\ajouter_backoffice_confirm.php:0
    2 10.7511 426208 filesize ( ) ..\ajouter_backoffice_confirm.php:83


    photo ajouté avec succès !

  17. #17
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    a quoi correspond la ligne 83 dans ton code ?
    réponse à ta question, je fait de l'informatique depuis l'age de 14ans et je vais bientôt en avoir 49 (le php c'est depuis un dizaine d'année à titre privé surtout et de temps en temps à titre professionnel lors de mes missions)
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  18. #18
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    vérifie aussi ce nombre, il me semble que c'est la qualité du fichier jpeg et qu'elle est au maximum de 100

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
    imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  19. #19
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    10 ans de php. ça va pas être facile pour moi d'arriver à ce niveau déja que l'informatique c'est juste une passion mais pas une profession dans la mesure où je suis juriste de formation.

    l'erreur correspond à cette ligne:

    $taille = filesize($Fichier['name']);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
      <?php
    // Parametres mysql à remplacer par les vôtres
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'partners'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
    DB_SERVER_PASSWORD) 
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(DB_DATABASE, $connect);
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_ok = "Votre annonce a bien été ajoutée.<br/><br/>";
    $message = $msg_erreur;
    // vérification des champs 
    if (empty($_POST['ville'])) 
      $message .= "La ville<br/>";
    if (empty($_POST['quartier'])) 
      $message .= "Le quartier<br/>";
    if (empty($_POST['surface'])) 
      $message .= "La Surface<br/>";
    if (empty($_POST['prix'])) 
      $message .= "Le prix<br/>";
      
      //var_dump($_FILES['photo_1']); /*décommenter pour voir le contenu*/
    $countFiles=count($_FILES['photo_1']['name']);/* pour obtenir le nombre de fichier téléchargés */
    foreach($_FILES['photo_1'] as $key => $value) /* parcours le tableau des fichiers */
    {
            for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
            {
                 $Fichiers[$Indice][$key]=$_FILES['photo_1'][$key][$Indice]; /* construit un tableau avec les informations */
            }
    }
    //var_dump($Fichiers); /*décommenter pour voir le contenu*/
    for($Indice=0;$Indice<$countFiles;$Indice++) /* pour chaque fichier */
    {
            $Fichier=$Fichiers[$Indice];
            if($Fichier['error']==0) /* si il n'y a pas d'erreur */
            {
    
    $pic=($Fichier['name']);
    $LePic[$Indice]=$pic;
    $dossier = 'photos/'; 
    $fichier = basename($Fichier['name']); 
    $taille_maxi = 5000000; 
    $taille = filesize($Fichier['name']); 
    $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG'); 
    $extension = strrchr($Fichier['name'], '.'); 
    //Début des vérifications de sécurité... 
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau 
    { 
    $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; 
    } 
    if($taille>$taille_maxi) 
    { 
    $erreur = 'Le fichier est trop gros...'; 
    } 
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload 
    { 
    //On formate le nom du fichier ici... 
    $fichier = strtr($fichier, 
    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
    $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    $LeFichier[$Indice] = $fichier;
    
    // Création d'une image minature  - Redimensionner l'image
    	$taille_image = getimagesize($Fichier['tmp_name']); // getimagesize, récupère la hauteur et la largeur d'une image, sous forme de tableau
    	$image_choisie =  imagecreatefromjpeg($Fichier['tmp_name']); // Call_user_fun récupere l'identifiant de l'image, imagecreateform sauvegarde une copie
    	$nouvelle_largeur = 176; // Nouvelle largeur de mon image
    
    	$reduction = ( ($nouvelle_largeur * 100) / $taille_image[0] ); // Calule la ratio qui correspond au quotient de l'ancienne largeur par la nouvelle. C'est un %tage, on multiplie donc par 100
    	$nouvelle_hauteur = ($taille_image[1] * $reduction/100 ); // // Calule la nouvelle hauteur en application la ratio à l'ancienne hauteur. On oublie pas de diviser par 100 sinon notre dimension, reste en %
    
    //Création de la miniature
    	$nouvelle_image = imagecreatetruecolor($nouvelle_largeur , $nouvelle_hauteur); // C
    	imagecopyresampled($nouvelle_image, $image_choisie, 0 , 0 , 0 , 0 , $nouvelle_largeur, $nouvelle_hauteur, $taille_image['0'], $taille_image['1']);
    
    	imagejpeg($nouvelle_image, 'photos/small/' . $fichier , 176);
        imagejpeg($image_choisie , 'photos/' . $fichier . 'FullImage' , 176);
    	imagedestroy($nouvelle_image); // Supprimer notre image de sauvegarde
     	imagedestroy($image_choisie); // Supprimer notre image de sauvegarde
    	
    if(move_uploaded_file($Fichier['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
    { 
    echo '<br/><br/>photo ajouté avec succès !'; 
    } 
    else //Sinon (la fonction renvoie FALSE). 
    { 
    echo '<br/><br/>Echec de l\'upload !'; 
    } 
    } 
    else 
    { 
    echo $erreur; 
    } 
    } /* ne pas oublier de fermer le if */
    } /* ne pas oublier de fermer le for */
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
    
      echo $message;
    
    // sinon c'est ok 
    } else {
    
      foreach($_POST as $index => $valeur) {
        $$index = mysql_real_escape_string(trim($valeur));
      }
    
     /* $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
        '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
        '".$prix."', '".$pic."', '".$fichier."')";*/
     $sql = "INSERT INTO annonce VALUES ('', '".$type_bien."', '".$type_ope."', 
                    '".$ville."', '".$quartier."', '".$surface."', '".$nombre_chambre."',
                    '".$prix."', 
                    '".$LePic[0]."', '".$LeFichier[0]."', 
                    '".$LePic[1]."', '".$LeFichier[1]."', 
                    '".$LePic[2]."', '".$LeFichier[2]."', 
                    '".$LePic[3]."', '".$LeFichier[3]."')";
    
    echo "<hr>".$sql."<hr>";/* cette ligne va afficher ta requête sql */
      $res = mysql_query($sql);
    
      if ($res) {
        echo $msg_ok;
      } else {
        echo mysql_error();
      }
    
    }
    
    ?>

  20. #20
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    $taille = filesize($Fichier['name']);
    si tu veux la taille du fichier envoyé c'est
    $taille = $Fichier['size']

    et rassure toi j'y connais rien en législation (lol)
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Upload] Upload multiple files
    Par aymanov dans le forum Langage
    Réponses: 17
    Dernier message: 22/12/2008, 09h38
  2. [Upload] traitement upload multiples
    Par renaud26 dans le forum Langage
    Réponses: 7
    Dernier message: 23/03/2006, 19h20
  3. Réponses: 2
    Dernier message: 27/02/2006, 10h18
  4. [demande] upload multiples
    Par pIch dans le forum Général Java
    Réponses: 6
    Dernier message: 21/07/2005, 15h47
  5. [Upload] upload multiple
    Par mat10000 dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2005, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo