Comment simplifier ce code (question de débutant)?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment simplifier ce code (question de débutant)?

par guy » 16 juin 2005, 11:34

le plus simple serait a mon avis de renommer tes pages a inclure:
include_once('sponsors/fr/articles-de-foot-hommes.php')
pourait devenir
include_once('sponsors/$l/$i['sport_prefere']-$i['sexe'].php')
il te reste à renommer tes pages en fonction cad dans l'exemple precité

/sponsors/fr/football-homme.php
tu fait cela pour toutes tesq pages et le tour est joué.
Pourquoi ce casser la tete avec tant de if elese ou case alors qu'en reflechissant 2 seconde et un peut de methode on peut faire tres simple ?
Guy

par pjl » 15 juin 2005, 21:50

Sincèrement, je découvre le post et je n'ai jamais vu ce type de gestion de pub.

Pourquoi devoir à chaque fois retoucher le code ?

Ne peux-tu pas gérer celà à partir d'une base de données ?

par ouckileou » 15 juin 2005, 19:05

heu je ne veux pas être désagréable mais je ne vois pas bien l'intérêt de ton bout de code après tout ce qui a été dit smarties :lol:

par smarties » 15 juin 2005, 18:45

if (isset($l) && ($i['sexe']=='1') && ($i['sport_prefere']=='1') ) {include_once('sponsors/$l/articles-de-foot-hommes.php');}

par ouckileou » 15 juin 2005, 17:49

c'est même pas une histoire de performances mais surtout de simplicité, de lisibilité et de maintenabilité

à sécuriser c'est simple, et je t'ai mis un exemple
tu testes la valeur de la variable, si elle correspond à une valeur autorisée tu acceptes, sinon tu mets une valeur par défaut

par Invité » 15 juin 2005, 17:36

Bon c'est vrai que je pourrais passer la variable langue dans l'include...

mais je n'ai pas vraiment compris comment la sécuriser et n'ai pas totalement saisi non plus comment traiter le cas du 'fr' (= 'default' et ' ')

En fait, je ne vois même pas du tout ce que cela donnerait dans le code :oops:

par Invité » 15 juin 2005, 17:34

Oui c'est clair... mais je n'ai pas l'impression que cela ralentisse bcp la création de la page.

par ouckileou » 15 juin 2005, 17:17

tant mieux si ça te convient alors

mais je crois que tu remporte la palme du plus long switch !

je suis persuadé qu'en réfléchissant un peu tu pourrais organiser tes appels de façon à simplifier tout ça, car là c'est super redondant comme code

enfin ravi si on a pu t'aider ;)

par Invité » 15 juin 2005, 17:12

Voilà!

Après m'être débattu quelque peu avec le code, tout fonctionne!
<?

switch($l)
{
case 'de': // PROFIL AFFICHE EN ALLEMAND
    switch($i['gender'])
     {
        case 1: // HOMME
                switch($i['purposes'])
                 {
                   case 1: // Hétéro
                    include_once('sponsors/view/de_heteros.php');
                    break;
                   case 2: // Homosexuel
                    include_once('sponsors/view/de_gays.php');
                    break;
                   case 3: // Bisexuel
                    include_once('sponsors/view/de_gays.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/de_gays.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/de_gays.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/de_gays.php');
                    break;
                  }
         break;
        case 2: // FEMME
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuelle
                    include_once('sponsors/view/de_heteros.php');
                    break;
                   case 2: // Homosexuelle
                    include_once('sponsors/view/de_lesbiennes.php');
                    break;
                   case 3: // Bisexuelle
                    include_once('sponsors/view/de_lesbiennes.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/de_heteros.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/de_heteros.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/de_heteros.php');
                    break;
                  }
         break;
        case 3: // TRANSSEXUEL
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuel
                    include_once('sponsors/view/de_trans.php');
                    break;
                   case 2: // Homosexuel
                    include_once('sponsors/view/de_trans.php');
                    break;
                   case 3: // Bisexuel
                    include_once('sponsors/view/de_trans.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/de_trans.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/de_trans.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/de_trans.php');
                    break;
                  }
         break;
        case 4: // COUPLE
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuels
                    include_once('sponsors/view/de_couples.php');
                    break;
                   case 2: // Homosexuels
                    include_once('sponsors/view/de_gays_lesbiennes.php');
                    break;
                   case 3: // Bisexuels
                    include_once('sponsors/view/de_couples.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/de_couples.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/de_couples.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/de_couples.php');
                    break;
                  }
         break;
     }
