Optimisation petit code de rien du tout [Résolu]

Signaler
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
-
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
-
bonjour tt le monde

ca faisait longtemps que je n'avais pas posé mes petites questions...

la c'est juste pour optimiser mon code donc voila

je fait cela pour définir une couleur

if ($fond=='accueil'){
$couleur='white';}
if ($fond=='musique'){
$couleur='black';}
if ($fond=='danse'){
$couleur='red';}
if ($fond=='djing'){
$couleur='green';}
if ($fond=='graphisme'){
$couleur='yellow';}
if ($fond=='association'){
$couleur='blue';}
if ($fond=='liens'){
$couleur='brown';}
if ($fond=='video'){
$couleur='purple';}

donc voila je voudrais savoir si il existe un moyen de mieux ecrire cela
vu que la ca sort de mon petit cerveau qui a du mal
(ouè la je trouve que cela fait un peu pourri mais bon)

merci de votre futur aide

12 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Autant de if... un switch irait mieux mais !
Vu le traitement...
un array... Pour configurer ce truc

$assFondCouleur=array(
'accueil'=>'white',
'musique'=>'black',
...
);

if(isset($assFondCouleur[$fond])){
return $assFondCouleur[$fond];
}

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
ah tu veux afficher !
Ton array est bon

C'est ici le soucis...
if(isset($assFondCouleur[$fond])){
return $assFondCouleur[$fond];
}

je croyais que tu etais dans une fonction qui renvoyait la couleur en fonction
Essaye donc ceci :

if(isset($assFondCouleur[$fond])){

echo $assFondCouleur[$fond];

}

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
merci teclis
je me disait bien qu'un tableau irais mieux
thx
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
en suivant tes conseils ca donne ca

$assFondCouleur=array(
'accueil' => 'white',
'musique' => 'black',
'danse' => 'black',
'djing' => 'black',
'graphisme' => 'black',
'association' => 'black',
'liens' => 'black',
'video' => 'black'
);




if(isset($assFondCouleur[$fond])){
return $assFondCouleur[$fond];
}

mais en faites rien ne s'affiche dans ma page
et sinon quand je retire ca marche
qu'ai je fais de travers???
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
ok mais j'ai retiré carrement le if isset vu que la variable $fond est définie avant
et quel est obligatoirement rempli (donc j'ai pas a la vérifier :) )

merci teclis bonne journée
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
C'est pour raison de sécurité le isset (injection )

Merci de même

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
sécurité??  dans mes pages php je verifi déjà si elles existent si elles n'existent pas = redirection 404
la un méchant pourrait injecter ses conchonneries dans mon site?
(en plus les couleurs me servent à changer la couleur de mes polices) donc faut pas que je fasse des isset a chaque fois
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
ah bah je pouvais pas savoir moi
on peut tjrs tenter d'injecter qqch...
que ca soit dans l url ou dans les  input ya de quoi verifier les traitements après

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
ok la en faite je recupere $fond avec un get (genre page.php?rubrique=musique) donc $fond=$_get[rubrique] en gros c'est ca
donc si le gars rentre rubrique=montivirus donc $fond=montivirus mais vu qu'après je men sers que pour la couleur
est vraiment dangereux??
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
depend de ce que l'on peut injecter et du traitement derriere c'est pas aussi simple de repondre...

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
bah il trouvera aucune correspondance de couleur, si c'est le seul traitement c'est pas dangereux.

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
253
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
5 décembre 2008
1
ouais mais la j'ai essayé de mettre un  a la place et c passé y avait l'image!!!