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 :

upload d'image avec form


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut upload d'image avec form
    bonjour a tous

    j ai fait un form pour ajouter des infos dans un bloc de ma page index.

    tout ceci d'enregistre dans ma base mysql

    tout marche bien, titre, contenu mais je veux pouvoir insérer une photo.

    et cette photo ne s'insere pas dans la base.

    voici le code de cette page avec le form d'ajout.

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
     
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
            <style type="text/css">
            h3, form
            {
                text-align:center;
            }
            </style>
        </head>
     
        <body>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("infos");
    if (isset($_GET['modifier_infos'])) 
    {
     
        $_GET['modifier_infos'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_infos']));
     
      $retour = mysql_query('SELECT * FROM infos WHERE id=\'' . $_GET['modifier_infos'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
        // On place le titre et le contenu dans des variables simples
        $titre = stripslashes($donnees['titre']);
        $contenu = stripslashes($donnees['contenu']);
        $photo=stripslashes($donnees['photo']);
        $id_info = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rédige une nouvelle info
    {
        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
        $titre = '';
        $contenu = '';
    	$photo='';
        $id_info = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>
    <form action="liste_infos.php" method="post">
    <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
    <p>
        Contenu :<br />
        <textarea name="contenu" cols="50" rows="10">
        <?php echo $contenu; ?>
        </textarea><br />
         <input type="file" name="photo" value="<?php echo $id_photo;?>"/>
    <input type="hidden" name="id_info" value="<?php echo $id_info; ?>" />
        <input type="submit" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>
    voila si vous pouvez me donner un coup de main au moins pour cette partie.

    merci

    steph

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas de requete INSERT ?

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Stéph utilisateur d'acces Voir le message
    bonjour a tous
    j ai fait un form pour ajouter des infos dans un bloc de ma page index.
    tout ceci d'enregistre dans ma base mysql
    tout marche bien, titre, contenu mais je veux pouvoir insérer une photo.
    et cette photo ne s'insere pas dans la base.

    steph
    Salut !! surtout ne mets pas d'images dans tes bases de données,
    tu dois
    1 lui faire parcourir pour qu'il te donnes l'image a uploader
    2 la creer dans un repertoire /trombinoscope/sonimage.jpg
    3 dans Mysql dans la table user par exemple le champ image recevra
    /trombinoscope/sonimage.jpg

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 102
    Points : 142
    Points
    142
    Par défaut
    tu dois mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="" method="post" enctype="multipart/form-data">

  5. #5
    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

    <input type="file" name="photo" value="<?php echo $id_photo;?>"/>
    Attention, l'input file sert à envoyer un fichier côté client vers le serveur, tu ne dois pas le remplir depuis le serveur. On le remplit avec le chemin local du placement du fichier (avec Parcourir ou browse)

  6. #6
    Membre éclairé
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Points : 687
    Points
    687
    Par défaut
    Salut,

    tu trouveras dans les tutoriels des infos détaillées pour uploader une photo en php

    A++

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    merci à tous

    j ai lu le tuto mais il est un peu dur

    bon on va procéder par ordre.

    ce que je comprends c est que je dois avoir un repertoire image et la base ne va stocker que le lien vers les images.

    tout d'abord est ce que le form est bon?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form action="liste_info.php" method="post" enctype="multipart/form-data">
    <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
    <p>
        Contenu :<br />
        <textarea name="contenu" cols="50" rows="10">
        <?php echo $contenu; ?>
        </textarea><br />
          <input type="file" name="photo" value ="<?php echo $id_photo;?>"/>
        <input type="hidden" name="id_info" value="<?php echo $id_news; ?>" />
        <input type="submit" value="Envoyer" />
     
    </p>
    </form>
    je dois bien sur mettre sur ma page liste_info.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            mysql_query("INSERT INTO info VALUES('', '" . $titre . "', '" . $contenu . "','".$photo."')");
    mais ma question, c est comment lui dire de stocker la photo dans le repertoire image?

    voila si vous pouvez m aider sur ce point que j ai une base de départ.

    merci

    steph

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,
    je suis embété de te demander cela, mais le mieux serait que tu fasse un test a part
    prends ces deux PHP et mets les provisoirement dans la racine de ton web

    appelles les bien par leur nom !
    upload_base_saisie.php
    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
     
    <?PHP             
    if (isset($_GET["message"])) $message=trim($_GET["message"]);
        else $message="";
    if (isset($_GET["Limg"])) $Limg=trim($_GET["Limg"]);
        else $Limg="";
    ?>
    <html><body>
    <br /><br /><br />
    <p align=center>
    <?PHP
    echo ("".$message."<br />");
    if ($Limg!="") echo ("<img src='".$Limg."' alt='' ><br />");
    ?>
     
    <br /><br /><br />
    <form name="formulaire" method="POST"
     action="upload_base_upload.php"  enctype="multipart/form-data" >
     <input type="hidden" name="MAX_FILE_SIZE" value="40000" />
     <input id="fichier1"  name="fichier1" type="file"  /><br />
     <input value="Valider" name="submit" type="submit" />
    </form>
    </p>
    </body>
    </html>
    Et upload_base_upload.php

    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
     
    <?php
    if (isset($_FILES['fichier1'])) $LeFic=trim($_FILES['fichier1']['name']);
        else $LeFic="";
    $message="";
    if(  $LeFic!="" )
     {
     $poid_max="40000"; 
     $destin="0workdesti/"; 
     $taille = getimagesize($_FILES['fichier1']['tmp_name']);
     $poid = filesize($_FILES['fichier1']['tmp_name']); 
     $message="";
     
     if(substr($LeFic,-3) !="jpg")
       {$message="L image doit etre au format jpeg jpg";}
     if ($poid>$poid_max)
      {$message=" l image est trop lourde ... 40 Ko maxi";}
     if ($poid<=$poid_max && $message=="")
      {
       // === on supprime les accents et les espaces du nom de l'image 
       $LeFic = strtr($LeFic,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",   
        "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");  
       // === on supprime les espaces
       $LeFic=str_replace(" ","_",$LeFic);
       // === on met en minuscule
       $LeFic=strtolower($LeFic); 
       $newnom=$destin.$LeFic;
       if (file_exists($destin.$LeFic))
         {
            $message="L image est déjas sur le site web";
         }
         else
          {
          copy($_FILES['fichier1']['tmp_name'],$destin.$LeFic);
          $imagefile=$destin.$LeFic;
          $src_img = imagecreatefromjpeg($imagefile);
          $message="L image ".$newnom." est copiée";
         }
      }
     }
     
    $Limg=$imagefile;
    print "<script type='text/javascript'>window.location='upload_base_saisie.php?Limg=".$Limg."&message=".$message."'</script>";
    exit;
    ?>
    Crées un répertoire 0workdesti/
    et donnes lui les droits 777

    exécutes sur un tout petit jpeg un upload

    tu verra qu'au retour , le fichier est bien venu dans 0workdesti/
    et tu as dans $Limg ....

    0workdesti/tonimg.jpg
    c'est cette valeur que tu peux mémoriser dans Mysql !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    fox tu es top

    effectivement mon image jpg s 'affiche et j ai bien dans mon rep 0workdesti/bidule.jpg.

    donc il me reste plus qu a la sauvegarder dans ma table image de ma base.

    je fait un insert dans mon fichier upload_base_upload.php et je mets quoi si c est pas trop demandé?

    merci

    steph

  10. #10
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Stéph utilisateur d'acces Voir le message
    fox tu es top

    effectivement mon image jpg s 'affiche et j ai bien dans mon rep 0workdesti/bidule.jpg.

    donc il me reste plus qu a la sauvegarder dans ma table image de ma base.

    je fait un insert dans mon fichier upload_base_upload.php et je mets quoi si c est pas trop demandé?
    merci
    steph
    Uniquement le chemin !
    admets que ce soit la fiche de FoxLeRenard
    dans ton MYSQL a l'enregistrement

    $Id="FoxLeRenard"
    tu as pour ce date une zone
    $MotDePasse="jhgjhgjgjgjg"
    et a avatard
    $avatard="0workdesti/tonimg.jpg"

    donc quand tu affichera mon profil tu affichera l'avatard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo ("Avatard <img src='".$avatard."' alt='' ><br />");

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 386
    Points : 104
    Points
    104
    Par défaut
    salut Fox

    je vois l 'idée

    donc je veux enregistrer cette image que tu appelles fichier1 avec l'id de l info, titre et le contenu car cette image fait partie d'une nouvelle info.(donc ça suppose bien sur que j ai rajouté titre, info et id incrémenté à ton form.)

    ça peut donner ça pour enregistrer cette nouvelle info?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //enregistrement dans la base de la nouvelle info
    			mysql_select_db($database_ConnexionBoutiqueinfo, $ConnexionBoutiqueinfo);
    			$insertInfo = "INSERT INTO info (id,titre, contenu, fichier1 ) VALUES ('$id','$titre', '$contenu', '$fichier1')";
    			mysql_query($insertInfo, $ConnexionBoutiqueinfo) or die(mysql_error());
    cet insert se met bien dans upload_base_upload.php .

    aprés il me restera à créer une nouvelle page.php pour afficher les infos..avec la photo.

    merci

    steph

Discussions similaires

  1. [CKEditor] Upload d'images avec FCKeditor
    Par ludo74 dans le forum Bibliothèques & Frameworks
    Réponses: 17
    Dernier message: 04/06/2010, 16h39
  2. [MySQL] Upload d'image avec insertion du chemin dans bdd
    Par DjChat dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 29/05/2008, 10h45
  3. [Upload] Upload d'image avec PHP !
    Par King_T dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2008, 02h21
  4. [CKEditor] Upload d'image avec FCKeditor
    Par frutix dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 01/03/2007, 19h31
  5. [Upload] uploader une image avec move_uploades_file
    Par pod1978 dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 13h50

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