Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
916 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pblm de lien php avec un include

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pblm de lien php avec un include

n°1400642
Hermes le ​Messager
Breton Quiétiste
Posté le 04-07-2006 à 20:17:51  profilanswer
 

c quoi cette horreur ? [:heink]

mood
Publicité
Posté le 04-07-2006 à 20:17:51  profilanswer
 

n°1400647
AlphaZone
Posté le 04-07-2006 à 20:23:57  profilanswer
 

Salut,
 
Tu t'embête un peu. Evite les IF car au bout d'un moment tu auras un temps d'excution qui sera de l'ordre de quelques secondes.
 
Voici ce que je te conseil. Dans un premier temps, fais tes liens comme ceci :
index.php?page=1
index.php?page=2
...
index.php?page=N
 
N étant un nombre
 
 
Ensuite dans ta page index.php, tu traite ton information comme ceci:

Code :
  1. if(isset($_GET['page']) && !empty($_GET['page']) && is_numeric($_GET['page'])){
  2.   switch($_GET['page']){
  3.     case 1: include('toto.php'); break;
  4.     case 2: include('titi.php'); break;
  5.     ...
  6.     case N: include('ta_page.php'); break;
  7.     default: include('page_par_defaut.php'); break;
  8.   }
  9. }
  10. else {
  11.   include ('page_par_defaut.php');
  12. }


 
Voila j'espère t'avoir aidé.
 
PS : J'ai pas testé
PS2 : Y'a des solutions meilleurs que des includes. Mais ca tu l'apprendras avec le temps et l'expérience.


Message édité par AlphaZone le 04-07-2006 à 20:24:44
n°1400649
Hermes le ​Messager
Breton Quiétiste
Posté le 04-07-2006 à 20:24:55  profilanswer
 


 
T'aider à quoi ?
 
Déjà on include pas directement avec le résultat d'une méthode POST ou GET.  
 
Tu prends la doc et tu regardes switch avec case et break.
 
 :heink:  

n°1400651
AlphaZone
Posté le 04-07-2006 à 20:28:41  profilanswer
 

Qui c'est qui t'as déconseillé ? looool Ca c'est la meilleur de l'année !

n°1400654
Hermes le ​Messager
Breton Quiétiste
Posté le 04-07-2006 à 20:31:50  profilanswer
 


 
On aurait du te déconseiller de faire cette école (enfin si école il y a). Sinon, il faut pas croire tout ce que les newb racontent sur les forums hein. [:petrus75]
 
switch est tout simplement la méthode la plus rapide, bien plus rapide que if. [:petrus] (et aussi la plus sûr vu que normalement, il y a un default à la fin).  

n°1400656
mIRROR
Chevreuillobolchévik
Posté le 04-07-2006 à 20:36:39  profilanswer
 

je dirais aussi que c est la plus propre
dans un autre topic on a vu deux fois 5 ou 6 if imbriqués :cry:

n°1400687
Woutcha
Posté le 04-07-2006 à 21:28:20  profilanswer
 

