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 :

insertion d'images dans un formulaire PHP


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    insertion d'images dans un formulaire PHP
    Bonjour,
    Pourriez vous m'aider s'il vous plait. j'ai un formulaire d'insertion d'images sur lequel j'ai une fonction qui transfert l'image.
    Mais lorsque je clique sur le bouton enregistrer rien ne se passe. ci dessous le code du formulaire ainsi que de la fonction (transfert).
    Merci pour votre aide:
    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
    <!-- Saisie du Formulaire -->
    <html>
        <head>
            <meta charset="utf-8">
            <link rel=stylesheet type="text/css" href="../DossierDuSite/style.css">
            <title>Saisie du Formulaire des catalogues d'images</title>
        </head>
        <body>
            <?php
            session_start();
            require_once 'connexion_Bd.php';
            $base = PDO_connecte_MYSQL();
     
    // fonction liste déroulante de bien
     
            function liste_deroulante_bien($base) {
                // écriture du début de l'élément de formulaire
                echo"<select name=\"bien\">\n";
                //écriture de la première option
                echo" <option value=\"\"></option>\n";
                // sélection de l'identifiant et du nom de tous les biens
                $requête = "SELECT id_B, reference_B FROM bien ORDER BY reference_B;";
                try {
     
                    $résultats = $base->query($requête);
                } catch (Exception $ex) {
                    exit("Erreur lors de l'exécution de la requête : " . $e->getMessage());
                }
                // écriture des options suivantes
                foreach ($résultats as $resultat) {
                    $identifiant = htmlspecialchars($resultat['id_B'], HTMLSPECIALCHARS_FLAGS, HTMLSPECIALCHARS_ENCODING);
                    $reference = htmlspecialchars($resultat['reference_B'], HTMLSPECIALCHARS_FLAGS, HTMLSPECIALCHARS_ENCODING);
                    echo" <option value=\"$identifiant\">$reference</option>\n";
                }
                // destruction du jeu de résultats de la requête
                unset($résultats);
                // ecriture de la fin de l'élement de formulaire
                echo"</select>\n";
            }
     
            include ("transfert.php");
            if (isset($_FILES['image'])) {
                // fonction transfert
                transfert();
            }
            ?>
            <h3>Formulaire Catalogue</h3>
            <form enctype="multipart/form-data" action="../DossierDuSite/Formulaire_Saisie_Image.php" method="post">
                <div class="Formulaire" >
                    <label for="image">Images:</label>
                    <input type="hidden" name="MAX_FILE_SIZE" value="250000"/>
                    <input type="file" id="image" name="image" size="50" /><br><br>
                </div>
                <div class="Formulaire">
                    <label for="Identifiant_B">Référence du bien</label>
                    <?php liste_deroulante_bien($base); ?>
                </div>
                <div class="Formulaire" id="submit">
                    <input type="submit" name="enregistrer" value="Enregistrer">
                    <input type="submit" name="annuler" value="Annuler">
                </div>
            </form>
        </body>`
    </html>


    fonction transfert
    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
    <?php
     
    // fonction transfert d'image
    function transfert() {
        $ret = false;
        $image_blob = '';
        $image_taille = 0;
        $image_nom = '';
        $taille_max = 250000;
        $ret = is_uploaded_file($_FILES['image']['tmp_name']);
         $reference_Bien = $_POST['bien'];
        if (!$ret) {
            echo "Il ya eu un soucis avec le transfert";
            return false;
        } else {
            // le fichier a bien été reçu
            $image_taille = $_FILES['image']['size'];
     
            // test de la taille de l'image
            if ($image_taille > $taille_max) {
                echo "Cette est image est volumineuse !";
                return false;
            }
            $image_nom = $_FILES['image']['name'];
          //  include("connexion_Bd.php");
            $image_blob = file_get_contents($_FILES['image']['tmp_name']);
            $req_ajout = "INSERT INTO catalogue (photo_Cat, id_B, image_nom, image_taille) VALUES "
                    . "(addslashes $image_blob, $reference_Bien, $image_nom, $image_taille)";
           // $ret = mysql_select_db($req_ajout) or die (mysql_error());
            return true;
        }
    }
    ?>

  2. #2
    Candidat au Club
    Bonjour,
    Pourriez vous m'aider à résoudre ce soucis s'il vous plait.
    Merci

  3. #3
    Membre à l'essai
    regarde le contenu de la superglobale $_POST

  4. #4
    Modératrice

    Tester $_FILES['error'] serait sans doute une bonne idée
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

###raw>template_hook.ano_emploi###