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

Langage PHP Discussion :

Formulaire envoi de photo et traitement [PHP 4]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut Formulaire envoi de photo et traitement
    Bonjour a tous,

    Avant tous je tiens a vous remerciez de partager vos savoir, de la même occasion je tiens a vous souhaitez une bonne et heureuse année pour 2009.

    Cela fait fait un certain temps que je me creuse la tête comcernant ce formulaire, j'ai deux table qui ont été crées (image et rubrique avec une cléf primaire qui relie les deux table) .
    Ce formulaire doit me permettre de faire deux choses
    1) De récupérer une photo grace à "file" et de le copier dans un dossier selon la Rubrique (requete sql qui récupère les rubriques de ma base de donnée table rubrique)+ traitement lé aux type (jpg, pg, ect...)
    2) Le nom de la photo doit etre stocké dans ma base de donnée ainsi que tous les éléments lié a celle-ci.

    J'ai déja posté une fois mais voila avec la réponse qui ma été apporté je n'ai pas avancé. Je suis encore débutant dans le PHP et mysql.
    Votre aide sera très précieux.

    Voici mon formulaire d'envoie et de traiment

    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
     
    <?php
     
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_katofo.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <br/><br/> 
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row[0], '">', $row[1], '</option>';
      }
    }
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
    ?>
    <?php 
     
    if( isset($_POST['katofo']) ) // si formulaire soumis 
    { 
    $content_dir = '../photos/.$RubriqueName.'/''; // dossier où sera déplacé le fichier 
     
    $tmp_file = $_FILES['katofo']['tmp_name']; 
     
    if( !is_uploaded_file($tmp_file) ) 
    { 
    exit("Le fichier est introuvable"); 
    } 
     
    // on vérifie maintenant l'extension 
    $type_file = $_FILES['katofo']['type']; 
     
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) 
    { 
    exit("Le fichier n'est pas une image"); 
    } 
     
    // on copie le fichier dans le dossier de destination 
    $name_file = $_FILES['katofo']['name']; 
     
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    { 
    exit("Impossible de copier le fichier dans $content_dir"); 
    } 
     
    echo "Le fichier a bien été uploadé"; 
    } 
     
    //ajout de l'image à la base de données
    $RubriqueID = '';
    $fichier = '';
     
    $Date = date("Y-m-d");
      $Time = date("H:i:s");
      $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueID',
    		ImageName='$fichier',
    		ImageDesc='', 
                   	ImageRes='', 
                   	ImageSize='',
    		Date='$Date',
    		Time='$Time'"; 
      $result = mysql_query($query); 
    ?>
    Lors de la validation du formulaire, je n'ai aucun message d'érreur mais rien n'est copié dans les différent endroit (dans le répertoire photos+rubrique et dans la base de donnée)

    Merci a vous de votre aide

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    C'est parce que tu ne rentre pas dans ton IF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( isset($_POST['katofo']) ) // si formulaire soumis
    Essaye simplement de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_POST['katofo'])) // si formulaire soumis 
    { 
    echo "OK";
    } else {
    echo "KO";
    }
    Tu resteras toujours avec "KO" ...
    Ce que tu peux faire c'est ajouter un champs caché dans ton formulaire, et ensuite tu fais ton test dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input type="hidden" name="test" id="test" />
    if(isset($_POST['test'])) // si formulaire soumis 
    {
    ...........

  3. #3
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    @Jumano : il y a <input type='file' name='katofo' size='40'/>

    Ton répertoire de destination est-il en mode écriture ?
    Si non, il faut faire un CHMOD dessus.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par d-Rek Voir le message
    @Jumano : il y a <input type='file' name='katofo' size='40'/>

    Ton répertoire de destination est-il en mode écriture ?
    Si non, il faut faire un CHMOD dessus.
    Re,
    Je suis sur Windows xp, pour le CHMOD n'est pas nécessaire si je ne me trompe pas.
    J'ai apporté une modification au fichier
    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
    <?php
     
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_katofo.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <br/><br/> 
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row[0], '">', $row[1], '</option>';
      }
    }
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
    ?>
    <?php 
     
    if(isset($_POST['katofo'])) // si formulaire soumis 
    { 
    echo "OK";
    } else {
    echo "KO";
    }
    { 
    $content_dir = '../photos/.$RubriqueName.'/''; // dossier où sera déplacé le fichier 
     
    $tmp_file = $_FILES['katofo']['tmp_name']; 
     
    if( !is_uploaded_file($tmp_file) ) 
    { 
    exit("Le fichier est introuvable"); 
    } 
     
    // on vérifie maintenant l'extension 
    $type_file = $_FILES['katofo']['type']; 
     
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) 
    { 
    exit("Le fichier n'est pas une image"); 
    } 
     
    // on copie le fichier dans le dossier de destination 
    $name_file = $_FILES['katofo']['name']; 
     
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    { 
    exit("Impossible de copier le fichier dans $content_dir"); 
    } 
     
    echo "Le fichier a bien été uploadé"; 
    } 
     
    //ajout de l'image à la base de données
    $RubriqueID = '';
    $fichier = '';
     
    $Date = date("Y-m-d");
      $Time = date("H:i:s");
      $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueID',
    		ImageName='$fichier',
    		ImageDesc='', 
                   	ImageRes='', 
                   	ImageSize='',
    		Date='$Date',
    		Time='$Time'"; 
      $result = mysql_query($query); 
    ?>


    lors de la validation du formulaire j'ai deux messages d'érreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Warning: Division by zero in E:\Program Files\EasyPHP 2.0b1\www\zimages\inc\inc_katofo.php on line 46
     
     
    Notice: Undefined index: katofo in E:\Program Files\EasyPHP 2.0b1\www\zimages\inc\inc_katofo.php on line 48


    la ligne 46 est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content_dir = '../photos/.$RubriqueName.'/''; //
    dossier où sera déplacé le fichier


    et la ligne 48 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tmp_file = $_FILES['katofo']['tmp_name'];


    dans ma base de donnée une ligne vide est créer avec incrémentation mais pas de donnée liée au traitement du formulaire, dans le dossier de destination je n'est pas la photo/image que j'ai uploade.

    Merci de votre aide

  5. #5
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Re,
    Oui, j'avais bien vu qu'il avait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='file' name='katofo' size='40'/>
    Le fait de faire le test avec :
    ne fonctionne pas, c'est pour cela que j'indique de faire plutot le test sur un champs caché ....

    De plus il faut supprimer de ton code les deux "echo" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(isset($_POST['katofo'])) // si formulaire soumis 
    { 
    echo "OK";
    } else {
    echo "KO";
    }
    { 
    $content_dir = '../photos/.$RubriqueName.'/''; // dossier où sera déplacé le fichier 
     
    $tmp_file = $_FILES['katofo']['tmp_name'];

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    re,
    J'ai remplacé la ligne suivant pour faire un test mais voila toujours rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST['katofo'])) // si formulaire soumis
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type='hidden' name='test' id='test' />
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(isset($_POST['test'])) // si formulaire soumis
    ma table est incrémenté mais sans les infos, une ligne vide est créée à chaque fois et toujours pas de copie dans le dossier concernée.

    Je vous remercie de votre aide et de votre réactivité

    J'ai aussi retiré les deux

  7. #7
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Tes deux variables sont vides :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $RubriqueID = '';
    $fichier = '';
    Elles devraient plutot être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $RubriqueID = $_POST['frm_select_rubrique'];
    $fichier = $name_file ;

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Tes deux variables sont vides :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $RubriqueID = '';
    $fichier = '';
    Elles devraient plutot être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $RubriqueID = $_POST['frm_select_rubrique'];
    $fichier = $name_file ;
    il y a une évolution, dans ma table est récupérée la rubrique concernée mais aucune info sur l'image/photo dans la table ni dans le dossier prévu a cette éffet
    ci-joint mon code modifié :

    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
    <?php
     
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_katofo.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <input type='hidden' name='test' id='test' />
    	  <br/><br/> 
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row[0], '">', $row[1], '</option>';
      }
    }
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
    ?>
    <?php 
    if(isset($_POST['katofo'])) // si formulaire soumis 
    {
     
    $content_dir = '../photos/.$RubriqueName.'/''; // dossier où sera déplacé le fichier 
     
    $tmp_file = $_FILES['katofo']['tmp_name']; 
     
    if( !is_uploaded_file($tmp_file) ) 
    { 
    exit("Le fichier est introuvable"); 
    } 
     
    // on vérifie maintenant l'extension 
    $type_file = $_FILES['katofo']['type']; 
     
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) 
    { 
    exit("Le fichier n'est pas une image"); 
    } 
     
    // on copie le fichier dans le dossier de destination 
    $name_file = $_FILES['katofo']['name']; 
     
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    { 
    exit("Impossible de copier le fichier dans $content_dir"); 
    } 
     
    echo "Le fichier a bien été uploadé"; 
    } 
     
    //ajout de l'image à la base de données
    72 $RubriqueID = $_POST['frm_select_rubrique'];
    73 $fichier = $name_file ;
     
     
    $Date = date("Y-m-d");
      $Time = date("H:i:s");
      $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueID',
    		ImageName='$fichier',
    		ImageDesc='', 
                   	ImageRes='', 
                   	ImageSize='',
    		Date='$Date',
    		Time='$Time'"; 
      $result = mysql_query($query); 
    ?>
    J'ai les ligne 72 et 73 en non définie pourtant ils le sont bien

    Notice: Undefined index: frm_select_rubrique in E:\Program Files\EasyPHP 2.0b1\www\zimages\inc\inc_katofo.php on line 72

    Notice: Undefined variable: name_file in E:\Program Files\EasyPHP 2.0b1\www\zimages\inc\inc_katofo.php on line 73


    merci de vos réponses

  9. #9
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Modifie cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content_dir = '../photos/.$RubriqueName.'/''; // dossier où sera déplacé le fichier
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier
    ==> Problème de concaténation
    Ensuite ta variable "$RubriqueName" est-elle déclarée ?

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Modifie cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content_dir = '../photos/.$RubriqueName.'/''; // dossier où sera déplacé le fichier
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier
    ==> Problème de concaténation
    Ensuite ta variable "$RubriqueName" est-elle déclarée ?

    re
    J'ai procédé aux modifications cité ci-dessus cela n'a pas changé grand chose, je retrouve bien le fichier envoyé dans le fichier temporaire d'easyphp
    les erreurs cité précedement apparaissent toujours

    je pense qu'il dois avoir un problème pour récupérer les infos du fichier temporaire et de les copier dans le bon dossier et dans la table concernée

    J'ai déclaré ma variable "$RubriqueName"

    Merci de votre aide

  11. #11
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Quel est ton code maitenant ...

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Quel est ton code maitenant ...
    re,
    Excuse j'ai oublié le code

    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
    <?php
     
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_katofo.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <input type='hidden' name='test' id='test' />
    	  <br/><br/> 
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row[0], '">', $row[1], '</option>';
      }
    }
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
    ?>
    <?php 
     
    $RubriqueName=$_POST['frm_select_rubrique'];
     
    if(isset($_POST['katofo'])) // si formulaire soumis 
    {
     
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier 
     
    $tmp_file = $_FILES['katofo']['tmp_name']; 
     
    if( !is_uploaded_file($tmp_file) ) 
    { 
    exit("Le fichier est introuvable"); 
    } 
     
    // on vérifie maintenant l'extension 
    $type_file = $_FILES['katofo']['type']; 
     
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) 
    { 
    exit("Le fichier n'est pas une image"); 
    } 
     
    // on copie le fichier dans le dossier de destination 
    $name_file = $_FILES['katofo']['name']; 
     
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    { 
    exit("Impossible de copier le fichier dans $content_dir"); 
    } 
     
    echo "Le fichier a bien été uploadé"; 
    } 
     
    //ajout de l'image à la base de données
    $RubriqueID = $_POST['frm_select_rubrique'];
    $fichier = $name_file ;
     
    $Date = date("Y-m-d");
      $Time = date("H:i:s");
      $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueID',
    		ImageName='$fichier',
    		ImageDesc='', 
                   	ImageRes='', 
                   	ImageSize='',
    		Date='$Date',
    		Time='$Time'"; 
      $result = mysql_query($query); 
    ?>
    merci de votre aide

  13. #13
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Essaye avec ce code :
    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
    <?php
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_katofo.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <br/><br/> 
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row[0], '">', $row[1], '</option>';
      }
    }
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
     
    if(isset($_FILES['katofo'])) // si formulaire soumis 
    {
    $RubriqueName = $_POST['frm_select_rubrique'];
     
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier 
    $tmp_file = $_FILES['katofo']['tmp_name']; 
    $name_file = $_FILES['katofo']['name']; 
     
    if(move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    {
    echo "Le fichier a bien été uploadé";
    } else {
    echo "Impossible de copier le fichier dans ".$content_dir ; 
    } 
     
    //ajout de l'image à la base de données
     
    $Date = date("Y-m-d");
    $Time = date("H:i:s");
    $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueName',
    		ImageName='$name_file',
    		ImageDesc='', 
                   	ImageRes='', 
                   	ImageSize='',
    		Date='$Date',
    		Time='$Time'"; 
    $result = mysql_query($query);
    }
    ?>
    Là on fait juste l'upload sans tests particuliers sur l'extention ou autre

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Essaye avec ce code :
    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
    <?php
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_katofo.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <br/><br/> 
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row[0], '">', $row[1], '</option>';
      }
    }
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
     
    if(isset($_FILES['katofo'])) // si formulaire soumis 
    {
    $RubriqueName = $_POST['frm_select_rubrique'];
     
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier 
    $tmp_file = $_FILES['katofo']['tmp_name']; 
    $name_file = $_FILES['katofo']['name']; 
     
    if(move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    {
    echo "Le fichier a bien été uploadé";
    } else {
    echo "Impossible de copier le fichier dans ".$content_dir ; 
    } 
     
    //ajout de l'image à la base de données
     
    $Date = date("Y-m-d");
    $Time = date("H:i:s");
    $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueName',
    		ImageName='$name_file',
    		ImageDesc='', 
                   	ImageRes='', 
                   	ImageSize='',
    		Date='$Date',
    		Time='$Time'"; 
    $result = mysql_query($query);
    }
    ?>
    Là on fait juste l'upload sans tests particuliers sur l'extention ou autre
    Re, j'ai testé votre fichier, mais la aussi il y un problème, le ma table est partiellement rempli par le nom et la rubrique mais l'image n'est pas copié dans le dossier voici les codes d'érreur que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Warning: move_uploaded_file(../photos/4/DSCF0264.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in E:\Program Files\EasyPHP 2.0b1\www\zimages\inc\inc_formulaire2.php on line 45
     
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'E:/Program Files/EasyPHP 2.0b1\tmp\php54.tmp' to '../photos/4/DSCF0264.JPG' in E:\Program Files\EasyPHP 2.0b1\www\zimages\inc\inc_formulaire2.php on line 45
    Impossible de copier le fichier dans ../photos/4/
    normalement après l'adresse du dossier de destination est la suivant : ../Photos/Nom du dossier/nom de la photo
    Dans notre cas il me renvoie le numéro d'id de la table rubrique au lieu du nom
    Et l'image n'est pas copié

    Merci de votre aide

  15. #15
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Essaye de modifier ton select comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['RubriqueName'], '" selected="selected">', $row['RubriqueName'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['RubriqueName'], '">', $row['RubriqueName'], '</option>';
      }
    }

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Essaye de modifier ton select comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['RubriqueName'], '" selected="selected">', $row['RubriqueName'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['RubriqueName'], '">', $row['RubriqueName'], '</option>';
      }
    }
    Re,
    Maintenant c'est quasiment bon a un petit détail près, J'ai la photo qui est bien copié dans le dossier concerné et dans la table concerné je retrouve le nom de l'image cependant l'ID de la rubrique n'est pas recupérer dans la table :
    Exemple : le dossier Paysage correspond au numéro 4
    la valeur 4 correspond a l'ID de la rubrique.

    Voici a nouveau le code :

    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
    <?php
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_formulaire2.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <br/><br/> 
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['RubriqueName'], '" selected="selected">', $row['RubriqueName'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['RubriqueName'], '">', $row['RubriqueName'], '</option>';
      }
    }
     
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
     
    if(isset($_FILES['katofo'])) // si formulaire soumis 
    {
    $RubriqueName = $_POST['frm_select_rubrique'];
     
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier 
    $tmp_file = $_FILES['katofo']['tmp_name']; 
    $name_file = $_FILES['katofo']['name']; 
     
    if(move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    {
    echo "Le fichier a bien été uploadé";
    } else {
    echo "Impossible de copier le fichier dans ".$content_dir ; 
    } 
     
    //ajout de l'image à la base de données
     
    $Date = date("Y-m-d");
    $Time = date("H:i:s");
    $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueName',
    		ImageName='$name_file',
    		ImageDesc='', 
                             ImageRes='', 
                             ImageSize='',
    		Date='$Date',
    		Time='$Time'"; 
    $result = mysql_query($query);
    }
    ?>
    Par la même ocassion je voudrais récupéré la taille de la photo/image c'est le champs ImageSize.

    merci de votre aide

  17. #17
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Code modifié :
    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
    <?php
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_formulaire2.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <br/><br/> 
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['RubriqueID'], '" selected="selected">', $row['RubriqueName'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['RubriqueID'], '">', $row['RubriqueName'], '</option>';
      }
    }
     
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
     
    if(isset($_FILES['katofo'])) // si formulaire soumis 
    {
    $RubriqueID = $_POST['frm_select_rubrique'];
    $query1 = "SELECT RubriqueName FROM Rubrique WHERE RubriqueID = '$RubriqueID' ";
    $result1 = mysql_query($query1) or die("ERROR");
    $row_result = mysql_fetch_assoc($result1);
     
    $RubriqueName = $row_result['RubriqueName'];
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier 
    $tmp_file = $_FILES['katofo']['tmp_name']; 
    $name_file = $_FILES['katofo']['name'];
    $taille_file = filesize($tmp_file);
     
     
    if(move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    {
    echo "Le fichier a bien été uploadé";
    } else {
    echo "Impossible de copier le fichier dans ".$content_dir ; 
    } 
     
    //ajout de l'image à la base de données
     
    $Date = date("Y-m-d");
    $Time = date("H:i:s");
    $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueID',
    		ImageName='$name_file',
    		ImageDesc='', 
                             ImageRes='', 
                             ImageSize='$taille_file',
    		Date='$Date',
    		Time='$Time'"; 
    $result = mysql_query($query);
    }
    ?>
    Dans le select les options sont égales à l'id.
    Ensuite on fait une nouvelle requête en fonction de l'id pour obtenir le nom de la rubrique ...
    J'ai également ajouter la taille du fichier ....

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Jumano Voir le message
    Code modifié :
    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
    <?php
    echo "essaie d'envoie des photo vers la base de donnée";
     
    include ("inc_cnx.php");
     
    echo "<form action='inc_formulaire2.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='40'/>
    	  <br/><br/> 
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['RubriqueID'], '" selected="selected">', $row['RubriqueName'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['RubriqueID'], '">', $row['RubriqueName'], '</option>';
      }
    }
     
    echo "</select>
    	<br/><br/>
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
     
    if(isset($_FILES['katofo'])) // si formulaire soumis 
    {
    $RubriqueID = $_POST['frm_select_rubrique'];
    $query1 = "SELECT RubriqueName FROM Rubrique WHERE RubriqueID = '$RubriqueID' ";
    $result1 = mysql_query($query1) or die("ERROR");
    $row_result = mysql_fetch_assoc($result1);
     
    $RubriqueName = $row_result['RubriqueName'];
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier 
    $tmp_file = $_FILES['katofo']['tmp_name']; 
    $name_file = $_FILES['katofo']['name'];
    $taille_file = filesize($tmp_file);
     
     
    if(move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    {
    echo "Le fichier a bien été uploadé";
    } else {
    echo "Impossible de copier le fichier dans ".$content_dir ; 
    } 
     
    //ajout de l'image à la base de données
     
    $Date = date("Y-m-d");
    $Time = date("H:i:s");
    $query = "INSERT INTO Image SET 
    		ImageID='NULL', 
    		RubriqueID='$RubriqueID',
    		ImageName='$name_file',
    		ImageDesc='', 
                             ImageRes='', 
                             ImageSize='$taille_file',
    		Date='$Date',
    		Time='$Time'"; 
    $result = mysql_query($query);
    }
    ?>
    Dans le select les options sont égales à l'id.
    Ensuite on fait une nouvelle requête en fonction de l'id pour obtenir le nom de la rubrique ...
    J'ai également ajouter la taille du fichier ....
    Bonjour,

    j'ai fais un test et c'est correcte j'ai mes données (photo/image qui sont copiées dans le dossier concernée et les info sur l'image sont mis a jour dans la table concernée)
    Pour le reste je vais essayer de chercher la solution afin de gérer les doublons et la sécurité.

    Merci beaucoup de votre aide
    bonne continuation
    Runcafre91

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire - Envoi
    Par rockingstone dans le forum Langage
    Réponses: 1
    Dernier message: 19/08/2006, 13h55
  2. Formulaire. Envoi infos dans base mysql + envoi email
    Par Donald08 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/08/2006, 13h28
  3. Capture et envoie de photo
    Par infotron dans le forum Java ME
    Réponses: 6
    Dernier message: 27/07/2006, 14h45
  4. Formulaire envoie un .jpg
    Par Le Mad dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/05/2006, 17h41
  5. envoi de photo en attachement
    Par progpolice dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2006, 15h32

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