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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  439  440  441  ..  486  487  488  489  490  491
Auteur Sujet :

les développeurs de forums, les 3/4 des forums sont down /o\

n°1557712
Tristou
Keep calm and hack cookies
Posté le 10-05-2007 à 01:24:27  profilanswer
 

Reprise du message précédent :
j'avais pensé à switch mais j'ai lu que c'est apparement moins rapide. Je sais à quoi correspond isset et avec empty, j'ai le même résultat. Par contre, je veux bien que tu détailles un peu plus la deuxième solution ;)

 

(et oui, je débute, c'est pour ça que je dis que y'auras du taf' :D)

 

EDIT : http://www.vulgarisation-informati [...] er-php.php
4 ms de plus que  if/else

Message cité 2 fois
Message édité par Tristou le 10-05-2007 à 01:29:29

---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
mood
Publicité
Posté le 10-05-2007 à 01:24:27  profilanswer
 

n°1557716
0x90
Posté le 10-05-2007 à 01:42:46  profilanswer
 

Tristou a écrit :

j'avais pensé à switch mais j'ai lu que c'est apparement moins rapide. Je sais à quoi correspond isset et avec empty, j'ai le même résultat. Par contre, je veux bien que tu détailles un peu plus la deuxième solution ;)
 
(et oui, je débute, c'est pour ça que je dis que y'auras du taf' :D)
 
EDIT : http://www.vulgarisation-informati [...] er-php.php
4 ms de plus que  if/else


 
4ms de "gagnés" (enfin 'gagnés', optimisons) pour 100000 pages affichées, réflechis un peu à ce que ça représente et occupe toi plus souvent de la lisibilité de ton code que de son 'optimisation'...


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1557806
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2007 à 10:33:38  profilanswer
 

0x90 a écrit :

4ms de "gagnés" (enfin 'gagnés', optimisons) pour 100000 pages affichées, réflechis un peu à ce que ça représente et occupe toi plus souvent de la lisibilité de ton code que de son 'optimisation'...


Sans compter que les 4ms pour 100000 pages, c'est avec un if/else, pas un if/elseif/elseif/elseif :sweat:

 

Un switch bien implémenté (je sais, je rêve, c'est PHP) doit pouvoir faire son dispatch en O(1), et quand bien même il serait mal implémenté même dans le pire des cas il aura des performances équivalentes à une suite de elseif (O(n)), donc la différence sur une monstruosité pareille est très probablement inférieure à 4ms :o

 

En bonus, ici on tape 2 conditionels nestés alors qu'avec un switch on a qu'un niveau de conditionnelles :o


Message édité par masklinn le 10-05-2007 à 10:33:55

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1557839
Tristou
Keep calm and hack cookies
Posté le 10-05-2007 à 11:15:06  profilanswer
 

Disons que je me soucie de ça pour prendre l'habitude, dès le départ, l'habitude (ou du moins essayer) de faire en sorte que ça aille aussi rapidement que possible et ne pas y revenir 36.000 fois. Mais ce que je souhaite avant tout, c'est que ça marche quand même :o

 

J'ai bien aimé le tableau associatif mai sj ene vois pas trop comment faire sachant qu'il s'agit de ça :

 
Code :
  1. $truc = array("machin" => truc, "bidule" => chouette)
 

Autrement en passant par un switch, c'est envisageable de faire un premier switch pour déterminer s'il s'agit de la modif du profil ou de la lecture et si c'est modifier, à l'intérieur de refaire un switch pour selectionner la cat' ?

Message cité 2 fois
Message édité par Tristou le 10-05-2007 à 11:15:37

---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1557847
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2007 à 11:22:53  profilanswer
 

Tristou a écrit :

Disons que je me soucie de ça pour prendre l'habitude, dès le départ, l'habitude (ou du moins essayer) de faire en sorte que ça aille aussi rapidement que possible et ne pas y revenir 36.000 fois.


C'est complètement con et c'est une mauvaise habitude.

Tristou a écrit :

Mais ce que je souhaite avant tout, c'est que ça marche quand même :o


Le souci de performance maximale et le souci de correction du code sont antinomique, la recherche de performance menant 90% du temps à un code plus complexe et moins lisible.

Tristou a écrit :


Code :
  1. $truc = array("machin" => truc, "bidule" => chouette)



Tu mets les chaînes à afficher dans ta hashmap [:spamafote]  

Tristou a écrit :


Autrement en passant par un switch, c'est envisageable de faire un premier switch pour déterminer s'il s'agit de la modif du profil ou de la lecture et si c'est modifier, à l'intérieur de refaire un switch pour selectionner la cat' ?


J'ai pas compris la question, mais modéliser ton machin if/else/elseif/trucbidule avec un switch ça se fait en un seul lookup


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1557864
omega2
Posté le 10-05-2007 à 11:33:30  profilanswer
 

Tristou a écrit :

Disons que je me soucie de ça pour prendre l'habitude, dès le départ, l'habitude (ou du moins essayer) de faire en sorte que ça aille aussi rapidement que possible et ne pas y revenir 36.000 fois. Mais ce que je souhaite avant tout, c'est que ça marche quand même :o

Quoi qu'on en dise, on est quasiment tous passé par là un jour ou l'autre même si pour la pluspart des gens, ca a été avec les apostrophes et les guillemets. Mais il faut redescendre sur terre et réaliser qu'il y a des optimisations qui ne servent à rien du tout : qu'est ce que t'en as à faire que ton serveur soit capable de fournir une page de plus ou de moins par semaine?
 
En plus de ça dans le cas présent tu te bases sur un test qui ne correspond pas à ta situation vu que le test n'utilise qu'un seul "if" et non pas une série de "if/elseif".
 
Au fait : une base de donnée mal optimisé entraine des baisses de vitesse qui peuvent dépassé la disaine de seconde dans certain cas. Qu'est ce que 40 millionémes de seconde face à ça? Il vaut mieux s'occuper d'abord des problémes qui risquent de faire perdre 250 000 fois plus de temps tu ne crois pas? ;)

n°1557896
Tristou
Keep calm and hack cookies
Posté le 10-05-2007 à 11:52:11  profilanswer
 

masklinn a écrit :

C'est complètement con et c'est une mauvaise habitude.
Le souci de performance maximale et le souci de correction du code sont antinomique, la recherche de performance menant 90% du temps à un code plus complexe et moins lisible.


 
Donc en fait faut d'abord faire un truc qui marche, qu'est pas forcément rapide  [:mister_k]  
 

masklinn a écrit :

Tu mets les chaînes à afficher dans ta hashmap [:spamafote]

 
 
Tu pourrais détailler parce que les les seules choses que j'ai trouvé avec hashmap et array, c'est en Java  [:jean-guitou]  
 

masklinn a écrit :

J'ai pas compris la question, mais modéliser ton machin if/else/elseif/trucbidule avec un switch ça se fait en un seul lookup


 
Grosso modo (c'est crade mais bon stun exemple :o)
 

Code :
  1. $mode = $_GET['mode'];
  2. switch ($mode)
  3. {
  4.    case 'edition' :
  5.      $cat = $_GET['cat']
  6.      switch ($cat)
  7.        {
  8.          case 'compte' :
  9.          // le code pour modifier les informations de connexion du compte
  10.          break;
  11.          case 'perso' :
  12.          // le code pour modifier les informations personnelles
  13.          break;
  14.          case 'config' :
  15.          // Le code pour modifier sa config du forum
  16.          break;
  17.          case 'images' :
  18.          // Le code pour modifier les images (avatar, smileys etc.)
  19.          break;
  20.          default :
  21.          // Le code par défaut
  22.         break;
  23.    case 'voir'
  24.    // le code
  25.   default :
  26.   // le code par défaut
  27.   break;
  28.   }


 
Ou bien une fois le switch pour le mode démarré pour les cat', j'utilise un if/else à la place du deuxième switch ?


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1557905
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2007 à 11:58:03  profilanswer
 

Tristou a écrit :

Donc en fait faut d'abord faire un truc qui marche, qu'est pas forcément rapide  [:mister_k]


On fait le truc le plus simple possible et qui marche à coup sûr, et quand on a fini si et seulement si les performances sont insuffisantes, on sort son profiler, on regarde où sont le bottlenecks et on les optimise

Tristou a écrit :

Tu pourrais détailler parce que les les seules choses que j'ai trouvé avec hashmap et array, c'est en Java  [:jean-guitou]


http://en.wikipedia.org/wiki/Hashmap
 

Tristou a écrit :

Grosso modo (c'est crade mais bon stun exemple :o)
 

Code :
  1. $mode = $_GET['mode'];
  2. switch ($mode)
  3. {
  4.    case 'edition' :
  5.      $cat = $_GET['cat']
  6.      switch ($cat)
  7.        {
  8.          case 'compte' :
  9.          // le code pour modifier les informations de connexion du compte
  10.          break;
  11.          case 'perso' :
  12.          // le code pour modifier les informations personnelles
  13.          break;
  14.          case 'config' :
  15.          // Le code pour modifier sa config du forum
  16.          break;
  17.          case 'images' :
  18.          // Le code pour modifier les images (avatar, smileys etc.)
  19.          break;
  20.          default :
  21.          // Le code par défaut
  22.         break;
  23.    case 'voir'
  24.    // le code
  25.   default :
  26.   // le code par défaut
  27.   break;
  28.   }


 
Ou bien une fois le switch pour le mode démarré pour les cat', j'utilise un if/else à la place du deuxième switch ?


On peut le faire comme ça oui, néamoins je factoriserais probablement une partie du traitement dans des fonctions à part histoire de rendre l'ensemble plus lisible.
 
Donc pour commencer tu n'as pas besoin des variables intermédiaires ($mode et $cat) et peut faire un truc du style

Code :
  1. switch ($_GET['mode'])
  2. {
  3.   case 'edition' :
  4.     switch ($_GET['cat'])
  5.       {
  6.         case 'compte' :
  7.         // le code pour modifier les informations de connexion du compte
  8.         break;
  9.         case 'perso' :
  10.         // le code pour modifier les informations personnelles
  11.         break;
  12.         case 'config' :
  13.         // Le code pour modifier sa config du forum
  14.         break;
  15.         case 'images' :
  16.         // Le code pour modifier les images (avatar, smileys etc.)
  17.         break;
  18.         default :
  19.         // Le code par défaut
  20.        break;
  21.   case 'voir'
  22.   // le code
  23.  default :
  24.  // le code par défaut
  25.  break;
  26.  }


 
Et ensuite personnellement je créerais une fonction ou une méthode pour e.g. la gestion de l'édition, contenant elle même un switch dispatchant sur la catégorie (et en fait je ferais probablement l'inverse, d'abord dispatcher sur la catégorie puis dispatcher sur l'action)


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1557956
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2007 à 12:52:58  profilanswer
 


Ben non, ça c'est uniquement si tu balances le contenu d'un $_GET ou d'un $_POST dans une page, dans une DB ou dans un eval (rock & roll [:pingouino]), ici le contenu de $_GET ne dépasse pas l'entrée du switch et on le teste explicitement contre une série de valeurs admissibles (la meilleur manière de ne pas avoir de problème, accessoirement), donc tout va très bien (madame la marquise), il n'y a aucune faille de sécurité dans le code posté ici.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1557966
Tristou
Keep calm and hack cookies
Posté le 10-05-2007 à 13:01:57  profilanswer
 

 

Je pige rien, je suis nul en anglais [:sisicaivrai]

 
masklinn a écrit :

On peut le faire comme ça oui, néamoins je factoriserais probablement une partie du traitement dans des fonctions à part histoire de rendre l'ensemble plus lisible.

 

Donc pour commencer tu n'as pas besoin des variables intermédiaires ($mode et $cat) et peut faire un truc du style

Code :
  1. switch ($_GET['mode'])
  2. {
  3.   case 'edition' :
  4.     switch ($_GET['cat'])
  5.       {
  6.         case 'compte' :
  7.         // le code pour modifier les informations de connexion du compte
  8.         break;
  9.         case 'perso' :
  10.         // le code pour modifier les informations personnelles
  11.         break;
  12.         case 'config' :
  13.         // Le code pour modifier sa config du forum
  14.         break;
  15.         case 'images' :
  16.         // Le code pour modifier les images (avatar, smileys etc.)
  17.         break;
  18.         default :
  19.         // Le code par défaut
  20.        break;
  21.   case 'voir'
  22.   // le code
  23.  default :
  24.  // le code par défaut
  25.  break;
  26.  }
 

Et ensuite personnellement je créerais une fonction ou une méthode pour e.g. la gestion de l'édition, contenant elle même un switch dispatchant sur la catégorie (et en fait je ferais probablement l'inverse, d'abord dispatcher sur la catégorie puis dispatcher sur l'action)

 

Tu veux dire mettre le contenu des 'case' dans des fonctions, à part ? Dans ce cas, par souci de lisibilité, cela sous-entends de faire pareil pour le reste du code pour que ça soit lisible non ?

 

Pour sécuriser $_GET['mode'] et $_GET['cat'], je me dis que si ce n'est pas un des cas, ça renverra le contenu par défaut mais je ne sais pas si ça suffit et si mon raisonnement est juste.

 

EDIT : toasted [:benou_grilled]

Message cité 2 fois
Message édité par Tristou le 10-05-2007 à 13:03:19

---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
mood
Publicité
Posté le 10-05-2007 à 13:01:57  profilanswer
 

n°1557984
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2007 à 13:15:39  profilanswer
 

Tristou a écrit :

Tu veux dire mettre le contenu des 'case' dans des fonctions, à part ? Dans ce cas, par souci de lisibilité, cela sous-entends de faire pareil pour le reste du code pour que ça soit lisible non ?


Oui et probablement.

Tristou a écrit :


Pour sécuriser $_GET['mode'] et $_GET['cat'], je me dis que si ce n'est pas un des cas, ça renverra le contenu par défaut mais je ne sais pas si ça suffit et si mon raisonnement est juste.


Ca suffit largement, tant que tu n'utilises pas directement le contenu de $_GET['mode'] et $_GET['cat'] dans une interpolation tu n'as aucune raison de t'en faire à ce niveau là.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1557995
drasche
Posté le 10-05-2007 à 13:23:52  profilanswer
 

Tristou a écrit :

Je pige rien, je suis nul en anglais [:sisicaivrai]


http://fr.wikipedia.org/wiki/Table_de_hachage ?

Message cité 1 fois
Message édité par drasche le 10-05-2007 à 13:24:12

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1558012
Tristou
Keep calm and hack cookies
Posté le 10-05-2007 à 13:41:55  profilanswer
 

masklinn a écrit :

Oui et probablement.
 
Ca suffit largement, tant que tu n'utilises pas directement le contenu de $_GET['mode'] et $_GET['cat'] dans une interpolation tu n'as aucune raison de t'en faire à ce niveau là.


 
 :jap:  
 


 
Je comprends déjà mieux le contenu mais ça m'a l'air un peu trop compliqué à mon niveau pour l'instant  [:joce]


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1558413
anthomicro
Posté le 10-05-2007 à 19:10:49  profilanswer
 


 
Clair que les astuces que j'ai postées ici sont juste à connaître et pas forcément à utiliser tout le temps. Perso j'utilise des switch dans mon code et je n'en suis pas mort, c'est juste pour comparer la rapidité d'exécution de quelques structures pouvant faire la même chose. Après, en fonction de la rapidité, chacun choisira ce qu'il veut en connaissance de cause, bien que certaines fonctions ou formulations soient nettement plus rapides que d'autres.

n°1558420
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2007 à 19:27:34  profilanswer
 

anthomicro a écrit :

Clair que les astuces que j'ai postées ici sont juste à connaître et pas forcément à utiliser tout le temps.


Le gros problème que j'ai avec tes schémas est qu'ils ne partent pas tous 0 et ne sont pas à la même échelle, genre le graphe entre echo et print ou celui entre file_exists et is_file qui donnent l'impression d'une différence énorme alors qu'en réalité elle est insignifiante [:spamafote]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1558427
anthomicro
Posté le 10-05-2007 à 19:36:55  profilanswer
 

En effet l'échelle n'est pas la même, à vrai dire je n'y ai pas vraiment pensé ! Cependant certaines valeurs sont proches de la cinquantaine de millisecondes tandis que d'autres benchs durent nettement plus longtemps, il est donc difficile de les mettre à l'échelle en gardant un maximum de précision. Mais j'essaierai de refaire tout ça plus proprement ;)

n°1558435
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 10-05-2007 à 19:54:19  profilanswer
 

D'un autre coté, je vois pas en quoi un switch est plus lisible perso.
une bonne série de If bien indenté c'est au moins aussi lisible.

n°1558436
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2007 à 19:57:27  profilanswer
 

The-Shadow a écrit :

D'un autre coté, je vois pas en quoi un switch est plus lisible perso.


Parce qu'on sait qu'on comparera tout à la même valeur, et qu'on a pas de problèmes d'évaluation multiples d'une fonction, donc on peut regarder la valeur initiale (celle du switch) puis passer rapidement sur tous les case, alors que dans le cas d'une suite de if/elseif on doit parser toutes les conditions


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1558631
chaced
Posté le 11-05-2007 à 09:38:28  profilanswer
 

anthomicro a écrit :

En effet l'échelle n'est pas la même, à vrai dire je n'y ai pas vraiment pensé ! Cependant certaines valeurs sont proches de la cinquantaine de millisecondes tandis que d'autres benchs durent nettement plus longtemps, il est donc difficile de les mettre à l'échelle en gardant un maximum de précision. Mais j'essaierai de refaire tout ça plus proprement ;)


 
Faudrait tester si la différence existe toujours une fois Zend optimiser ou eAccelerator activé ;)


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1558745
Tristou
Keep calm and hack cookies
Posté le 11-05-2007 à 11:23:21  profilanswer
 

Bon, j'ai un souci avec la confirmation (pour le moment, c'est juste l'inscription et la connexion), quand je met un mauvais argument dans valid=xx, ça me met que les champs sont vides  (alors qu'il y a un message prévu au cas où c'est un tout autre arrgument qui est rentré) et que deux variables postées venant de $_POST['pseudo'] ne sont pas déclarées. Si j'utilise un switch, ça pourrait me sortir d'affaire ou bien ce n'est pas du à la structure conditionnelle if/else ?

 

EDIT : ça me le fais sur l'ancienne version du fichier, y'a donc bien un souci.

 

EDIT2 : ok, corrigé, c'est bon


Message édité par Tristou le 11-05-2007 à 18:25:00

---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1559152
totoffe38
Posté le 11-05-2007 à 19:54:08  profilanswer
 

je viens juste de percuter qu'h.fr n'a pas d'url rewriting, en fait ça sert à rien? Tout les gourous du SEO disent qu'il le faut absolument...

n°1559154
kao98
...
Posté le 11-05-2007 à 19:56:10  profilanswer
 

http://forum.hardware.fr/hfr/Overc [...] ujet-1.htm
 
spa de l'url rewriting ça ? :o


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1559170
0x90
Posté le 11-05-2007 à 20:50:44  profilanswer
 

totoffe38 a écrit :

je viens juste de percuter qu'h.fr n'a pas d'url rewriting, en fait ça sert à rien? Tout les gourous du SEO disent qu'il le faut absolument...


 
Y'a du rewriting que dans les parties accessibles par les bots, une fois connecté et pour les features des connectés, y'a pas.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1559251
drasche
Posté le 11-05-2007 à 23:45:41  profilanswer
 

0x90 a écrit :

Y'a du rewriting que dans les parties accessibles par les bots, une fois connecté et pour les features des connectés, y'a pas.


Non. L'URL rewriting est "branché" dès que tu utilises la combo en bas de page et que tu parcours les topics ;)  Il tombe si tu repasses sur des liens spécifiques à un utilisateur connecté (liste de drapeaux, édition de profils).

Message cité 1 fois
Message édité par drasche le 11-05-2007 à 23:46:38

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1559286
Tristou
Keep calm and hack cookies
Posté le 12-05-2007 à 02:27:36  profilanswer
 

Je comprends pas trop, les deux cas prévus pour $_GET['mode'] sont séparés, hors les deux contenus des echo apparaissent l'un après l'autre [:heink]. Qu'est-ce qui cloche ?

 

http://i95.photobucket.com/albums/l127/Tristou/bug_profil.jpg

 
Code :
  1. switch ($_GET['mode'])
  2.     {
  3.      case 'edition' :      
  4.         echo '<div class="corps_forum">
  5.         <img src="./template/images/bullet_arrow.png"/> <a href="index.php" title="Index du forum"><strong>Forum de test</strong></a>
  6.         <img src="./template/images/bullet_arrow.png"/> Profil <img src="./template/images/bullet_arrow.png"/> Edition du profil';
  7.       switch ($_GET['cat'])
  8.        {
  9.         case 'compte' :
  10.         // le code pour modifier les informations de connexion du compte
  11.         break;
  12.         case 'perso' :
  13.         // le code pour modifier les informations personnelles
  14.         break;
  15.         case 'config' :
  16.         // Le code pour modifier sa config du forum
  17.         break;
  18.         case 'images' :
  19.         // Le code pour modifier les images (avatar, smileys etc.)
  20.         break;
  21.         default :
  22.         // Le code par défaut
  23.         break;        
  24.        }
  25.         break;    
  26.      case 'voir':
  27.     echo '<div class="corps_forum">
  28.         <img src="./template/images/bullet_arrow.png"/> <a href="index.php" title="Index du forum"><strong>Forum de test</strong></a>
  29.         <img src="./template/images/bullet_arrow.png"/> Profil <img src="./template/images/bullet_arrow.png"/> Voir un profil';
  30.     break;
  31.    default :
  32.    echo PAGE_ERREUR;
  33.    break;
  34.   }
 

Merci d'avance  [:emanu]

Message cité 1 fois
Message édité par Tristou le 12-05-2007 à 12:08:18

---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1559288
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 12-05-2007 à 02:43:35  profilanswer
 

drasche a écrit :

Non. L'URL rewriting est "branché" dès que tu utilises la combo en bas de page et que tu parcours les topics ;)  Il tombe si tu repasses sur des liens spécifiques à un utilisateur connecté (liste de drapeaux, édition de profils).


L'URL rewriting est partout là où c'est utile, cétout y'a pas à chercher plus loin.  :o

n°1559336
Tristou
Keep calm and hack cookies
Posté le 12-05-2007 à 11:27:25  profilanswer
 

Ok, problème corrigé, un break mal placé. Par contrre, à moins de mettre un isset devant $_GET['mode'] et $_GET['cat'] (ce qui a pour effet de mettre la première valeur par défault quelquesoit le cas), j'ai un message d'erreur m'informant que les variables 'mode' et 'cat' ne sont pas définies. Comment je peux éviter ça :o ?


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1559348
multani
Dépressionnisé
Posté le 12-05-2007 à 11:47:28  profilanswer
 

Tristou a écrit :

Je comprends pas trop, les deux cas prévus pour $_GET['mode'] sont séparés, hors les deux contenus des echo apparaissent l'un après l'autre [:heink]. Qu'est-ce qui cloche ?

 

http://i95.photobucket.com/albums/ [...] profil.jpg

 
Code :
  1. switch (isset($_GET['mode']))
  2.     {
  3.      case 'edition' :      
  4.         echo '<div class="corps_forum">
  5.         <img src="./template/images/bullet_arrow.png"/> <a href="index.php" title="Index du forum"><strong>Forum de test</strong></a>
  6.         <img src="./template/images/bullet_arrow.png"/> Profil <img src="./template/images/bullet_arrow.png"/> Edition du profil';
  7.       switch (isset($_GET['cat']))
  8.        {
  9.         case 'compte' :
  10.         // le code pour modifier les informations de connexion du compte
  11.         break;
  12.         case 'perso' :
  13.         // le code pour modifier les informations personnelles
  14.         break;
  15.         case 'config' :
  16.         // Le code pour modifier sa config du forum
  17.         break;
  18.         case 'images' :
  19.         // Le code pour modifier les images (avatar, smileys etc.)
  20.         break;
  21.         default :
  22.         // Le code par défaut
  23.         break;        
  24.        }
  25.         break;    
  26.      case 'voir':
  27.     echo '<div class="corps_forum">
  28.         <img src="./template/images/bullet_arrow.png"/> <a href="index.php" title="Index du forum"><strong>Forum de test</strong></a>
  29.         <img src="./template/images/bullet_arrow.png"/> Profil <img src="./template/images/bullet_arrow.png"/> Voir un profil';
  30.     break;
  31.    default :
  32.    echo PAGE_ERREUR;
  33.    break;
  34.   }
 

Merci d'avance  [:emanu]

 


hum, si je n'm'abuse, isset retourne un booléen, comment ça peut passer dans tes cases là ? [:pingouino]


Message édité par multani le 12-05-2007 à 11:47:43
n°1559356
Tristou
Keep calm and hack cookies
Posté le 12-05-2007 à 12:07:46  profilanswer
 

c'est sans doute ça qui fait merdouiller (mais ça avait "l'avantage" de masquer les erreurs qui apparaissent). Là c'est enlever par contre ça me met ça : Notice: Undefined index: cat (idem pour mode).

 

(j'édite le code ci-dessus)

Message cité 2 fois
Message édité par Tristou le 12-05-2007 à 12:08:53

---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1559369
totoffe38
Posté le 12-05-2007 à 12:47:56  profilanswer
 

Citation :


Y'a du rewriting que dans les parties accessibles par les bots, une fois connecté et pour les features des connectés, y'a pas.


C'est ce que j'avais percuté après coup. Pas la peine de rewriter quand ça sert à rien  :jap:

n°1559424
cinocks
Posté le 12-05-2007 à 17:18:14  profilanswer
 

Tristou a écrit :

c'est sans doute ça qui fait merdouiller (mais ça avait "l'avantage" de masquer les erreurs qui apparaissent). Là c'est enlever par contre ça me met ça : Notice: Undefined index: cat (idem pour mode).
 
(j'édite le code ci-dessus)


 
Bah tu fais un if avec ton isset. Si la variable est declarée, tu rentres dans le switch. Sinon c'est le else du if et puis voilà.

n°1559425
multani
Dépressionnisé
Posté le 12-05-2007 à 17:25:20  profilanswer
 

Tristou a écrit :

c'est sans doute ça qui fait merdouiller (mais ça avait "l'avantage" de masquer les erreurs qui apparaissent). Là c'est enlever par contre ça me met ça : Notice: Undefined index: cat (idem pour mode).
 
(j'édite le code ci-dessus)


Ben tu peux faire de plusieurs manières. Exemple rapido :

Code :
  1. if (isset($_GET['mode'])
  2.    $mode = $_GET['mode'];
  3. else
  4.    $mode = null;
  5.  
  6. switch ($mode) {
  7. [...]


 
Ça te permet d'appliquer éventuellement un filtrage sur les données envoyées par le client.

n°1559436
Tristou
Keep calm and hack cookies
Posté le 12-05-2007 à 18:06:26  profilanswer
 

En fait, j'ai fait comme ça :
 

Code :
  1. if(!empty($_GET['mode']))
  2.     {
  3.      switch ($_GET['mode']) // pour choisir le mode (ou editer ou voir le profil)
  4.      {
  5.        case 'edition' :      
  6.          echo '<div class="corps_forum">
  7.           <img src="./template/images/bullet_arrow.png"/> <a href="index.php" title="Index du forum"><strong>Forum de test</strong></a>
  8.           <img src="./template/images/bullet_arrow.png"/> Profil <img src="./template/images/bullet_arrow.png"/> Edition du profil';
  9.         if(!empty($_GET['cat'])){
  10.           switch ($_GET['cat'])
  11.           {
  12.            case 'compte' :
  13.              echo '<p>compte</p>';
  14.            break;
  15.            case 'perso' :
  16.              echo '<p>perso</p>';
  17.           break;
  18.           case 'config' :
  19.             echo '<p>config</p>';
  20.           break;
  21.           case 'images' :
  22.             echo '<p>image</p>';
  23.           break;
  24.           default :
  25.             echo '<p>code par defaut</p>';
  26.           break;            
  27.           }
  28.          }
  29.          else
  30.          {
  31.           echo '<p>code par defaut</p>';
  32.          }
  33.           break;      
  34.         case 'voir':
  35.          echo '<div class="corps_forum">
  36.           <img src="./template/images/bullet_arrow.png"/> <a href="index.php" title="Index du forum"><strong>Forum de test</strong></a>
  37.           <img src="./template/images/bullet_arrow.png"/> Profil <img src="./template/images/bullet_arrow.png"/> Voir un profil';
  38.         break;
  39.        default :
  40.          echo PAGE_ERREUR; // autre cas pour 'mode'
  41.        break;
  42.       }
  43.    }
  44. else {
  45. echo PAGE_ERREUR;
  46. }


 
Le !empty permet de vérifier ce qui est rempli (si ça l'est, déjà et ce qui va être affiché selon ce qui est rentré :jap:)


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1561720
fabien
Vive la super 5 !
Posté le 17-05-2007 à 19:13:24  profilanswer
 

dans cette page:
 
http://forum.hardware.fr/forum1f.p [...] w=0&nojs=0
 
en haut à droite, a coté de date dernier message, ya trois petit tiret, ca sert à quoi joce? [:dawa]


---------------
Découvre le HFRcoin ✈ - smilies
n°1561723
skylight
Made in France.
Posté le 17-05-2007 à 19:17:07  profilanswer
 

ben cliques dessus... tu verra :o

n°1561725
fabien
Vive la super 5 !
Posté le 17-05-2007 à 19:19:19  profilanswer
 

skylight a écrit :

ben cliques dessus... tu verra :o


ca fait rien chez moi [:spamafote]


---------------
Découvre le HFRcoin ✈ - smilies
n°1561728
skylight
Made in France.
Posté le 17-05-2007 à 19:20:03  profilanswer
 

ca coche toutes les cases à cocher de la colonne.


Message édité par skylight le 17-05-2007 à 19:20:17
n°1561730
fabien
Vive la super 5 !
Posté le 17-05-2007 à 19:22:45  profilanswer
 

ha ok, j'avais pas de drapeau quand j'ai cliqué :D


---------------
Découvre le HFRcoin ✈ - smilies
n°1562275
Tristou
Keep calm and hack cookies
Posté le 19-05-2007 à 01:33:47  profilanswer
 

[:emanu]  
 
Je ne comprends pas trop où ça merdoie [:pingouino] :
dans le code ci-dessous, pour uploader un smiley, je propose un formulaire mais auparavant, je vérifie s'il n'y a pas déjà un smiley d'uploadé dans la BDD (pour ne pas changer de smiley et n'en uploader qu'un seul). Donc requête, si c'est égal à NULL (donc le champ est vide), on propose le formulaire sinon messages d'erreur. Hors, que le champ soit vide ou rempli j'ai un message d'erreur [:gratgrat]
 

Code :
  1. $requete_smiley = mysql_query('SELECT membre_smiley FROM forum_membres') or die (mysql_error());
  2.           $affichage = mysql_fetch_assoc($requete_smiley);
  3.           
  4.           if($affichage['membre_smiley'] == NULL)
  5.             {
  6.              echo '<p>
  7.                  <form method="post" action="confirmation.php?valid=upload">
  8.                  <table id="profil">
  9.                   <thead>
  10.                    <tr>
  11.                      <th colspan="3">Uploader un smiley</th>
  12.                      </tr>
  13.                  </thead>
  14.                  <tbody>
  15.                   <tr>
  16.                    <td class="intitule"><label for="upload_smiley">&Agrave; partir d\'un fichier :</label></td>
  17.                    <td class="champ_profil"><input name="upload_smiley" type ="file" id="upload_smiley" class="fichier"/></td>
  18.                    <td class="indication"><img src="./template/images/help.png" title="L\'astuce"/> <em>Votre smiley doit faire 20 x 20 pixels et peser 10 Ko au maximum</em></td>
  19.                   </tr>
  20.                  </tbody>                
  21.                 </table>
  22.                 <input type="submit" value="Valider" class="validation"/></p>';          
  23.             }
  24.          else
  25.             {
  26.             echo INTERDIT_UPLOAD_SMILEY;
  27.             
  28.             }


---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
n°1562284
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 19-05-2007 à 02:37:20  profilanswer
 

mmm... test tout bêtement un if (empty($affichage['membre_smiley']))
En mysql, vide ou NULL, ce n'est pas la même chose, après faut voir comment il intéragit avec PHP, mais dans le doute, le empty résoudra ton soucis.

n°1562302
Tristou
Keep calm and hack cookies
Posté le 19-05-2007 à 09:35:25  profilanswer
 

Ouaip, c'est ce que j'ai fait et effectivement, en allant ajouter dans la BDD le nom du fichier (le script d'upload n'est pas fini), il m'affiche bien le message d'erreur car le champ est rempli. Seulement quand je supprimes l'entrée directement dans la base, le smiley n'aparait plus dans le profil (normal) mais j'ai toujours le message d'erreur me disant que j'ai déjà un smiley [:gratgrat]


Message édité par Tristou le 19-05-2007 à 09:37:17

---------------
"About your cat Mr. Schrödinger : I have good news and bad news"
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  439  440  441  ..  486  487  488  489  490  491

Aller à :
Ajouter une réponse
 

Sujets relatifs
question avec les forums phpbb2[php] trouver la premier place ou inserer un enregistrement (résolu)
Forums phpBBQui connait l'algo du Passticket et sa mise en place en VB ?
[Merise] Mise en place d'un MCDFocus mal placé....
[Blabla/Prog] Les développeurs foromeurs sont-ils des feignasses?Mise en place d'un formulaire CGI
forums création de site internetJava - Mise en place d'une api (Servlet)
Plus de sujets relatifs à : les développeurs de forums, les 3/4 des forums sont down /o\


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)