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 :

Upload qui fonctionne partiellement [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Upload qui fonctionne partiellement
    Bonjour,

    J'ai un site où je gère des entreprises et des étudiants. Ce site à été créé sur plusieurs années par des étudiants différents et autant vous dire que le modèle MVC est à la sauce de chacun... Cela rend donc particulièrement difficile de faire du code propre.

    Mon but est que l'entreprise puisse upload plusieurs offres selon ce qu'elle recherche comme formation.

    Le code de mon upload fonctionne uniquement pour le département GEA mais dès lors que je passe à un autre département, cela me considère mon fichier comme vide...

    Le code du formulaire d'inscription :

    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
     
    <?php
    ************************$compteur = 0;
    ************************$listeFormations = $dao->getListeFormations();
    ************************$listeDepartements = array();
    ************************foreach ($listeFormations as $formation) {
    ****************************if(!in_array($formation->getDepartement(), $listeDepartements)) {
    ********************************array_push($listeDepartements, $formation->getDepartement());
    ****************************}
    ************************}
    ************************foreach ($listeDepartements as $departement) {
    ****************************echo ' <span><b>Département '.$departement.' :</b></span><br/>';
    ****************************foreach ($listeFormations as $formation) {
    ********************************if($formation->getDepartement() == $departement) {
    ************************************$name="offre_";
    ************************************$name.=$formation->getInitiales();
    ************************************echo $name;
    ************************************echo '
    ************************************<input type="checkbox" name="formation['.$compteur.']" value="'.$formation->getInitiales().'" onClick="EnableSubmit(this)">
    ************************************<a id="lienFormation" href="'. $formation->getLien() .'" target="_blank">'.
    ****************************************$formation->getDescription().'
    ************************************</a>
    ************************************<br />
    ************************************<input type="file" name='.$name.'>
    ************************************<br/> <br />';
    ************************************$compteur = $compteur + 1;
    ********************************}
    ****************************}
    ************************}
    *
    ********************?>
    Le code qui permet de gérer l'upload :

    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
     
     
    if ((isset($_POST['inscription'])) && ($dateNow >= $dateDebutEtu && $dateNow <= $dateLimitEtu)) {
    ******if($this->dao->ajoutEntreprise()) {
    ********echo "FILES";
    ********echo $_FILES[$name]['name'];
    *
    ********$listeFormations = $this->dao->getListeFormations();
    ********foreach ($listeFormations as $formation){
    **********$name="offre_";
    **********$name.=$formation->getInitiales();
    **********echo $name;
    **********if (isset($_FILES[$name]['error'])) {
    ************if(($_FILES[$name]['error'] == 0) || ($_FILES[$name]['error'] == 4)){
    **************if ($_FILES[$name]['size'] > 10485760) {
    ****************echo "La taille du fichier est trop grande (1Mo max).";
    ****************exit();
    **************}
    **************$extensions_valides = array("pdf");
    **************$extension_upload = strtolower( substr( strrchr($_FILES[$name]['name'],'.') ,1) );
    *
    **************if(($_FILES[$name]['error'] == 0)){
    ****************if (!in_array($extension_upload, $extensions_valides)) {
    ******************echo "Mauvais format du fichier (pdf necessaire)";
    ******************exit();
    ****************}
    **************}
    *
    **************if ((isset($_POST['nomSociete'])) && ($_FILES[$name]['error'] == 0)) {
    ******************$nomFichier = $_POST['nomSociete'].'_'.$name;
    ******************$chemin = "offre/{$nomFichier}.{$extension_upload}";
    ******************echo $nomFichier;
    ******************if (isset($_FILES[$name]['tmp_name'])) {
    ********************$resultat = move_uploaded_file($_FILES[$name]['tmp_name'], $chemin);
    **********************if (!$resultat) {
    ************************echo "Echec de transfert";
    ************************exit();
    **********************}
    ******************}
    **************}
    ************}
    ************else{
    **************echo "Une erreur lors du transfert de fichier est survenue. ";
    **************echo "Code erreur ".$_FILES[$name]['error'];
    **************exit();
    ************}
    **********}
    ********}
    ******}
    **else {
    ****$_SESSION['fail'] = "Cette adresse email a déjà été utilisée ou cette entreprise est déjà inscrite à l'événement. Veuillez vérifier que vous n'êtes pas déjà inscrit ou réessayez avec une autre adresse email.";
    ****$this->ctrlInscriptionEnt->inscriptionEnt();
    ****unset($_SESSION['fail']);
    ****return;
    **}
    **$this->ctrlConfirmationInscription->genereVueConfirmationInscription("");
    **return;
    }
    Je m'énerve tout seul à chercher, trifouiller mais rien n'y fait...

    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Quelle erreur/résultat obtiens-tu exactement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Pardon, dans l'énervement j'ai posté ça comme ça, sans vraiment expliquer..

    Sur le formulaire d'inscription, l'entreprise coche et envoie son offre d'emploi pour la formation qu'elle choisie. Elle n'est pas obligée de choisir l'ensemble des formations. Chaque formation appartient à un département (en gras).
    Dans mes tests, lorsque j'envoie mon offre pour mes formations appartenant au département GEA, cela fonctionne, c'est-à-dire que mes fichiers pdf sont bien envoyés au serveur. Cependant, quand j'essaie de choisir une autre formation appartenant à un autre département, le fichier n'existe pas et donc la condition du isset est outrepassée... Le fichier n'est donc pas envoyé...

    Ce que je ne comprends pas c'est que c'est exactement le même algo qui est utilisé..

    Je vais mettre des screens pour bien expliquer

    Donc dans mon dossier j'ai bien les fichiers pdf de la forme <NomEntreprise>_offre_<InitialesFormation>
    Nom : Capture d’écran_2017-12-27_18-34-10.png
Affichages : 85
Taille : 7,9 Ko


    En gras, on a les départements et en dessous les formations. le texte juste avant est un affichage de la variable $name du code du formulaire.

    Nom : Capture d’écran_2017-12-27_18-34-54.png
Affichages : 79
Taille : 307,9 Ko

    Nom : Capture d’écran_2017-12-27_18-35-17.png
Affichages : 71
Taille : 92,1 Ko

    Et donc, lorsque je choisi une autre formation, il me saute toutes mes boucles... Impossible d'upload

  4. #4
    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 manque les " sur le nom de ton champs, donc à ma avis avec les espaces dans le nom ça coince.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="'.$name.'">
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    J'ai changé mais non, toujours rien, ce n'est pas ça... Je vais essayer de voir dans la BD pour modifier et enlever les espaces

    EDIT : Il semblerait que ce soit els espaces qui posent problèmes ! Je viens de modifier les initiales d'une formation et elle s'est upload !

    EDIT 2: C'était bien les espaces, j'ai tout modifié, et les uploads se font correctement !

    Merci beaucoup, c'était tout bête mais c'était une piste que je n'avais pas envisagé ^^

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

Discussions similaires

  1. [MySQL] Upload qui ne fonctionne pas
    Par roukgreg dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 11/08/2010, 12h44
  2. Formulaire php qui fonctionne partiellement
    Par Fulgurator dans le forum Langage
    Réponses: 16
    Dernier message: 15/10/2009, 00h28
  3. code qui fonctionne en local et pas sur le net
    Par vraipolite dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/08/2005, 10h10
  4. une requete qui fonctionne aux 3/4...
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 22h08

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