break;

case 'en': // PROFIL AFFICHE EN ANGLAIS
    switch($i['gender'])
     {
        case 1: // HOMME
                switch($i['purposes'])
                 {
                   case 1: // Hétéro
                    include_once('sponsors/view/en_heteros.php');
                    break;
                   case 2: // Homosexuel
                    include_once('sponsors/view/en_gays.php');
                    break;
                   case 3: // Bisexuel
                    include_once('sponsors/view/en_gays.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/en_gays.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/en_gays.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/en_gays.php');
                    break;
                  }
         break;
        case 2: // FEMME
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuelle
                    include_once('sponsors/view/en_heteros.php');
                    break;
                   case 2: // Homosexuelle
                    include_once('sponsors/view/en_lesbiennes.php');
                    break;
                   case 3: // Bisexuelle
                    include_once('sponsors/view/en_lesbiennes.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/en_heteros.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/en_heteros.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/en_heteros.php');
                    break;
                  }
         break;
        case 3: // TRANSSEXUEL
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuel
                    include_once('sponsors/view/en_trans.php');
                    break;
                   case 2: // Homosexuel
                    include_once('sponsors/view/en_trans.php');
                    break;
                   case 3: // Bisexuel
                    include_once('sponsors/view/en_trans.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/en_trans.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/en_trans.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/en_trans.php');
                    break;
                  }
         break;
        case 4: // COUPLE
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuels
                    include_once('sponsors/view/en_couples.php');
                    break;
                   case 2: // Homosexuels
                    include_once('sponsors/view/en_gays_lesbiennes.php');
                    break;
                   case 3: // Bisexuels
                    include_once('sponsors/view/en_couples.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/en_couples.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/en_couples.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/en_couples.php');
                    break;
                  }
         break;
     }
break;

default: // PROFIL AFFICHE EN FRANCAIS OU AUTRE
    switch($i['gender'])
     {
        case 1: // HOMME
                switch($i['purposes'])
                 {
                   case 1: // Hétéro
                    include_once('sponsors/view/fr_heteros.php');
                    break;
                   case 2: // Homosexuel
                    include_once('sponsors/view/fr_gays.php');
                    break;
                   case 3: // Bisexuel
                    include_once('sponsors/view/fr_gays.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/fr_gays.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/fr_gays.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/fr_gays.php');
                    break;
                  }
         break;
        case 2: // FEMME
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuelle
                    include_once('sponsors/view/fr_heteros.php');
                    break;
                   case 2: // Homosexuelle
                    include_once('sponsors/view/fr_lesbiennes.php');
                    break;
                   case 3: // Bisexuelle
                    include_once('sponsors/view/fr_lesbiennes.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/fr_heteros.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/fr_heteros.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/fr_heteros.php');
                    break;
                  }
         break;
        case 3: // TRANSSEXUEL
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuel
                    include_once('sponsors/view/fr_trans.php');
                    break;
                   case 2: // Homosexuel
                    include_once('sponsors/view/fr_trans.php');
                    break;
                   case 3: // Bisexuel
                    include_once('sponsors/view/fr_trans.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/fr_trans.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/fr_trans.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/fr_trans.php');
                    break;
                  }
         break;
        case 4: // COUPLE
                switch($i['purposes'])
                 {
                   case 1: // Hétérosexuels
                    include_once('sponsors/view/fr_couples.php');
                    break;
                   case 2: // Homosexuels
                    include_once('sponsors/view/fr_gays_lesbiennes.php');
                    break;
                   case 3: // Bisexuels
                    include_once('sponsors/view/fr_couples.php');
                    break;
                   case 4: // Plaisir tarifé privé
                    include_once('sponsors/view/fr_couples.php');
                    break;
                   case 5: // Plaisir tarifé salon
                    include_once('sponsors/view/fr_couples.php');
                    break;
                   case 6: // Plaisir tarifé escort
                    include_once('sponsors/view/fr_couples.php');
                    break;
                  }
         break;

     }
