Dans le cadre d'un stage, je reprend un code PHP fait par plusieurs
personnes avant moi, dont certaines, non expérimentées en PHP, font
des hérésies en programmation, le tout sans documentation aucune
(oui, je sais, je suis sévère, et je ne suis pas mieux qu'eux sur
nombre de points), je m'arrache souvent les cheveux à comprendre
certains bouts de codes, dont celui ci, les commentaires laissés par
mon prédécesseur montre que je n'ai pas été le seul à être
intrigué par ce code :
switch (strtolower($val_nvelle_table))
{
case 'null':
break;
case '$set$':
//A QUOI CA SERT????????????????
$f = "field_$key";
$val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f?????
break;
default:
$val_slash_nvelle_table = addslashes($val_nvelle_table);
$texte_nvelle_table str_replace("\r\n","<br>",$val_slash_nvelle_table);
$val_nvelle_table = "'$texte_nvelle_table'";
break;
}
Bref, ma question : à quelle condition va-t-on rentrer dans le case
'$set$' ?
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on
rentre dans ce case ?
Merci d'avance pour vos réponses !
PS : Merci de ne pas remuer le couteau dans la plaie : le premier qui
me dit que le code est pourri, que ne pas faire de doc, cépasbien, je
l'étrangle ! ;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Demosthene
switch (strtolower($val_nvelle_table)) { case 'null': break; case '$set$': //A QUOI CA SERT???????????????? $f = "field_$key"; $val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f????? break; default: $val_slash_nvelle_table = addslashes($val_nvelle_table); $texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table); $val_nvelle_table = "'$texte_nvelle_table'"; break; }
Bonjour,
Bref, ma question : à quelle condition va-t-on rentrer dans le case '$set$' ? Lorsque $val_nvelle_table mis en minuscule donne $set$
Commentaire : Les gens d'avant semble avoir crée un système un peu complexe en sauvant en base des actions à effectuer sur des données elles aussi en base ...
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on rentre dans ce case ? Il semble manquer un "=" à la place du grand blanc
Dans le cas ou il y a un "=", $val_nvelle_table devient une chaine de caractère. Si la variable $field_QuelqueChose est vide $val_nvelle_table est vide également. Sinon, la variable $field_QuelqueChose est très vraisemblablement un tableau (implode) transformé en chaine séparé par des virgules.
Je ne peux pas en dire plus : il faut remonter au modèle de données pour en savoir plus.
Cordialement
Démosthène
switch (strtolower($val_nvelle_table))
{
case 'null':
break;
case '$set$':
//A QUOI CA SERT????????????????
$f = "field_$key";
$val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f?????
break;
default:
$val_slash_nvelle_table = addslashes($val_nvelle_table);
$texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table);
$val_nvelle_table = "'$texte_nvelle_table'";
break;
}
Bonjour,
Bref, ma question : à quelle condition va-t-on rentrer dans le case
'$set$' ?
Lorsque $val_nvelle_table mis en minuscule donne $set$
Commentaire : Les gens d'avant semble avoir crée un système un peu
complexe en sauvant en base des actions à effectuer sur des données
elles aussi en base ...
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on
rentre dans ce case ?
Il semble manquer un "=" à la place du grand blanc
Dans le cas ou il y a un "=", $val_nvelle_table devient une chaine de
caractère. Si la variable $field_QuelqueChose est vide $val_nvelle_table
est vide également. Sinon, la variable $field_QuelqueChose est très
vraisemblablement un tableau (implode) transformé en chaine séparé par
des virgules.
Je ne peux pas en dire plus : il faut remonter au modèle de données pour
en savoir plus.
switch (strtolower($val_nvelle_table)) { case 'null': break; case '$set$': //A QUOI CA SERT???????????????? $f = "field_$key"; $val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f????? break; default: $val_slash_nvelle_table = addslashes($val_nvelle_table); $texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table); $val_nvelle_table = "'$texte_nvelle_table'"; break; }
Bonjour,
Bref, ma question : à quelle condition va-t-on rentrer dans le case '$set$' ? Lorsque $val_nvelle_table mis en minuscule donne $set$
Commentaire : Les gens d'avant semble avoir crée un système un peu complexe en sauvant en base des actions à effectuer sur des données elles aussi en base ...
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on rentre dans ce case ? Il semble manquer un "=" à la place du grand blanc
Dans le cas ou il y a un "=", $val_nvelle_table devient une chaine de caractère. Si la variable $field_QuelqueChose est vide $val_nvelle_table est vide également. Sinon, la variable $field_QuelqueChose est très vraisemblablement un tableau (implode) transformé en chaine séparé par des virgules.
Je ne peux pas en dire plus : il faut remonter au modèle de données pour en savoir plus.
Cordialement
Démosthène
bruno modulix
Eric wrote: (snip)
PS : Merci de ne pas remuer le couteau dans la plaie : le premier qui me dit que le code est pourri, que ne pas faire de doc, cépasbien, je l'étrangle ! ;-)
Le code est pourri, et le documenter commencerait par une réécriture propre et lisible (un code lisible étant sa propre documentation...)
Tu m'étrangle ?-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Eric wrote:
(snip)
PS : Merci de ne pas remuer le couteau dans la plaie : le premier qui
me dit que le code est pourri, que ne pas faire de doc, cépasbien, je
l'étrangle ! ;-)
Le code est pourri, et le documenter commencerait par une réécriture
propre et lisible (un code lisible étant sa propre documentation...)
Tu m'étrangle ?-)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
PS : Merci de ne pas remuer le couteau dans la plaie : le premier qui me dit que le code est pourri, que ne pas faire de doc, cépasbien, je l'étrangle ! ;-)
Le code est pourri, et le documenter commencerait par une réécriture propre et lisible (un code lisible étant sa propre documentation...)
Tu m'étrangle ?-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Steuf
Bonjour,
Bonjour
Dans le cadre d'un stage, je reprend un code PHP fait par plusieurs personnes avant moi, dont certaines, non expérimentées en PHP, font des hérésies en programmation, le tout sans documentation aucune (oui, je sais, je suis sévère, et je ne suis pas mieux qu'eux sur nombre de points), je m'arrache souvent les cheveux à comprendre certains bouts de codes, dont celui ci, les commentaires laissés par mon prédécesseur montre que je n'ai pas été le seul à être intrigué par ce code :
switch (strtolower($val_nvelle_table)) { case 'null': break; case '$set$': //A QUOI CA SERT???????????????? $f = "field_$key"; $val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f????? break; default: $val_slash_nvelle_table = addslashes($val_nvelle_table); $texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table); $val_nvelle_table = "'$texte_nvelle_table'"; break; }
A priori ce code n'a aucun sens, il manque des bouts de synthaxe et je doute que l'intépréteur PHP veuille bien lancer ce code sans crier de partout avec des erreurs fatales...
Bref, ma question : à quelle condition va-t-on rentrer dans le case '$set$' ?
Bonne question... d'ailleurs $set$ ça ne ressemble à rien...
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on rentre dans ce case ?
Bonne question, sans avoir le reste difficil d'en savoir plus que vous...
Merci d'avance pour vos réponses !
PS : Merci de ne pas remuer le couteau dans la plaie : le premier qui me dit que le code est pourri, que ne pas faire de doc, cépasbien, je l'étrangle ! ;-)
Le code n'est pas pourri, il est affreux... donner sur les trotoires ^^.
-- Site dédié au développement WEB : http://www.exinsidephp.com
Bonjour,
Bonjour
Dans le cadre d'un stage, je reprend un code PHP fait par plusieurs
personnes avant moi, dont certaines, non expérimentées en PHP, font
des hérésies en programmation, le tout sans documentation aucune
(oui, je sais, je suis sévère, et je ne suis pas mieux qu'eux sur
nombre de points), je m'arrache souvent les cheveux à comprendre
certains bouts de codes, dont celui ci, les commentaires laissés par
mon prédécesseur montre que je n'ai pas été le seul à être
intrigué par ce code :
switch (strtolower($val_nvelle_table))
{
case 'null':
break;
case '$set$':
//A QUOI CA SERT????????????????
$f = "field_$key";
$val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f?????
break;
default:
$val_slash_nvelle_table = addslashes($val_nvelle_table);
$texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table);
$val_nvelle_table = "'$texte_nvelle_table'";
break;
}
A priori ce code n'a aucun sens, il manque des bouts de synthaxe et je
doute que l'intépréteur PHP veuille bien lancer ce code sans crier de
partout avec des erreurs fatales...
Bref, ma question : à quelle condition va-t-on rentrer dans le case
'$set$' ?
Bonne question... d'ailleurs $set$ ça ne ressemble à rien...
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on
rentre dans ce case ?
Bonne question, sans avoir le reste difficil d'en savoir plus que vous...
Merci d'avance pour vos réponses !
PS : Merci de ne pas remuer le couteau dans la plaie : le premier qui
me dit que le code est pourri, que ne pas faire de doc, cépasbien, je
l'étrangle ! ;-)
Le code n'est pas pourri, il est affreux... donner sur les trotoires ^^.
--
Site dédié au développement WEB : http://www.exinsidephp.com
Dans le cadre d'un stage, je reprend un code PHP fait par plusieurs personnes avant moi, dont certaines, non expérimentées en PHP, font des hérésies en programmation, le tout sans documentation aucune (oui, je sais, je suis sévère, et je ne suis pas mieux qu'eux sur nombre de points), je m'arrache souvent les cheveux à comprendre certains bouts de codes, dont celui ci, les commentaires laissés par mon prédécesseur montre que je n'ai pas été le seul à être intrigué par ce code :
switch (strtolower($val_nvelle_table)) { case 'null': break; case '$set$': //A QUOI CA SERT???????????????? $f = "field_$key"; $val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f????? break; default: $val_slash_nvelle_table = addslashes($val_nvelle_table); $texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table); $val_nvelle_table = "'$texte_nvelle_table'"; break; }
A priori ce code n'a aucun sens, il manque des bouts de synthaxe et je doute que l'intépréteur PHP veuille bien lancer ce code sans crier de partout avec des erreurs fatales...
Bref, ma question : à quelle condition va-t-on rentrer dans le case '$set$' ?
Bonne question... d'ailleurs $set$ ça ne ressemble à rien...
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on rentre dans ce case ?
Bonne question, sans avoir le reste difficil d'en savoir plus que vous...
Merci d'avance pour vos réponses !
PS : Merci de ne pas remuer le couteau dans la plaie : le premier qui me dit que le code est pourri, que ne pas faire de doc, cépasbien, je l'étrangle ! ;-)
Le code n'est pas pourri, il est affreux... donner sur les trotoires ^^.
-- Site dédié au développement WEB : http://www.exinsidephp.com
Vincent Lascaux
switch (strtolower($val_nvelle_table)) { case 'null': break; case '$set$': //A QUOI CA SERT???????????????? $f = "field_$key";
Cette ligne fait la même chose que $f = 'field_'.$key... Imaginons que $key vale 12, par la suite, $f vaut 'field_12'
$$f vaut la valeur de la variable dont le nom est stoqué dans $f. Dans notre cas, ca vaut $field_12. C'est une construction que je n'aime pas trop parcequ'elle n'existe pas dans beaucoup d'autres langages (d'une part) et qu'on peut souvent la remplacer par du code plus propre, plus lisible, plus simple et plus efficace. Si je devais parier, je dirais qu'on pourrait avoir un tableau nommé $field plutot que plein de variables $field_1, $field_2... $field_12. J'ai pas vu le reste du code, mais ca serait surement plus propre, ca permettrait pas mal de choses (par exemple énumérer sur les fields), ca serait surement plus efficace et plus clair (ca t'aurait permis de conserver quelques cheveux sans doutes ;))
Bref, ma question : à quelle condition va-t-on rentrer dans le case '$set$' ?
Ca c'est comme n'importe quel switch : on va dans le case '$set$' quand la valeur switchée (strtolower($val_nvelle_table)) vaut '$set$'. C'est comme si t'avais ca : if(strtolower($val_nvelle_table) == 'null') { } else if(strtolower($val_nvelle_table) == '$set$') { //A QUOI CA SERT???????????????? $f = "field_$key"; $val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f????? } else { $val_slash_nvelle_table = addslashes($val_nvelle_table); $texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table); $val_nvelle_table = "'$texte_nvelle_table'"; }
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on rentre dans ce case ?
Pour conserver l'exemple, on suppose que $$f vaut $field_12 et que $field_12 est un tableau qui vaut array('Foo', 'Bar', 'Bla', 'Bli') Alors "'".($$f?implode(',',$$f):'')."'" vaut la chaine 'Foo,Bar,Bla,Bli' (les guillemets font partis de la chaine). Si je devais parier, je dirais que cette chaîne va bientot être utilisée dans une requête SQL, et qu'on va pas prendre la précaution de l' "escaper" (rajouter des derrière les éventuels guillemets contenus dans les chaines Foo, Bar, Bla ou Bli).
Quant à la qualité du code, c'est claire que c'est pas la panaché, mais j'ai peur que ce soit les déboires d'un langage très permissif, et pousse au "quick and dirty". Je pense que beaucoup de code PHP dans la nature est pire que celui que t'as dans les yeux (il ya qu'à voir le nombre de programmeurs chauves :))
-- Vincent
switch (strtolower($val_nvelle_table))
{
case 'null':
break;
case '$set$':
//A QUOI CA SERT????????????????
$f = "field_$key";
Cette ligne fait la même chose que $f = 'field_'.$key... Imaginons que $key
vale 12, par la suite, $f vaut 'field_12'
$$f vaut la valeur de la variable dont le nom est stoqué dans $f. Dans notre
cas, ca vaut $field_12.
C'est une construction que je n'aime pas trop parcequ'elle n'existe pas dans
beaucoup d'autres langages (d'une part) et qu'on peut souvent la remplacer
par du code plus propre, plus lisible, plus simple et plus efficace. Si je
devais parier, je dirais qu'on pourrait avoir un tableau nommé $field plutot
que plein de variables $field_1, $field_2... $field_12. J'ai pas vu le reste
du code, mais ca serait surement plus propre, ca permettrait pas mal de
choses (par exemple énumérer sur les fields), ca serait surement plus
efficace et plus clair (ca t'aurait permis de conserver quelques cheveux
sans doutes ;))
Bref, ma question : à quelle condition va-t-on rentrer dans le case
'$set$' ?
Ca c'est comme n'importe quel switch : on va dans le case '$set$' quand la
valeur switchée (strtolower($val_nvelle_table)) vaut '$set$'.
C'est comme si t'avais ca :
if(strtolower($val_nvelle_table) == 'null')
{
} else if(strtolower($val_nvelle_table) == '$set$') {
//A QUOI CA SERT????????????????
$f = "field_$key";
$val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f?????
} else {
$val_slash_nvelle_table = addslashes($val_nvelle_table);
$texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table);
$val_nvelle_table = "'$texte_nvelle_table'";
}
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on
rentre dans ce case ?
Pour conserver l'exemple, on suppose que $$f vaut $field_12 et que $field_12
est un tableau qui vaut array('Foo', 'Bar', 'Bla', 'Bli')
Alors "'".($$f?implode(',',$$f):'')."'" vaut la chaine 'Foo,Bar,Bla,Bli'
(les guillemets font partis de la chaine). Si je devais parier, je dirais
que cette chaîne va bientot être utilisée dans une requête SQL, et qu'on va
pas prendre la précaution de l' "escaper" (rajouter des derrière les
éventuels guillemets contenus dans les chaines Foo, Bar, Bla ou Bli).
Quant à la qualité du code, c'est claire que c'est pas la panaché, mais j'ai
peur que ce soit les déboires d'un langage très permissif, et pousse au
"quick and dirty". Je pense que beaucoup de code PHP dans la nature est pire
que celui que t'as dans les yeux (il ya qu'à voir le nombre de programmeurs
chauves :))
$$f vaut la valeur de la variable dont le nom est stoqué dans $f. Dans notre cas, ca vaut $field_12. C'est une construction que je n'aime pas trop parcequ'elle n'existe pas dans beaucoup d'autres langages (d'une part) et qu'on peut souvent la remplacer par du code plus propre, plus lisible, plus simple et plus efficace. Si je devais parier, je dirais qu'on pourrait avoir un tableau nommé $field plutot que plein de variables $field_1, $field_2... $field_12. J'ai pas vu le reste du code, mais ca serait surement plus propre, ca permettrait pas mal de choses (par exemple énumérer sur les fields), ca serait surement plus efficace et plus clair (ca t'aurait permis de conserver quelques cheveux sans doutes ;))
Bref, ma question : à quelle condition va-t-on rentrer dans le case '$set$' ?
Ca c'est comme n'importe quel switch : on va dans le case '$set$' quand la valeur switchée (strtolower($val_nvelle_table)) vaut '$set$'. C'est comme si t'avais ca : if(strtolower($val_nvelle_table) == 'null') { } else if(strtolower($val_nvelle_table) == '$set$') { //A QUOI CA SERT???????????????? $f = "field_$key"; $val_nvelle_table "'".($$f?implode(',',$$f):'')."'";//$$f????? } else { $val_slash_nvelle_table = addslashes($val_nvelle_table); $texte_nvelle_table str_replace("rn","<br>",$val_slash_nvelle_table); $val_nvelle_table = "'$texte_nvelle_table'"; }
Question numéro 2 : à quoi sera égal $val_nvelle_table si l'on rentre dans ce case ?
Pour conserver l'exemple, on suppose que $$f vaut $field_12 et que $field_12 est un tableau qui vaut array('Foo', 'Bar', 'Bla', 'Bli') Alors "'".($$f?implode(',',$$f):'')."'" vaut la chaine 'Foo,Bar,Bla,Bli' (les guillemets font partis de la chaine). Si je devais parier, je dirais que cette chaîne va bientot être utilisée dans une requête SQL, et qu'on va pas prendre la précaution de l' "escaper" (rajouter des derrière les éventuels guillemets contenus dans les chaines Foo, Bar, Bla ou Bli).
Quant à la qualité du code, c'est claire que c'est pas la panaché, mais j'ai peur que ce soit les déboires d'un langage très permissif, et pousse au "quick and dirty". Je pense que beaucoup de code PHP dans la nature est pire que celui que t'as dans les yeux (il ya qu'à voir le nombre de programmeurs chauves :))
-- Vincent
Eric
Tout d'abord, merci à tous pour vos réponses (quant à bruno modulix, étrangles toi tout seul, j'ai trop de code à comprendre pour me déplacer ;-) )
Je pense que ça m'éclaire pas mal.
Pour votre information, ce site est un site qui deviendra plus tard un intranet dans des hopitaux pour des dossiers patients, et il se trouve que les médecins changent d'avis sur le contenu des pages tous les 3 jours, donc mes prédécesseurs ont mis au point un système qui génère automatiquement des formuliare à partir d'infos concues dans la base, et les enregistrent les résultats sur d'autres tables (ce code fait partie de la fonction qui enregistre).
Voilà, merci.
Tout d'abord, merci à tous pour vos réponses (quant à bruno modulix,
étrangles toi tout seul, j'ai trop de code à comprendre pour me
déplacer ;-) )
Je pense que ça m'éclaire pas mal.
Pour votre information, ce site est un site qui deviendra plus tard un
intranet dans des hopitaux pour des dossiers patients, et il se trouve
que les médecins changent d'avis sur le contenu des pages tous les 3
jours, donc mes prédécesseurs ont mis au point un système qui
génère automatiquement des formuliare à partir d'infos concues dans
la base, et les enregistrent les résultats sur d'autres tables (ce
code fait partie de la fonction qui enregistre).
Tout d'abord, merci à tous pour vos réponses (quant à bruno modulix, étrangles toi tout seul, j'ai trop de code à comprendre pour me déplacer ;-) )
Je pense que ça m'éclaire pas mal.
Pour votre information, ce site est un site qui deviendra plus tard un intranet dans des hopitaux pour des dossiers patients, et il se trouve que les médecins changent d'avis sur le contenu des pages tous les 3 jours, donc mes prédécesseurs ont mis au point un système qui génère automatiquement des formuliare à partir d'infos concues dans la base, et les enregistrent les résultats sur d'autres tables (ce code fait partie de la fonction qui enregistre).