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 :

Interpréter une formule


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 37
    Par défaut Interpréter une formule
    Bonjour,

    j'aurai besoin d'interpréter des formules saisies par des utilisateurs donc susceptibles de contenir des erreurs. J'ai tenté d'utiliser la fonction eval() mais celle-ci ne me permet pas de contrôler les erreurs de saisies et s'avère trop dangeureuse en cas d'insertion de code malveillant ?
    Auriez-vous une idée d'alternative ou d'utilisation bien fondée de la fonction eval ?

    D'avance merci !

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    la dangerosité d'eval() sur les saisies utilisateurs est telle qu'il faut s'en passer coûte que coûte à moins de monter une usine à gaz pour parser, valider et autoriser l'exécution de la saisie.

    D'ailleurs, qu'est-ce-qui nécessite la possibilité d'exécuter du code utilisateur sur le serveur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 37
    Par défaut
    Salut rawsrc

    la "nécessité" réside dans le besoin d'une interface web de saisie de formules budgétaires en référence aux cellule d'un pseudo-tableur. Ces formules doivent être conservées littéralement (ex "(C1+C2) / 100") en BD et interprétées pour en afficher le résultat.

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bah tu y couperas pas : va falloir coder un parser spécifique à ce genre de fonctionnalité exotique. Et là je te souhaite bon courage.
    Je t'invite à lire quand même l'avertissement concernant eval()

Discussions similaires

  1. [XL-2010] Interpréter une string comme une formule dans VBA (pas cellule Excel)
    Par Quentin77170 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/05/2015, 23h04
  2. Interpréter une formule saisie sous forme de chaîne de caractères
    Par Pozzo dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 29/05/2013, 09h30
  3. Interprétation d'une formule
    Par Naruseb dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/11/2007, 17h04
  4. Mauvais résultat aprés une formule de calcul complexe
    Par poufouille dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 00h12
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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