break;

} // Fin du switch

?>
Je n'ai pas encore inclu de publicité en fonction de toutes les langues car je n'ai pas encore trouvé de bonnes régies pour certaines d'entre-elles.

Mais sinon, ça marche!

POur obtenir l'URL, SI VOUS ETES MAJEUR UNIQUEMENT, envoyez un e-mail vide à l'adresse : [email protected] et vous recevrez automatiquement l'URL en retour. Vous pourrez alors constater la façon dont j'ai mis en place ces publicités.

Vous m'aviez demandé pourquoi je n'incluais pas qu'une seule page qui afficherait dynamiquement les pubs... c'est que chacune des pages appelées par ce script contient elle-même un script (javascript) qui lui est propre et qui permet de générer aléatoirement des bannières avec quelques fonctions supplémentaires. C'est donc assez complexe comme truc :)

J'aime bien la solution du switch car elle me pemret de voir très rapidement les pubs que j'ai configuré. En effet, au fur et à mesure, je ferai de nvlles pages pour des pubs encore ciblées. Par exemple, pour l'instant, c'est le même script de bannières aléatoire qui est appelé pour un profil "Homme homosexuel" ou "Homme bisexuel". On peut imaginer que, plus tard, je réserve un script spécifique à chacun de ces profils afin de cibler encore plus mes pubs.

Et oui, il faut bien ça pour un service 100% gratuit :oops:


Merci encore infiniment à vous qui m'avez aidé!

par ouckileou » 15 juin 2005, 14:53

j'ai hâte de voir ça... :P

par Invité » 15 juin 2005, 14:50

OUi oui, j'ai bien compris :D

Je vous tiens au courant et vous copierai mon code complet avec les VRAIES valeurs de variable (beaucoup plus croustillantes puisque mon site est en fait un site de rencontres pour adulte :shock: )

par Guakamol » 15 juin 2005, 14:47

Ben ce que je t'explique avec default c'est que tu peux contourner le probleme : En gros si la langue n'est ni 'en', ni 'de', ni 'po' -> ben alors tu affiche ta page par default a savoir en francais :).

par Invité » 15 juin 2005, 14:46

Oui ca ma l'air correct...

En revanche je pense pas que tu puisse faire qq chose comme : case 'fr' || 'default' || ''.

Sinon tu peux utiliser l'option default dans la structure switch

A la fin de tes case :

....
case 'de' :
....
break;

default :
....
break;
}//fin du switch

Le code effectué dans default sera executé si aucune des valeurs precedentes n'a ete trouvée
Ah mais oui, biensur!

Je mets ma langue fr dans le dafault!

Un immense merci à vous deux... je teste tout ça et vous tiens au courant! Merci, vraiment! :o

par Invité » 15 juin 2005, 14:44

En fait il y a qqch de spécial avec la variable fr... elle peut aussi avoir la valeur de "default" ou de " ".

par exemple:

page.php?l=fr
page.php?l=default
page.php?l=

donneront tous la même page (donc en français)

:oops:

Ce que j'aurais aimé, c'est de pouvoir mettre (traduit en français)
au cas ou (case) = fr ou default ou ... alors afficher...


en fait la même chose que

if($l=="fr" || $l=="default" || $l=="") mais avec le case

par Guakamol » 15 juin 2005, 14:43

Oui ca ma l'air correct...

En revanche je pense pas que tu puisse faire qq chose comme : case 'fr' || 'default' || ''.

Sinon tu peux utiliser l'option default dans la structure switch

A la fin de tes case :

....
case 'de' :
....
break;

default :
....
break;
}//fin du switch

Le code effectué dans default sera executé si aucune des valeurs precedentes n'a ete trouvée