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 :

Insertion texte et upload dans la bdd (poo)


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 8
    Par défaut Insertion texte et upload dans la bdd (poo)
    Bonjour, voici mon problème le souci c' est que je ne sais pas comment uploader des fichiers et des textes dans un meme formulaire Voici mes codes:

    Ma page html
    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
    	<title> Demande de remboursement </title>
    </head>
    <body>
    <header><h1> Faire une demande de remboursement </h1></header>
    <p>
    <form name="formAjouter" action="ajouterDemande.php" method="post">
    	Informations
    	<li>Date de trajet <input type="date" name="datetrajet" placeholder="Date de trajet"></li>
    	<li>Ville de départ <input type="text" name="villedepart" placeholder="Ville de départ"></li>
    	<li>Ville d' Arrivée <input type="text" name="villearrivee" placeholder="Ville d' Arrivée"></li>
    	<li>Puissance administrative <input type="text" name="puissance" placeholder=" Chevaux Fiscaux ">Chevaux</li>
    	<li>Motorisation <input type="text" name="motorisation" placeholder="Ex: Essence, Gazole... "></li>
    	<li>Péage <input type="text" name="peage" placeholder="Montant du Péage">Euros</li>
    	<br>
    	Formulaire d'envoi de fichier :<br/>
    	<input type="file" name="avatar"/><br/>
    </p>
    <input type="reset" name="reset" value="Réinitialiser"> <input type="submit" name="valider" value="Valider">
    </form>
    </body>
    </html>
    Ensuite ma classe classeDeamnde.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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
    require_once 'accesBDD.php';
    class Prestation{
    	private $_datetrajet;
    	private $_villedepart;
    	private $_villearrivee;
    	private $_puissance;
    	private $_motorisation;
    	private $_peage;
    	private $_fichier;
    	private $_chemin;
    	private $_sqlAjouter;
    	private $_reqAjouter;
    	private $_sqlAjouter1;
    	private $_reqAjouter1;
    	private $_sqlAjouter2;
    	private $_reqAjouter2;
    	public function __construct($datetrajet, $villedepart, $villearrivee, $puissance, $motorisation, $peage){
    		// je construis mon objet en faisant une requête dans ma base de données
    		// puis en affectant les résultats de la requête aux champs de mon objet
    		$this->_datetrajet = $datetrajet;
    		$this->_villedepart = $villedepart;
    		$this->_villearrivee = $villearrivee;
    		$this->_puissance = $puissance;
    		$this->_motorisation = $motorisation;
    		$this->_peage = $peage;
     
    	}
    	public function ajouterInfos($BDD){
    		$this->_sqlAjouter1 = 'INSERT INTO demandederemboursement(datetrajet, villedepart, villearrivee, puissance, motorisation, peage) VALUES(:datetrajet, :villedepart, :villearrivee, :puissance, :motorisation, :peage)';
    		$this->_reqAjouter1 = $BDD->getConnexion()->prepare($this->_sqlAjouter1);
    		$this->_reqAjouter1->execute(array(
    				'datetrajet' => $this->_datetrajet,
    				'villedepart' => $this->_villedepart,
    				'villearrivee' => $this->_villearrivee,
    				'puissance' => $this->_puissance,
    				'motorisation' => $this->_motorisation,
    				'peage' => $this->_peage
    			)
    		);
    	}
    	public function ajouterJustificatif($BDD){
    		if (isset($_FILES['avatar'])) {
    			//stockage des fichiers uploader dans le dossier upload
    			$chemin = 'upload/';
    			//définition du fichier
    			$fichier = basename($_FILES['avatar']['name']);
    			//copie du fichier uploader dans le répertoire définie précedemment
    			if (move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin . $fichier)){ //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    				$this->_sqlAjouter2 = 'INSERT INTO demandederemboursement(nom, chemin) VALUES(:toto, :titi  )';
    				$this->_reqAjouter2 = $BDD->getConnexion()->prepare($this->_sqlAjouter2);
    				$this->_reqAjouter2->execute(array(':toto' => $fichier, ':titi' => $chemin));
    				echo 'Upload effectué avec succès !';
    				// on affiche l' image
    				//  echo $fichier;
    				// echo "Affiche image : <img src=upload/$fichier>\n";
    			} else{ //Sinon (la fonction renvoie FALSE).
    				echo 'Echec de l\'upload !';
    			}
    		}
    	}
    }
    ?>
    Et pour finir ma page php qui va effectuer la requete ajouterDemande.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    require_once 'accesBDD.php';
    require_once 'ClasseDemande.php';
    $connectBDD = new AccesBDD('root', '');
    $connectBDD->connexion();
    $newPrestation = new Prestation($_POST['datetrajet'], $_POST['villedepart'], $_POST['villearrivee'], $_POST['puissance'], $_POST['motorisation'], $_POST['peage']);
    $newPrestation->ajouterInfos($connectBDD);
    $newPrestation->ajouterJustificatif($connectBDD);
    $connectBDD->deconnexion();
    ?>
    Mon souci est que mes texte s' enregistre bien dans ma bdd mais pas mon upload si vous pouvez m' aider, ce serait sympa merci beaucoup

  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
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 8
    Par défaut ecriture bdd
    j' ai rajouter le encytype mais le souci est encore la.

    Je dois tout regrouper dans mon formulaire y comprit l' upload voici mon changement qui ne marche pas du tout et je ne comprend vraiemnt pas ce qui cloche, si vous pouvez m 'aider merci a vous


    Ma page html

    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
    <title> Demande de remboursement </title>
    </head>
    <body>
    <header>
        <h1> Faire une demande de remboursement </h1>
    </header>
    <p>
    <form name="formAjouter" action="ajouterDemande.php" method="post" enctype="multipart/form-data">
        > Informations
        <li>Date de trajet <input type="date" name="datetrajet" placeholder="Date de trajet"></li>
        <li>Ville de départ <input type="text" name="villedepart" placeholder="Ville de départ"></li>
        <li>Ville d' Arrivée <input type="text" name="villearrivee" placeholder="Ville d' Arrivée"></li>
        <li>Puissance administrative <input type="text" name="puissance" placeholder=" chevaux fiscaux ">Chevaux</li>
        <li>Motorisation <input type="text" name="motorisation" placeholder="Ex: Essence, Gazole... "></li>
        <li>Péage <input type="text" name="peage" placeholder="Montant du Péage">Euros</li>
        <br>
        Formulaire d'envoi de fichier :<br/>
        <input type="file" name="avatar"/><br/>
        </p>
        <input type="reset" name="reset" value="Réinitialiser"><input type="submit" name="valider" value="Valider">
    </form>
    </body>
    </html>
    Ma classe
    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
    <?php
    require_once 'accesBDD.php';
    class Prestation
    {
        private $_datetrajet;
        private $_villedepart;
        private $_villearrivee;
        private $_puissance;
        private $_motorisation;
        private $_peage;
        private $_fichier;
        private $_chemin;
        private $_sqlAjouter;
        private $_reqAjouter;
        public function __construct($datetrajet, $villedepart, $villearrivee, $puissance, $motorisation, $peage)
        {
            $this->_datetrajet   = $datetrajet;
            $this->_villedepart  = $villedepart;
            $this->_villearrivee = $villearrivee;
            $this->_puissance    = $puissance;
            $this->_motorisation = $motorisation;
            $this->_peage        = $peage;
        }
        public function ajouterInfos($BDD)
        {
            if (isset($_FILES['avatar'])) {
                //stockage des fichiers uploader dans le dossier upload
                $chemin  = 'upload/';
                //définition du fichier
                $fichier = basename($_FILES['avatar']['name']);
                //copie du fichier uploader dans le répertoire définie précedemment 
                if (move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
                    {
                    $this->_sqlAjouter = 'INSERT INTO demandederemboursement(datetrajet, villedepart, villearrivee, puissance, motorisation, peage, nom, chemin) VALUES(:datetrajet, :villedepart, :villearrivee, :puissance, :motorisation, :peage, :nom, :chemin)';
                    $this->_reqAjouter = $BDD->getConnexion()->prepare($this->_sqlAjouter);
                    $this->_reqAjouter->execute(array(
                        'datetrajet' => $this->_datetrajet,
                        'villedepart' => $this->_villedepart,
                        'villearrivee' => $this->_villearrivee,
                        'puissance' => $this->_puissance,
                        'motorisation' => $this->_motorisation,
                        'peage' => $this->_peage,
                        'nom' => $this->_fichier,
                        'chemin' => $this->_chemin
                    ));
                    echo 'Upload effectué avec succès !';
                } else //Sinon (la fonction renvoie FALSE).
                    {
                    echo 'Echec de l\'upload !';
                }
            }
        }
    }
    ?>
    et pour finir mon ajout pour ajouter tout le formulaire et lupload

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    require_once 'accesBDD.php';
    require_once 'ClasseDemande.php';
    $connectBDD = new AccesBDD('root', '');
    $connectBDD->connexion();
    $newPrestation = new Prestation($_POST['datetrajet'], $_POST['villedepart'], $_POST['villearrivee'], $_POST['puissance'], $_POST['motorisation'], $_POST['peage']);
    $newPrestation->ajouterInfos($connectBDD);
    $connectBDD->deconnexion();
    ?>

    je pense que le probleme vient de ma classe et de mon fichir d' ajout mais je ne vois pas ou si vous pouviez m' aider ce serait tres sympa de votre part merci =)

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bonjour.
    Ton HTML n'est pas bon.
    Corrige-le avant d'aller plus loin.
    http://www.w3schools.com/tags/tag_label.asp
    Tes li sans balise parente obligatoire, ton double chevron, ton formulaire imbriqué dans un p au lieu d'une div... tout ça, c'est pas possible.
    Fais UN formulaire spécifique pour l'upload. Ne mélange pas le formulaire de base et le formulaire d'upload.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    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
    Par défaut
    $this->_chemin n'est pas défini dans le code que tu nous montres.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Ma fonction insert n'ajoute rien dans la BDD ?
    Par Raiden1234 dans le forum Hibernate
    Réponses: 1
    Dernier message: 24/06/2009, 11h12
  2. problème d'upload dans ma bdd
    Par esther60 dans le forum Langage
    Réponses: 6
    Dernier message: 21/05/2008, 17h10
  3. insertion d'une date dans une bdd
    Par gastoncs dans le forum Langage
    Réponses: 5
    Dernier message: 28/03/2008, 18h47
  4. Insertion d'un byte[] dans une bdd mssql 2005
    Par telynor dans le forum ASP.NET
    Réponses: 16
    Dernier message: 10/03/2007, 16h43
  5. insertion d'un champs dans une bdd access
    Par pepper18 dans le forum SGBD
    Réponses: 1
    Dernier message: 26/05/2006, 19h47

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