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 :

Problème avec une variable tableau dans une session [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 92
    Points
    92
    Par défaut Problème avec une variable tableau dans une session
    Bonjour a tous,
    Je dois faire pour l'école un fichier pour créer un mail avec plusieurs fichiers joints.
    J'avais déjà fais un post avec ce souci car j'utilisais un tableau pour stocker les fichiers joints et a chaque rafraichissement le tableau était vide. On m'a dit d'utiliser les session ce que j'ai fais mais maintenant mon problème c'est que c'est toujours le dernier fichier ajouté qui prend la place. Il ne se rajoute pas a la suite.
    voici le code
    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
     
    session_start();
    $_SESSION['tabFile'] = $tabFile = array();
     
    if(isset($_POST['addFile']))
    {
    	$tabFile = $_SESSION['tabFile'];
     
    	echo $_FILES['joinFile']['tmp_name']."<br/>";// chemin temporaire
    	echo $_FILES['joinFile']['name']."<br/>";// noom du fichier
    	echo $_FILES['joinFile']['type'];// type de fichier
     
    	array_push($tabFile,$_FILES['joinFile']['name']);
    	$_SESSION['tabFile'] = $tabFile;
    }
    Je n'ai pas mis tous le formulaire car les info dans mes echo fonctionne bien

    le fichier se rajoute mais toujours a l'index 0 de mon tableau.

    Je le contrôle avec print_r($_SESSION['tabFile']);

    J'ai tenter de chercher sur le net des session contenant des variable tableau mais rien trouver.

    Je remercie par avance les personne qui peuvent me dire ou est l'erreur ou aiguillée sur la solution.

  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
    Ton formulaire doit avoir une notation en tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="joinFile[]" />
    A la récupération, il faut évidemment un boucle pour parcourir le tableau reçu.

    Attention c'est aussi le contenu du fichier qu'il faut mettre en session : si tu mets uniquement les données de $_FILES() tu auras une jolie coquille vide.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    Extrait du manuel PHP de la fonction array_push :

    Note :
    Si vous utilisez la fonction array_push pour ajouter un élément à un tableau, il est mieux de la remplacer par l'opérateur $array[] = qui évite le passage par une fonction.

    Donc ça sera déjà plus pertinent de mettre ça peut être, non ? En enlevant ton tableau intermédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    session_start();
     
    if(isset($_POST['addFile']))
    {
    	echo $_FILES['joinFile']['tmp_name']."<br/>";// chemin temporaire
    	echo $_FILES['joinFile']['name']."<br/>";// noom du fichier
    	echo $_FILES['joinFile']['type'];// type de fichier
     
    	$_SESSION['tabFile'][] = $_FILES['joinFile']['name'];
    }
    Bien cordialement.
    La politesse n'a jamais tué personne
    Le langage SMS c'est le mal !
    Pensez au tag

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    je te remercie sa marche très bien
    par contre Sabotage je n'ai pas compris se que tu entendais pas il faut aussi copier le contenu du fichier.

    Il ne fais pas une copie du fichier sur le serveur.

    C'est vraiment la première fois que je fais un upload

    Merci pour les precision

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    En gros, ce que dit sabotage, c'est que tu stockes uniquement des informations sur le fichier mais pas le fichier en lui même
    La politesse n'a jamais tué personne
    Le langage SMS c'est le mal !
    Pensez au tag

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 92
    Points
    92
    Par défaut
    ok je vous remercie pour les précision

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

Discussions similaires

  1. Portée d'une variable tableau dans une fonction JS
    Par renaud26 dans le forum jQuery
    Réponses: 7
    Dernier message: 02/08/2011, 10h24
  2. [AJAX] Transmettre une variable JS dans une variable de session PHP
    Par tistri dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/08/2008, 08h18
  3. Réponses: 5
    Dernier message: 26/03/2008, 21h48
  4. Réponses: 7
    Dernier message: 09/12/2007, 11h51
  5. afficher une variable tableau dans une JSP
    Par johnnywalker dans le forum Struts 1
    Réponses: 11
    Dernier message: 04/03/2007, 22h02

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