Solution alternative si vraiment tu es alergique aux 'switch' (mais bon comme signale plus haut ca n'a jamais tuer personne un switch):
 

Code :
  1. $liste_page = array('page1.php', 'page2.php', 'page3.php', 'page4.php');
  2. $page  = (isset($_GET['page']) && isset($liste_page[$_GET['page']]))?$liste_page[$_GET['page']]:'default_page.php';
  3. include($page);

n°1400702
AlphaZone
Posté le 04-07-2006 à 22:05:01  profilanswer
 

Elle vraiment pas jolie ta solution Woutcha, vraiment pas. Ca fait "torchon". Désolé si mes mots sont crus.
 

n°1400930
Woutcha
Posté le 05-07-2006 à 11:08:38  profilanswer
 

AlphaZone a écrit :

Elle n'est vraiment pas jolie ta solution Woutcha, vraiment pas. Ca fait "torchon". Désolé si mes mots sont crus.


 
Desole mais une affirmation sans argumentation n'a aucune valeur.
 
Que ca te plaise ou non ma solution est correcte du point de vu syntaxique et logique, et avoir la liste des pages sous forme de tableau
est beaucoup plus elegant qu'un enorme switch...
 
Bref je garde mon "torchon" en attendant une vrai argumentation de ta part...
 
 
 

n°1400939
AlphaZone
Posté le 05-07-2006 à 11:18:35  profilanswer
 

Désolé pour la grammaire.
 
J'aimerais bien que tu m'explique quel est l'interêt de passer en paramètre des chaines de caractères ?
D'un point de vu syntaxe, c'est correct, CERTE ! Mais d'un point de vue pratique, ca vaut rien du tout. Tu crois qu'un tableau c'est plus élégant qu'un switch ? laisse moi rire !
On n'est pas la pour parler d'élégance mais d'optimisation et c'est surement pas avec un tableau que ca sera plus rapide.
 
Tu ne crois pas que c'est bien plus rapide de saisir un nombre que des caractères ?
Supposons que tu renomme ta page X.php (X étant un nom au hasard), tu vas devoir modifier tous tes liens. C'est balo quand même alors que qu'avec un simple numérique, le problème ne se serait pas posé.
 
J'espère que mon argumentation a été à la hauteur de tes espérences ;)
 
Sur ce, @ bon entendeur.

Message cité 3 fois
Message édité par AlphaZone le 05-07-2006 à 11:23:00
mood
Publicité
Posté le 05-07-2006 à 11:18:35  profilanswer
 

n°1400941
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-07-2006 à 11:20:56  profilanswer
 

AlphaZone a écrit :

Désolé pour la grammaire.
 
J'aimerais bien que tu m'explique quel est l'interêt de passer en paramètre des chaines de caractères ?
 
Tu ne crois pas que c'est bien plus rapide de saisir un nombre que des caractères ?
Supposons que tu renomme ta page X.php (X étant un nom au hasard), tu vas devoir modifier tous tes liens. C'est balo quand même alors que qu'avec un simple numérique, le problème ne se serait pas posé.
 
J'espère que mon argumentation a été à la hauteur de tes espérences ;)


je te conseille de relire son code et de revoir ton argumentation ... :o
Ou as-tu vu qu'il passait des chaines de caractères?
Il récupère l'index de la page demandé en get, puis la page associée dans le tableau!

n°1400947
AlphaZone
Posté le 05-07-2006 à 11:22:00  profilanswer
 

anapajari a écrit :

je te conseille de relire son code et de revoir ton argumentation ... :o
Ou as-tu vu qu'il passait des chaines de caractères?
Il récupère l'index de la page demandé en get, puis la page associée dans le tableau!


Je crois que c'est toi qui à mal lu son code.
 
A bon entendeur aussi
 
PS : j'ai édité mon message entre temps. Désolé

Message cité 1 fois
Message édité par AlphaZone le 05-07-2006 à 11:22:33
n°1400965
Woutcha
Posté le 05-07-2006 à 11:42:08  profilanswer
 

AlphaZone a écrit :

Désolé pour la grammaire.
 
J'aimerais bien que tu m'explique quel est l'interêt de passer en paramètre des chaines de caractères ?
D'un point de vu syntaxe, c'est correct, CERTE ! Mais d'un point de vue pratique, ca vaut rien du tout. Tu crois qu'un tableau c'est plus élégant qu'un switch ? laisse moi rire !
On n'est pas la pour parler d'élégance mais d'optimisation et c'est surement pas avec un tableau que ca sera plus rapide.
 
Tu ne crois pas que c'est bien plus rapide de saisir un nombre que des caractères ?
Supposons que tu renomme ta page X.php (X étant un nom au hasard), tu vas devoir modifier tous tes liens. C'est balo quand même alors que qu'avec un simple numérique, le problème ne se serait pas posé.
 
J'espère que mon argumentation a été à la hauteur de tes espérences ;)
 
Sur ce, @ bon entendeur.


 
Ou as-tu vu des chaines de caracteres en parametres ????? RELIS mon code, j'utilise des index NUMERIQUES.
 
"On n'est pas la pour parler d'élégance mais d'optimisation et c'est surement pas avec un tableau que ca sera plus rapide."
 
Exemple theorique:
 
Imagine le tableau suivant : $liste_pages = array('page1', 'page2', ..., 'page100')
 
et le switch suivant :
 

Code :
  1. switch($un_numero){
  2.    case 1: print 'page1'; break;
  3.    case 2: print 'page2'; break;
  4.    ...
  5.   case 100: print 'page100'; break;
  6.   default: print 'blabla'; break;


 
quelle solution sera la plus rapide pour afficher 'page100'?
 
Le switch avec $un_numero = 100 ou print $liste_pages[99]?
 
Je n'ai pas teste mais je parie sur le tableau perso...
 
 
 

n°1400971
AlphaZone
Posté le 05-07-2006 à 11:48:35  profilanswer
 

Rah, ca me fait mal de l'avouer mais j'ai eu tord sur toute la ligne. Erf.
 
Honte à moi

n°1400975
mIRROR
Chevreuillobolchévik
Posté le 05-07-2006 à 11:50:53  profilanswer
 

super des warriors de la micro optimisation  [:barthaliastoxik]  
 
chacun sa methode et le temps d execution n est pas un critere valide pour differencier deux fonctions en php :/

n°1400977
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-07-2006 à 11:53:57  profilanswer
 

AlphaZone a écrit :

Je crois que c'est toi qui à mal lu son code.
A bon entendeur aussi
PS : j'ai édité mon message entre temps. Désolé


Nan nan je confirme ce que je disais, c'est toi qui a mal lu, comme le re-souligne woutcha y'a pas de chaines passées en paramètres!
 

AlphaZone a écrit :

Tu crois qu'un tableau c'est plus élégant qu'un switch ? laisse moi rire !
On n'est pas la pour parler d'élégance mais d'optimisation et c'est surement pas avec un tableau que ca sera plus rapide.


Avant de lancer ce genre d'affirmation le minimum c'est de vérifier ces propos au moins :o
Premier script t.php avec des switch

Code :
  1. <?php
  2. $start=microtime();
  3. $b=0;
  4. for($a=0; $a<=20000; $a++){
  5. switch($a%10){
  6.    case 1: $b = 'A';break;
  7.    case 2: $b = 'B';break;
  8.    case 3: $b = 'C';break;
  9.    case 4: $b = 'D';break;
  10.    case 5: $b = 'E';break;
  11.    case 6: $b = 'F';break;
  12.    case 7: $b = 'G';break;
  13.    case 8: $b = 'H';break;
  14.    case 9: $b = 'I';break;
  15.    default: $b = 'Z';break;
  16. }
  17. }
  18. $end=microtime()-$start;
  19. echo "TIME :".$end."\n";
  20. ?>


 
Deuxième t2.php avec un tableau

Code :
  1. <?php
  2. $start=microtime();
  3. $b=0;
  4. $array=array('Z','A','B','C','D','E','F','G','H','I');
  5. for($a=0; $a<=20000; $a++){
  6. $b = $array[$a%10];
  7. }
  8. $end=microtime()-$start;
  9. echo "TIME :".$end."\n";
  10. ?>


Résultat:

SRVTEST ~ # php t.php
TIME :0.017859
SRVTEST ~ # php t2.php
TIME :0.007196


La solution avec le tableau est 3 fois plus rapide [:spamafote]
 
 
 
 

n°1400980
AlphaZone
Posté le 05-07-2006 à 11:55:58  profilanswer
 

Ouai bon ca va, j'me suis planté dans mes propos. J'étais persuadé qu'il passait des chaines de caractères. N'en rajoutez pas, please :'(

n°1400988
mIRROR
Chevreuillobolchévik
Posté le 05-07-2006 à 12:00:00  profilanswer
 

on a gagné un centieme de seconde sur 20 000 itérations c est genial [:barthaliastoxik]

Message cité 1 fois
Message édité par mIRROR le 05-07-2006 à 12:00:32
n°1400991
Woutcha
Posté le 05-07-2006 à 12:04:07  profilanswer
 

AlphaZone a écrit :

Rah, ca me fait mal de l'avouer mais j'ai eu tord sur toute la ligne. Erf.
 
Honte à moi


 
No problemo... et puis tout cela est reste tres courtois.  :jap:

n°1401012
Hermes le ​Messager
Breton Quiétiste
Posté le 05-07-2006 à 12:33:01  profilanswer
 

mwoué, faut prendre aussi en compte la lisibilité et le debugging éventuel. :/
 
switch est un très bon compromis, sans doute le meilleur. :/

n°1401021
mIRROR
Chevreuillobolchévik
Posté le 05-07-2006 à 12:48:25  profilanswer
 

Hermes le Messager a écrit :

mwoué, faut prendre aussi en compte la lisibilité et le debugging éventuel. :/
 
switch est un très bon compromis, sans doute le meilleur. :/


 
:jap:
je plussoie cette intervention pleine de sagesse

n°1401032
supermofo
Hello World !
Posté le 05-07-2006 à 12:58:46  profilanswer
 

identification numérique, array, isset donne
 

Code :
  1. 1ère partie
  2. //generer l'array qui contient le nom des include passe en GET
  3. $fichiersinclude = array();
  4. foreach (glob(__libs_dir__."*.inc.php" ) as $v) {
  5. $fichiersinclude[md5($v)] = $v;
  6. }
  7. file_put_contents("./fichiersinclude.inc.php",
  8. "<?php \$fichiersinclude=”.var_export($fichiersinclude, 1)."; ?>" );
  9. //2ème partie
  10. require_once __libs_dir__."/fichiersinclude.inc.php"
  11. if(!isset(fichiersinclude[$_GET['page']]){
  12. die("logging ban ip etc ." )
  13. }
  14. require $fichiersinclude[$_GET['page']
  15. .... code ...


 
 
Sous la condition que le nombre de fichiers à inclure ne change pas souvent cette solution est excellente.
 
PS: il ne faut jamais laisser à l'utilisateur la possibilite de choisir ses includes [:ayou]

Message cité 1 fois
Message édité par supermofo le 05-07-2006 à 13:10:45
n°1401073
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-07-2006 à 13:27:09  profilanswer
 

mIRROR a écrit :

on a gagné un centieme de seconde sur 20 000 itérations c est genial [:barthaliastoxik]


J'ai jamais dit que c'était intéressant, je voulais juste montrer que l'argument "c'est surement pas avec un tableau que ca sera plus rapide. " était tout caca.
 

Hermes le Messager a écrit :

mwoué, faut prendre aussi en compte la lisibilité et le debugging éventuel. :/
switch est un très bon compromis, sans doute le meilleur. :/


Switch est même pas un compromis, c'est effectivement la meilleur solution en terme de lisibilité!
Et de toute façon si on se retrouve avec un switch ne serait-ce que 100 élements, pour moi c'est qu'il y a un problème quelque part ...
 

n°1401087
mIRROR
Chevreuillobolchévik
Posté le 05-07-2006 à 13:38:32  profilanswer
 

anapajari a écrit :

J'ai jamais dit que c'était intéressant, je voulais juste montrer que l'argument "c'est surement pas avec un tableau que ca sera plus rapide. " était tout caca.


 
j avais bien compris ton role d arbitre :jap:
c est la petite gueguerre contre la missante µs qui me fait hurler de rire
 
 

anapajari a écrit :

si on se retrouve avec un switch ne serait-ce que 100 élements, pour moi c'est qu'il y a un problème quelque part ...


 
et pas un petit  :sweat:  

n°1401097
mIRROR
Chevreuillobolchévik
Posté le 05-07-2006 à 13:51:04  profilanswer
 

supermofo a écrit :

code de malade


 
 
j ai pas du comprendre ton code  :sweat:

n°1401112
Hermes le ​Messager
Breton Quiétiste
Posté le 05-07-2006 à 14:20:09  profilanswer
 

anapajari a écrit :

Switch est même pas un compromis, c'est effectivement la meilleur solution en terme de lisibilité!
Et de toute façon si on se retrouve avec un switch ne serait-ce que 100 élements, pour moi c'est qu'il y a un problème quelque part ...


 
Clairement. :/

n°1401201
Woutcha
Posté le 05-07-2006 à 16:11:28  profilanswer
 

mIRROR a écrit :

je dirais aussi que c est la plus propre
dans un autre topic on a vu deux fois 5 ou 6 if imbriqués :cry:
...
super des warriors de la micro optimisation  [:barthaliastoxik]  
chacun sa methode et le temps d execution n est pas un critere valide pour differencier deux fonctions en php :/
...
on a gagné un centieme de seconde sur 20 000 itérations c est genial [:barthaliastoxik]
...
:jap: je plussoie cette intervention pleine de sagesse
...
j avais bien compris ton role d arbitre :jap:
c est la petite gueguerre contre la missante µs qui me fait hurler de rire  
et pas un petit  :sweat:
...
j ai pas du comprendre ton code  :sweat:


 
 
Y'a pas a dire, tes 6 posts sur ce topic brillent par leur interet et leur pertinence.
Merci de nous faire partager ta connaissance du php...

n°1401237
mIRROR
Chevreuillobolchévik
Posté le 05-07-2006 à 16:43:14  profilanswer
 

Woutcha a écrit :

Y'a pas a dire, tes 6 posts sur ce topic brillent par leur interet et leur pertinence.
Merci de nous faire partager ta connaissance du php...


 
 
 [:petrus dei]  
 
il dit quoi le mongol ?
 
alphazone a repondu a la question des le debut  
donc tous tes posts sont inutiles si tu le prends comme ca :/
et tu m excuseras si tu n y trouves aucune pertinence  
j assume t inquiete pas
vous etiez adorables tous les deux a vous battre pour des microsecondes  [:itm]

n°1401253
Woutcha
Posté le 05-07-2006 à 16:57:08  profilanswer
 

mIRROR a écrit :

[:petrus dei]  
 
il dit quoi le mongol ?
 
alphazone a repondu a la question des le debut  
donc tous tes posts sont inutiles si tu le prends comme ca :/
et tu m excuseras si tu n y trouves aucune pertinence  
j assume t inquiete pas
vous etiez adorables tous les deux a vous battre pour des microsecondes  [:itm]


 
Ne te sens pas oblige d'etre insultant pour te defendre...
Moi je vois juste que sur tes 6 posts il y a pas 1 ligne de php et surtout 3 posts qui se veulent "pseudo-ironique" a propos  
de micro-optimisation alors qu'il n'en a jamais ete question dans mes messagess ou ceux d'anapajari...
 
A bon entendeur...
 
 
 
Edit en reponse au post en dessous : Ne parle pas de ma pseudo-science sinon je vais me sentir obliger de parler de ton pseudo-humour  :D  


Message édité par Woutcha le 05-07-2006 à 17:12:46
n°1401260
mIRROR
Chevreuillobolchévik
Posté le 05-07-2006 à 17:03:43  profilanswer
 

pas une insulte juste une replique de film  
mais bon s il te faut absoluuuuuuuuuuuuuument que je mette du code php pour que mon post ait un interet
 
 
foreach ($my_post as $wtf) :
if($interet_de_ton_code == false) {
$wtf = set_mybouche_closed(true);
exit();
}
endforeach;
 
a part etaler ta pseudo science tu n as que peu aidé l auteur de ce topic qui avait deja recu sa reponse  
 
sinon je viens de changer les piles de mon sonotone j entends super bien  
merci de t en inquieter [:itm]

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pblm de lien php avec un include

 

Sujets relatifs
HTML : faire un lien direct vers une page précise d'un PDFProblème au survol d'un lien dans un div
CSS avec les Includegriser un lien
routine lien cellule-bouton-image[VBA Excel] Lien vers une page précise
[HTML]Lien vers un dossierphp, ancre et include.....
compter nb de fois qu'on clique sur un lienCSS lien image
Plus de sujets relatifs à : pblm de lien php avec un include


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR