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 :

Ajouter un fichier + mettre le path en base


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    janvier 2018
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2018
    Messages : 272
    Points : 58
    Points
    58
    Par défaut Ajouter un fichier + mettre le path en base
    Bonjour,
    Tout est dans le titre! J'ai plusieurs Notices à propos de mon code PHP, l'ajout du fichier ne se fait pas :
    Nom : notices.png
Affichages : 36
Taille : 47,6 Ko
    Voici le code qui correspond:
    Le 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
     
     <?php include 'connect.php' ; 
     
    if(!empty($_POST['produitsRef']))
    {
    	$produitsRef = isset($_POST['produitsRef']) ? $_POST['produitsRef'] : NULL;
    	$produitsNom = isset($_POST['produitsNom']) ? $_POST['produitsNom'] : NULL;
    	$produitsType = isset($_POST['produitsType']) ? $_POST['produitsType'] : NULL;
    	$produitsDescription = isset($_POST['produitsDescription']) ? $_POST['produitsDescription'] : NULL;
    	$produitsPrix = isset($_POST['produitsPrix']) ? $_POST['produitsPrix'] : NULL;
     
    	//upload du fichier
     
    	$target = "../img/images_produits/";
    	$target = $target . basename( $_FILES['produitsFichier']['name']);
    	var_dump($target);
    	if(move_uploaded_file($_FILES['produitsFichier']['tmp_name'], $target)) {
    		echo "Le fichier a bien été inséré!";
    	} else{
    		echo "Le fichier n'a pas été inséré!";
    	}
     
     
    	$inscription = $bdd->prepare("INSERT INTO produits (produitsRef, produitsNom, produitsType, produitsDescription, produitsFichier, produitsPrix) VALUES(?,?,?,?,?,?)");
    	$inscription->execute(array($produitsRef,$produitsNom,$produitsType,$produitsDescription,$target, $produitsPrix));
     
    	echo "<span class='success'>Votre produit a bien été créé.</span>";
    } ?>
     
    <script>
    setTimeout(function(){ location.replace("../accueil.php") }, 1300);
    </script>
    Le formulaire au besoin:
    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
     
    		<form action="php/ajouter_produit.php" method="post">
    			<h1>Ajouter un produit</h1>
    			<label>Référence du produit</label>
    			<input type="text" name="produitsRef" placeholder="G764JYHE5" required />
     
    			<label>Nom du produit</label>
    			<input type="text" name="produitsNom" placeholder="T-Shirt" required /><br />
     
    			<label>Type du produit</label>
    			<select type="text" name="produitsType" required />
    				<?php include 'php/connect.php' ; session_start(); 
    				$list = $bdd->query('SELECT produitsTypeNom, produitsTypeId FROM produitstype'); ?>
    				<?php
    				while ($data = $list->fetch()) { ?>
    				  <option value="<?php echo $data['produitsTypeId']; ?>"> <?php echo $data['produitsTypeNom']; ?></option>
    				<?php } $list->closeCursor(); ?>
                </select>	
     
    			<label>Description du produit</label><br />
    			<textarea rows="4" cols="50" type="text" class="box-input" name="produitsDescription" required /></textarea><br />
     
    			<label>Image du produit</label><br />
    			<input type="file" name="produitsFichier" value="" required></input><br />
     
    			<label>Prix du produit</label>
    			<input type="text" class="box-input" name="produitsPrix" placeholder="40,30" required />
    			<input type="submit" name="submit" value="Ajouter le produit" class="box-button" />
    		</form>
    Résultat en base :
    Nom : notices.png
Affichages : 34
Taille : 8,9 Ko
    Merci pour vos efforts!

  2. #2
    Membre expert Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 1 793
    Points : 3 321
    Points
    3 321
    Par défaut
    Bonjour,

    Il faut ajouter l'attribut enctype au <form> : <form action="php/ajouter_produit.php" method="post" enctype="multipart/form-data"> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $fichier=$_FILES['produitsFichier'];
    $fichierName=$fichier['name'];
    Il faut aussi vérifier le type du fichier mime_type et t'assurer que le fichier envoyé est bien une image , car un mauvais utilisateur pourra t'envoyer un .exe ou autre...

    Après tu peux simplifier les conditions avec l'opérateur "??" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $produitsNom =$_POST['produitsNom'] ?? NULL;
    //c'est l'équivalent de :
    $produitsNom = isset($_POST['produitsNom']) ? $_POST['produitsNom'] : NULL;

  3. #3
    Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    janvier 2018
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2018
    Messages : 272
    Points : 58
    Points
    58
    Par défaut
    Merci pour ton retour, problème résolue. Merci pour tes conseils!

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

Discussions similaires

  1. Ajouter un fichier DWG à une base de donnée postgreSQL
    Par Matou5 dans le forum Administration
    Réponses: 1
    Dernier message: 29/06/2016, 07h09
  2. [Framework] Ajoute les fichiers .jar par Maven dans le build path
    Par h2qutc dans le forum Spring
    Réponses: 2
    Dernier message: 27/07/2014, 19h00
  3. [MySQL] ajouter des fichiers dans une base de données phpmyadmin
    Par turki chaima dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/03/2014, 20h36
  4. Réponses: 1
    Dernier message: 08/02/2009, 09h19
  5. [langage] Problème de taille de fichier à mettre dans
    Par And_the_problem_is dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2002, 10h41

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