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 :

Transfert de données du client au serveur


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant coût global
    Inscrit en
    Juillet 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant coût global
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 98
    Points : 61
    Points
    61
    Par défaut Transfert de données du client au serveur
    Bonjour,

    J'ai développé une application sur un site qui permet aux visiteurs de calculer la somme de variables aléatoires par simulation de Monte-Carlo. Pour utiliser cette application, l'utilisateur doit saisir un tableau de données pour décrire les variables.

    Dans la version actuelle de l'application, les variables suivent une loi uniforme et leur nombre est limité à 5, ce qui se traduit par un tableau contenant 10 données comme cela est présenté à l'adresse suivante:

    Je souhaite augmenter le nombre de variables et pouvoir utiliser des lois non uniformes ce qui va augmenter le nombre de données à saisir.

    Question:
    est-il possible de remplacer la saisie manuelle actuelle par un procédé plus pratique pour l'utilisateur ?

    Les données pourraient être renseignées par l'utilisateur dans un fichier (CSV par exemple) sur son PC, fichier qui serait lu par la simulation actuellement développée en PHP sur le serveur.

    Est-il possible de transférer un fichier CSV du poste client au serveur, fichier que l'utilisateur pourrait réutiliser en y apportant éventuellement des modifications.
    Si oui comment faire?
    Si non, existe-t-il un autre procédé permettant de ne pas saisir un grand tableau de données à chaque utilisation de l'application.

    Merci pour vos conseils

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonjour,
    Il n'y a aucun contraite technique à envoyer un fichier csv ou Excel vers un traitements PHP.
    Votre seule contrainte est côté client et de s'assurer de la bonne uniformisation des données.

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant coût global
    Inscrit en
    Juillet 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant coût global
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 98
    Points : 61
    Points
    61
    Par défaut Transfert de données du client au serveur
    Merci pour votre réponse rapide et rassurante. Je sais maintenant que c'est possible. Je souhaiterais cependant avoir quelques informations sur la façon de procéder.
    En supposant qu'un utilisateur ait rempli un fichier CSV ou Excel sauvegardé sur son PC, comment puis-je le récupérer sur le serveur pour d'abord le vérifier puis traiter les données. Je suppose que la récupération se fait via un script JavaScript. Comment récupérer un fichier stocké en local à l'aide d'un script. Où l'utilisateur place-t-il son fichier pour que je puisse le lire.
    Je ne sais pas si ma question est claire ou si elle a un sens, mais je remercie toute personne pouvant m'éclairer sur la procédure à suivre.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 394
    Points : 15 755
    Points
    15 755
    Par défaut
    l'utilisateur peut envoyer un fichier de son ordinateur à l'aide d'un bouton "input type=file"
    https://antoine-herault.developpez.c...ls/php/upload/

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Une fois votre fichier récupérer par l'exemple ci-dessus, voici un petit code tiré de la faq, qui vous permettra de la traiter :

    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
     
    $file = "mon_fichier.csv";
    $taille = 1024;
    $delimiteur = ":";
    /* ouverture en lecture */
    if($fp = fopen($file,"r")) {
        /* extraction d'une ligne */
        while ($ligne = fgets($fp, $taille)) {
            /* extraction champs */
            $tab = explode($delimiteur, $ligne);
            /* affichage des champs */
            foreach($tab as $elem) {
                echo "$elem<br/>";
            }
        }
        /* fermeture fichier */
        fclose ($fp);
    } else {
        echo "Ouverture impossible.";
    }

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Ou plus simple :

    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
     
    <?php
    $fichier = "mon_fichier.csv";
    $delimiteur = ":";
    /* ouverture en lecture */
    $file = file($file);
    if ($file) {
        /* extraction d'une ligne */
     
        foreach ($file as $line){
            $tab = explode($delimiteur, $line);
            foreach ($tab as $elem) {
                echo "$elem<br/>";
            }
        }
     
    } else {
        echo "Ouverture impossible.";
    }

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    est-il possible de remplacer la saisie manuelle actuelle par un procédé plus pratique pour l'utilisateur ?
    Est il vraiment plus pratique pour un utilisateur :
    1. d'ouvrir un logiciel tiers (alors qu'il est déjà sur la page) ,
    2. de remplir les données comme il faut (dans le bon ordre),
    3. d'enregistrer le fichier dans le bon format
    4. d'envoyer ce fichier sur la page


    plutôt que de remplir un formulaire , même si il est un peu complexe ?

    Je ne le crois pas. Surtout que sur une page web il est possible de venir guider l'utilisateur avec différents procédés (aide contextuelle, tooltip, vérification en live, etc ...)

    Selon moi la seule raison qui justifierais l'utilisation d'un fichier c'est ce fichier est généré. Dans ce cas il peut être intéressant de proposer l'import de fichier en plus de la saisie manuelle

  8. #8
    Membre du Club
    Homme Profil pro
    Consultant coût global
    Inscrit en
    Juillet 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant coût global
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 98
    Points : 61
    Points
    61
    Par défaut
    Merci pour vos réponses et vos conseils.
    Dans le cas présent (un exemple simple est présenté sur le site mentionné précédemment), l'utilisateur a probablement déjà rempli un fichier contenant les risques qu'il souhaite traiter. Avec 5 risques, la saisie manuelle est à privilégier, par contre avec 50 ou 100 risques, il faut passer par un fichier. Le dernier traitement que j'ai réalisé comprenait 1500 risques. Je vais probablement laisser le choix de la méthode à l'utilisateur qui choisira en fonction de son besoin.
    Je vais tester l'approche proposée et je ne clique pas résolu pour l'instant.
    Cordialement

Discussions similaires

  1. Transfert de données POST entre deux serveurs
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/09/2016, 21h46
  2. Transfert de données à plusieurs clients
    Par Gentletid dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 18/06/2012, 10h37
  3. [débutant] serveur-client : problème de transfert de données
    Par Mag007 dans le forum Développement
    Réponses: 2
    Dernier message: 19/04/2007, 22h05
  4. Envoyer des données du client au serveur
    Par thetraveller dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 13/07/2006, 22h32
  5. Réponses: 2
    Dernier message: 13/07/2006, 08h26

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