j'ai une string search|save|edit|view et je voudrais qu'elle appelle les
fonctions relatives, par exemple :
do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
--
« Qui prête à rire, n'est pas sûr d'être remboursé. »
(Raymond Devos)
In article <1k4qxc3.1g01zop1qutu77N%, (Une Bévue) wrote:
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Bonjour ,
appel d'une fct par son nom ?
h='do_' + nom + '(' + params+ ')';
// nom = search ou edit ou ... // pour fabriquer do_search(params);
// et
eval(h);
// pour exécuter
j'espere avoir compris la question
-- mb
In article <1k4qxc3.1g01zop1qutu77N%unbewusst.sein@fai.invalid>,
unbewusst.sein@fai.invalid (Une Bévue) wrote:
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les
fonctions relatives, par exemple :
do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Bonjour ,
appel d'une fct par son nom ?
h='do_' + nom + '(' + params+ ')';
// nom = search ou edit ou ...
// pour fabriquer do_search(params);
In article <1k4qxc3.1g01zop1qutu77N%, (Une Bévue) wrote:
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Bonjour ,
appel d'une fct par son nom ?
h='do_' + nom + '(' + params+ ')';
// nom = search ou edit ou ... // pour fabriquer do_search(params);
// et
eval(h);
// pour exécuter
j'espere avoir compris la question
-- mb
mb
In article <1k4qxc3.1g01zop1qutu77N%, (Une Bévue) wrote:
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Bonjour ,
appel d'une fct par son nom ?
h='do_' + nom + '(' + params+ ');';
// nom = search ou edit ou ... // pour fabriquer do_search(params);
// et
eval(h);
// pour exécuter
j'espere avoir compris la question
-- mb
In article <1k4qxc3.1g01zop1qutu77N%unbewusst.sein@fai.invalid>,
unbewusst.sein@fai.invalid (Une Bévue) wrote:
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les
fonctions relatives, par exemple :
do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Bonjour ,
appel d'une fct par son nom ?
h='do_' + nom + '(' + params+ ');';
// nom = search ou edit ou ...
// pour fabriquer do_search(params);
In article <1k4qxc3.1g01zop1qutu77N%, (Une Bévue) wrote:
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Bonjour ,
appel d'une fct par son nom ?
h='do_' + nom + '(' + params+ ');';
// nom = search ou edit ou ... // pour fabriquer do_search(params);
// et
eval(h);
// pour exécuter
j'espere avoir compris la question
-- mb
unbewusst.sein
mb wrote:
appel d'une fct par son nom ?
oui, c'est ça.
h='do_' + nom + '(' + params+ ');';
// nom = search ou edit ou ... // pour fabriquer do_search(params);
// et
eval(h);
// pour exécuter
j'espere avoir compris la question
OUI, farpaitement compris )))
mais n'y a t'il pas moyen de passer par autre chose que eval ?
-- « Qui prête à rire, n'est pas sûr d'être remboursé. » (Raymond Devos)
mb <alfred-bitller@orange.fr> wrote:
appel d'une fct par son nom ?
oui, c'est ça.
h='do_' + nom + '(' + params+ ');';
// nom = search ou edit ou ...
// pour fabriquer do_search(params);
// et
eval(h);
// pour exécuter
j'espere avoir compris la question
OUI, farpaitement compris )))
mais n'y a t'il pas moyen de passer par autre chose que eval ?
--
« Qui prête à rire, n'est pas sûr d'être remboursé. »
(Raymond Devos)
// nom = search ou edit ou ... // pour fabriquer do_search(params);
// et
eval(h);
// pour exécuter
j'espere avoir compris la question
OUI, farpaitement compris )))
mais n'y a t'il pas moyen de passer par autre chose que eval ?
-- « Qui prête à rire, n'est pas sûr d'être remboursé. » (Raymond Devos)
Olivier Miakinen
Bonjour,
Le 21/07/2011 09:55, mb répondait à unbewußt sein :
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
switch(string) { case "search": do_search(params); break; case "save": do_save(params); break; case "edit": do_edit(params); break; case "view": do_view(params); break; default: // // traitement d'erreur // break; // inutile dans le dernier cas }
h='do_' + nom + '(' + params+ ');';
eval(h);
Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas de contrôle de la licéité de la chaîne (que je suppose venant de l'extérieur).
Bonjour,
Le 21/07/2011 09:55, mb répondait à unbewußt sein :
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les
fonctions relatives, par exemple :
do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
switch(string) {
case "search":
do_search(params);
break;
case "save":
do_save(params);
break;
case "edit":
do_edit(params);
break;
case "view":
do_view(params);
break;
default:
//
// traitement d'erreur
//
break; // inutile dans le dernier cas
}
h='do_' + nom + '(' + params+ ');';
eval(h);
Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas
de contrôle de la licéité de la chaîne (que je suppose venant de
l'extérieur).
Le 21/07/2011 09:55, mb répondait à unbewußt sein :
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
switch(string) { case "search": do_search(params); break; case "save": do_save(params); break; case "edit": do_edit(params); break; case "view": do_view(params); break; default: // // traitement d'erreur // break; // inutile dans le dernier cas }
h='do_' + nom + '(' + params+ ');';
eval(h);
Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas de contrôle de la licéité de la chaîne (que je suppose venant de l'extérieur).
unbewusst.sein
Olivier Miakinen <om+ wrote:
switch(string) { case "search": do_search(params); break; case "save": do_save(params); break; case "edit": do_edit(params); break; case "view": do_view(params); break; default: // // traitement d'erreur // break; // inutile dans le dernier cas }
Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas de contrôle de la licéité de la chaîne (que je suppose venant de l'extérieur).
ben oui, je me doutais bien qu'eval, c'est pas top !!!
-- « Qui prête à rire, n'est pas sûr d'être remboursé. » (Raymond Devos)
Olivier Miakinen <om+news@miakinen.net> wrote:
switch(string) {
case "search":
do_search(params);
break;
case "save":
do_save(params);
break;
case "edit":
do_edit(params);
break;
case "view":
do_view(params);
break;
default:
//
// traitement d'erreur
//
break; // inutile dans le dernier cas
}
switch(string) { case "search": do_search(params); break; case "save": do_save(params); break; case "edit": do_edit(params); break; case "view": do_view(params); break; default: // // traitement d'erreur // break; // inutile dans le dernier cas }
Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas de contrôle de la licéité
la quoi ?
de la chaîne (que je suppose venant de l'extérieur).
-- mb
mb
In article , mb wrote:
In article <4e27e51f$, Olivier Miakinen <om+ wrote:
> > h='do_' + nom + '(' + params+ ');';
> Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas > de contrôle de la licéité
la quoi ?
ça y est j'ai trouvé , mais comment pourrait-elle être illicite ? elle est formée à partir des éléments donnés et si "nom" n'existe pas JS ne fera rien ,
je ne vois vraiment pas le problème
-- mb
In article <alfred-bitller-750F73.11315021072011@news.orange.fr>,
mb <alfred-bitller@orange.fr> wrote:
In article <4e27e51f$1@meta.neottia.net>,
Olivier Miakinen <om+news@miakinen.net> wrote:
> > h='do_' + nom + '(' + params+ ');';
> Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas
> de contrôle de la licéité
la quoi ?
ça y est j'ai trouvé ,
mais comment pourrait-elle être illicite ?
elle est formée à partir des éléments donnés
et si "nom" n'existe pas JS ne fera rien ,
In article <4e27e51f$, Olivier Miakinen <om+ wrote:
> > h='do_' + nom + '(' + params+ ');';
> Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas > de contrôle de la licéité
la quoi ?
ça y est j'ai trouvé , mais comment pourrait-elle être illicite ? elle est formée à partir des éléments donnés et si "nom" n'existe pas JS ne fera rien ,
je ne vois vraiment pas le problème
-- mb
Y a personne
Le 21/07/2011 08:13, Une Bévue a écrit :
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Salut,
Voici la méthode propre :
window[tonNomdeFonction](TesParametres);
Le 21/07/2011 08:13, Une Bévue a écrit :
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les
fonctions relatives, par exemple :
do_search(params) | do_save(params) | do_edit(params) | do_view(params)
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
comment kon fait ?
Salut,
Voici la méthode propre :
window[tonNomdeFonction](TesParametres);
Bol
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
un truc du genre
function do_( f, p ) { f = this['do_'+f]; return ( typeof f == 'function' ) ? f(p) : null; }
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les
fonctions relatives, par exemple :
do_search(params) | do_save(params) | do_edit(params) | do_view(params)
un truc du genre
function do_( f, p )
{
f = this['do_'+f];
return ( typeof f == 'function' ) ? f(p) : null;
}
j'ai une string search|save|edit|view et je voudrais qu'elle appelle les fonctions relatives, par exemple : do_search(params) | do_save(params) | do_edit(params) | do_view(params)
un truc du genre
function do_( f, p ) { f = this['do_'+f]; return ( typeof f == 'function' ) ? f(p) : null; }
> Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas > de contrôle de la licéité
la quoi ?
ça y est j'ai trouvé ,
:-)
mais comment pourrait-elle être illicite ?
Je n'en sais rien, n'ayant pas le code complet. En outre, même si j'avais le code complet à la date du 21 juillet 2011, et si je pouvais prouver qu'elle n'a aucun moyen d'être illicite aujourd'hui, qu'est-ce qui prouve qu'un changement mineur fait dans un coin en février 2013 ne pourrait pas ouvrir une faille dans ce bout de code oublié depuis longtemps ?
elle est formée à partir des éléments donnés
Donnés par quoi ou par qui, ces éléments ? Si cela vient d'un formulaire, il n'y a rien de plus facile que d'envoyer une valeur non prévue par ledit formulaire.
et si "nom" n'existe pas JS ne fera rien ,
Ah ? Même s'il existait quelque part une fonction do_resetall, censément jamais appelée sauf par un script privé, et dont la tâche consiste à effacer l'ensemble des bases de données ?
je ne vois vraiment pas le problème
C'est généralement le cas de toutes les failles de sécurité : on ne voit pas où est le problème avant qu'elles aient été exploitées par une personne malveillante.
Du coup, le principe de base de toute programmation un tant soit peu « défensive », c'est de verrouiller au départ tout risque de comportement imprévu. D'où le switch qui recense tous les cas possibles, avec un traitement d'erreur pour les cas non prévus.
Le 21/07/2011 13:04, mb a écrit :
> > h='do_' + nom + '(' + params+ ');';
> Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas
> de contrôle de la licéité
la quoi ?
ça y est j'ai trouvé ,
:-)
mais comment pourrait-elle être illicite ?
Je n'en sais rien, n'ayant pas le code complet. En outre, même si
j'avais le code complet à la date du 21 juillet 2011, et si je
pouvais prouver qu'elle n'a aucun moyen d'être illicite aujourd'hui,
qu'est-ce qui prouve qu'un changement mineur fait dans un coin en
février 2013 ne pourrait pas ouvrir une faille dans ce bout de code
oublié depuis longtemps ?
elle est formée à partir des éléments donnés
Donnés par quoi ou par qui, ces éléments ? Si cela vient d'un
formulaire, il n'y a rien de plus facile que d'envoyer une
valeur non prévue par ledit formulaire.
et si "nom" n'existe pas JS ne fera rien ,
Ah ? Même s'il existait quelque part une fonction do_resetall,
censément jamais appelée sauf par un script privé, et dont la
tâche consiste à effacer l'ensemble des bases de données ?
je ne vois vraiment pas le problème
C'est généralement le cas de toutes les failles de sécurité : on
ne voit pas où est le problème avant qu'elles aient été exploitées
par une personne malveillante.
Du coup, le principe de base de toute programmation un tant soit
peu « défensive », c'est de verrouiller au départ tout risque de
comportement imprévu. D'où le switch qui recense tous les cas
possibles, avec un traitement d'erreur pour les cas non prévus.
> Oui, aussi, mais là c'est un peu plus dangereux car il n'y a pas > de contrôle de la licéité
la quoi ?
ça y est j'ai trouvé ,
:-)
mais comment pourrait-elle être illicite ?
Je n'en sais rien, n'ayant pas le code complet. En outre, même si j'avais le code complet à la date du 21 juillet 2011, et si je pouvais prouver qu'elle n'a aucun moyen d'être illicite aujourd'hui, qu'est-ce qui prouve qu'un changement mineur fait dans un coin en février 2013 ne pourrait pas ouvrir une faille dans ce bout de code oublié depuis longtemps ?
elle est formée à partir des éléments donnés
Donnés par quoi ou par qui, ces éléments ? Si cela vient d'un formulaire, il n'y a rien de plus facile que d'envoyer une valeur non prévue par ledit formulaire.
et si "nom" n'existe pas JS ne fera rien ,
Ah ? Même s'il existait quelque part une fonction do_resetall, censément jamais appelée sauf par un script privé, et dont la tâche consiste à effacer l'ensemble des bases de données ?
je ne vois vraiment pas le problème
C'est généralement le cas de toutes les failles de sécurité : on ne voit pas où est le problème avant qu'elles aient été exploitées par une personne malveillante.
Du coup, le principe de base de toute programmation un tant soit peu « défensive », c'est de verrouiller au départ tout risque de comportement imprévu. D'où le switch qui recense tous les cas possibles, avec un traitement d'erreur pour les cas non prévus.