[RESOLU] Instabilité sur Online avec "if (strstr..."

Instabilité sur Online avec "if (strstr..." [RESOLU] - PHP - Programmation

Marsh Posté le 11-12-2006 à 11:10:08    

Coucou à tous,
Me voilà avec un problème bizarre !
1er point : je suis chez Online, c'est une grosse contrainte, mais j'arrive pour l'instant à contourner tous les problèmes (rewriting, htaccess...)
 
Je viens de mettre en place un code sur mon index.php pour qu'il change le contenu en fonction du nom de domaine utilisé.  
Ici j'ai :
* hallucine.fr --> mon compte principal : texte normal en français
* inflatablescreen.eu --> un alias qui pointe à la racine avec le texte en anglais
* ecrangonflable.com --> un autre alias qui pointe à la racine et qui affiche un autre texte.
 
J'ai utilisé le code suivant :

Code :
  1. if (strstr($SERVER_NAME, 'hallucine.fr')) {
  2.      define('HTTP_SERVER', 'http://www.hallucine.fr');
  3. $langue = 'fr';
  4. $ecran = '0';
  5.   }  elseif (strstr($SERVER_NAME, 'inflatablescreen.eu')) {
  6.      define('HTTP_SERVER', 'http://www.inflatablescreen.eu');
  7. $langue = 'en';
  8. $ecran = '0';
  9.    }  elseif (strstr($SERVER_NAME, 'ecrangonflable.com')) {
  10.      define('HTTP_SERVER', 'http://www.ecrangonflable.com');
  11. $langue = 'fr';
  12. $ecran = '1';
  13.    }


 
Résultats :
* Pour Halluciné, aucun problème, tout se passe bien !
* Pour les 2 autres, c'est très instable, je dois réactualisé la page plusieurs fois avant que la bonne page s'affiche, le reste du temps il me mets URL Introuvable ou Proxy Error... enfin ce qui est bien c'est que les messages varient... pas de monotonie :p ! Et dès que je clique sur un lien de la page, le même problème se pose, je dois à nouveau actualiser plusieurs fois avant que ma page n'apparaisse ! Je ne suis pas sûr que mes visiteurs aient la même patience ! ;)
 
Mes questions sont donc les suivantes :
* Est-ce un pb d'Online, mais alors pkoi ???
* Est-ce mon code qui n'est pas adapté ? et si c'est le cas avez-vous des idées sur le code à utiliser ?
* Est-ce mon PC qui déconne ??
 
Voili voili... J'ai essayé d'exprimer mon pb clairement, en espérant que ça vous inspire !
Vous pouvez tester les URL www.inflatablescreen.eu ou www.ecrangonflable.com
Merci pour votre aide.
 
++
 
Pierrick


Message édité par Pierrick81 le 14-12-2006 à 17:22:40
Reply

Marsh Posté le 11-12-2006 à 11:10:08   

Reply

Marsh Posté le 11-12-2006 à 11:58:20    

quand on lit la doc de php, ils conseillent d'utiliser strpos($str) !== FALSE pour ce que tu veux faire

Reply

Marsh Posté le 11-12-2006 à 14:44:58    

Merci rufo.
Je viens de remplacer mon code par le suivant :  

Code :
  1. if (strpos($SERVER_NAME, 'hallucine.fr')!== false) {
  2.      define('HTTP_SERVER', 'http://www.hallucine.fr');
  3. $langue = 'fr';
  4. $ecran = '0';
  5.   }  elseif (strpos($SERVER_NAME, 'inflatablescreen.eu')!== false) {
  6.      define('HTTP_SERVER', 'http://www.inflatablescreen.eu');
  7. $langue = 'en';
  8. $ecran = '0';
  9.    }  elseif (strpos($SERVER_NAME, 'ecrangonflable.com')!== false) {
  10.      define('HTTP_SERVER', 'http://www.ecrangonflable.com');
  11. $langue = 'fr';
  12. $ecran = '1';
  13.    }


 
Effectivement le résultat semble meilleur, même s'il ce n'est vraiment pas top... je dois encore réactualiser les pages plusieurs fois (moins qu'avant, mais toujours !), avant que les pages ne s'affichent !
 
Y a-t-il d'autres solutions pour faire ce que je veux faire ? ou d'autres aménagements de mon code à effectuer ?
 
L'autre question que je me pose est sur l'utilisation de l'url rewriting une fois que je suis sur un autre nom de domaine... je me demande si ça ne pose pas un problème sur les liens...
 
Merci d'avance.
 
Pierrick

Reply

Marsh Posté le 11-12-2006 à 14:48:52    

y'aurait pas un pb de case sensitive?

Reply

Marsh Posté le 11-12-2006 à 14:57:55    

euh je ne suis pas très fort en anglais :p, mais je dirai que tout est en minuscule, où le problème se situerait-il ?
Peux-tu me donner plus d'infos rufo stp ?
Merci

Reply

Marsh Posté le 11-12-2006 à 18:46:49    

sensible à la casse. Mais bon, si tout est en minuscule, ça ne peut venir de là...

Reply

Marsh Posté le 11-12-2006 à 22:07:59    

C'est crade à mort de créer plusieurs sites différents comme ça ! il vaut mieux un hébergement dédié pour chacun d'entre eux, donc un script pour chaque site.
En plus, s'il existe des urls différentes pour des pages identiques, tu risque le blacklistage de ton site par google pour duplicate content.

Reply

Marsh Posté le 12-12-2006 à 08:52:43    

En fait ce n'est pas plusieurs sites :
Un est en français, l'autre en anglais et l'autre ne correspond qu'à une seule page avec des liens vers le site en français !
Normalement je n'ai aucune page identique avec des URL différentes...
Ce que je voudrai savoir c'est si qq1 a une idée du "pourquoi" de l'instabilité. Vous pouvez essayer de cliquer sur www.ecrangonflable.com, cliquez ensuite plusieurs fois sur Actualiser... pkoi la page s'affiche, ne s'affiche plus, se réaffiche, etc... ?
Merci à vous.
++

Reply

Marsh Posté le 12-12-2006 à 09:04:06    

ton hébergeur te rajouterait pas automatiquement du code dans tes pages?

Reply

Marsh Posté le 12-12-2006 à 09:13:49    

non pas que je sache, Si je regarde dans le code de la page (Ctrl+U) sur Firefox, le code est identique à celui tapé (code PHP interprété of course !)
Mais c'est qd même incompréhensible qu'une fois de temps en temps il arrive à lire la page...

Reply

Marsh Posté le 12-12-2006 à 09:13:49   

Reply

Marsh Posté le 12-12-2006 à 09:30:31    

t'utilises des redirections en boucles? que ce soit en JS, PHP ou HTML?

Reply

Marsh Posté le 12-12-2006 à 09:43:43    

c'est quoi que tu appelles des redirections en boucles ?
J'utilise l'URL Rewriting, mais pas sur les pages index.php. et sinon pas de redirection à ce que je sache.

Reply

Marsh Posté le 12-12-2006 à 09:54:56    

Une adresse URL = un site
 
Ou alors je n'ais pas compris le web lol

Message cité 1 fois
Message édité par vanadium le 12-12-2006 à 09:55:12
Reply

Marsh Posté le 12-12-2006 à 10:16:00    

bah j'ai bien 1 URL = 1 site non ? peut-être y a t il qqch que je ne comprends pas ?
www.hallucine.fr --> mon site en français
www.inflatablescreen.eu --> même site mais en anglais
www.ecrangonflable.com --> une page unique avec des liens vers le site en français
Peux-tu me donner plus de détails stp vanadium ?
Merci

Reply

Marsh Posté le 12-12-2006 à 10:54:23    

tu pourrais nous monter un peu plus le code de ton script? Parce que j'ai l'impression que c'est plus loin que ça doit merder...

Reply

Marsh Posté le 12-12-2006 à 10:58:51    

vanadium a écrit :

Une adresse URL = un site
 
Ou alors je n'ais pas compris le web lol


non.
Une url, c'est ce qui permet d'identifier un document sur le web.
Il n'a jamais été dit nulle part qu'un document ne pouvait pas être identifié par plusieurs url.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-12-2006 à 11:04:52    

Voici le code complet de ma page index.php :

Code :
  1. <?php
  2. if (strpos($SERVER_NAME, 'hallucine.fr')!== false) {
  3.      define('HTTP_SERVER', 'http://www.hallucine.fr');
  4. $langue = 'fr';
  5. $ecran = '0';
  6.   }  elseif (strpos($SERVER_NAME, 'inflatablescreen.eu')!== false) {
  7.      define('HTTP_SERVER', 'http://www.inflatablescreen.eu');
  8. $langue = 'en';
  9. $ecran = '0';
  10.    }  elseif (strpos($SERVER_NAME, 'ecrangonflable.com')!== false) {
  11.      define('HTTP_SERVER', 'http://www.ecrangonflable.com');
  12. $langue = 'fr';
  13. $ecran = '1';
  14.    }
  15. include "chemin.php";
  16. include "$langue/index-contenu.php";
  17. include "$langue/photos_accueil/photos-contenu.php";?>
  18. <HTML>
  19. <HEAD>
  20. <TITLE><?php echo $titre_page;?></TITLE>
  21. <? include 'haut_de_page.php'; ?>
  22. <table>
  23.    <tr>
  24.       <td width="60" height="60" valign="top"><img src="images/titre_page_puce.gif" width="54" height="59"></td>
  25.       <td width="746" height="60">
  26.           <div align="left"><font color="3F649F" size="5" face="Verdana, Arial, Helvetica, sans-serif"><strong>
  27.             <?php echo $sstitre;?>
  28.           </strong></font></div>
  29.       </td>
  30.    </tr>
  31. </table>
  32. <br>
  33. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  34.    <tr>
  35.       <td width="23%"  valign="top">
  36. <div align="center">
  37. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-1-'.$langue.'.html" target="_blank">';
  38. echo '<img src="photos_accueil/images/1P.jpg" alt="'.$alternatif[1].'" width="130" height="98" border="1"></a>';
  39. ?>
  40. <br><br>
  41. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-3-'.$langue.'.html" target="_blank">';
  42. echo '<img src="photos_accueil/images/3P.jpg" alt="'.$alternatif[3].'" width="130" height="98" border="1"></a>';
  43. ?>
  44. <br><br>
  45. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-5-'.$langue.'.html" target="_blank">';
  46. echo '<img src="photos_accueil/images/5P.jpg" alt="'.$alternatif[5].'" width="100" height="150" border="1"></a>';
  47. ?>
  48. <br><br>
  49. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-7-'.$langue.'.html" target="_blank">';
  50. echo '<img src="photos_accueil/images/7P.jpg" alt="'.$alternatif[7].'" width="130" height="98" border="1"></a>';
  51. ?>
  52. </div>
  53.       </td>
  54.       <td width="55%" valign="top">
  55.           <?php echo $contenu[$ecran];?>
  56.       </td>
  57.       <td width="22%"  valign="top">
  58. <div align="center">
  59. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-2-'.$langue.'.html" target="_blank">';
  60. echo '<img src="photos_accueil/images/2P.jpg" alt="'.$alternatif[2].'" width="130" height="98" border="1"></a>';
  61. ?>
  62. <br><br>
  63. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-4-'.$langue.'.html" target="_blank">';
  64. echo '<img src="photos_accueil/images/4P.jpg" alt="'.$alternatif[4].'" width="130" height="98" border="1"></a>';
  65. ?>
  66. <br><br>
  67. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-6-'.$langue.'.html" target="_blank">';
  68. echo '<img src="photos_accueil/images/6P.jpg" alt="'.$alternatif[6].'" width="130" height="98" border="1"></a>';
  69. ?>
  70. <br><br>
  71. <?php echo'<a href="'.$chemin[$langue].'photos_accueil/photos-8-'.$langue.'.html" target="_blank">';
  72. echo '<img src="photos_accueil/images/8P.jpg" alt="'.$alternatif[8].'" width="130" height="98" border="1"></a>';
  73. ?><br>
  74. <font size="1px">
  75.      <i>&nbsp;<?php echo $clique;?></i>
  76. </font>
  77. </div>
  78.       </td>
  79.    </tr>
  80. </table>
  81. <? include 'bas_de_page.php'; ?>
  82. </BODY>
  83. </HTML>


 
Si tu veux le code de mon haut de page et de mon bas de page  n'hésite pas à me demander.
Merci en tout cas.

Reply

Marsh Posté le 12-12-2006 à 11:08:04    

j'imagine que index-contenu.php contient les traductions, mais que contient chemin.php?

Reply

Marsh Posté le 12-12-2006 à 11:22:51    

Chemin contient le code suivant :

Code :
  1. <?php
  2. $chemin[fr]='http://www.hallucine.fr/';
  3. $chemin[en]='http://www.inflatablescreen.eu/';
  4. ?>


 
Pour ce qui est de Index-contenu effectivement, il ne contient que du texte

Code :
  1. <?php
  2. $titre_page='blabla';
  3. ...
  4. ?>

Reply

Marsh Posté le 12-12-2006 à 11:40:32    

ben tu t'en sers où de ta constante HTTP_SERVER:??:

Reply

Marsh Posté le 12-12-2006 à 11:43:51    

ah sur ce point je ne sais pas trop, on m'a fourni ce code en me disant de l'utiliser tel quel, mais effectivement peut-être que c'est inutile. J'avoue avoir recopier cette ligne bêtement en me disant que si elle était là ce n'était pas pour rien !!
Tu penses qu'il faut le retirer ??
 
Pour répondre à ta question, sans faire celui qui fait tout bêtement : je ne l'utilise pas cette constante, elle est donc inutile, mais peut-être que le gars qui m'a fourni le code la réutilise à un autre endroit et alors là je n'ai aucune idée de où !
 
Je viens de retirer la ligne define (HTTP_SERVER, ...) Mais ça ne change rien, le problème reste identique.


Message édité par Pierrick81 le 12-12-2006 à 11:58:32
Reply

Marsh Posté le 12-12-2006 à 12:15:44    

STTOOPP !  
Je viens d'effectuer un test que j'aurai du effectuer depuis longtemps !
J'ai supprimer mon code qui me porte malheur ;)
c'est à dire que le code suivant n'est plus sur ma page :

Code :
  1. if (strpos($SERVER_NAME, 'hallucine.fr')!== false) {
  2. $langue = 'fr';
  3. $ecran = '0';
  4.   }  elseif (strpos($SERVER_NAME, 'inflatablescreen.eu')!== false) {
  5. $langue = 'en';
  6. $ecran = '0';
  7.    } // elseif (strpos($SERVER_NAME, 'ecrangonflable.com')!== false) {
  8. //$langue = 'fr';
  9. //$ecran = '1';   }
  10.    elseif (strpos($SERVER_NAME, 'maisonrondin.com')!== false) {
  11. $langue = 'fr';
  12. $ecran = '0';
  13.    } elseif (strpos($SERVER_NAME, 'cinemapleinair.com')!== false) {
  14. $langue = 'fr';
  15. $ecran = '2';
  16.    }  elseif (strpos($SERVER_NAME, 'projectioncinema.com')!== false) {
  17. $langue = 'fr';
  18. $ecran = '3';
  19.    }


Désormais ça doit donc être la redirection de l'alias web effectuée par Online qui doit être effective ! Et pourtant... le problème se poursuit !
Une partie du mystère est éclaircie... ça ne semble pas venir de mon code, même si qq1 pourrait me dire pour la l'utilité de la ligne "define..." que je me couche moins bête !
Mais alors que dois-je faire, je crois que je vais changer d'hébergeur, mais j'aimerai bien savoir auparavant si une erreur de ma part est à l'origine de ce sousi !
Merci à vous...

Reply

Marsh Posté le 12-12-2006 à 12:51:02    

Moi, j'obtiens ça comme erreur : The requested URL /www.ecrangonflable.com/index.php was not found on this server.
 
J'ai l'impression qu'il y a un slash devant www qui ne devrait pas y être. T'es sûr qu'il n'y a pas de redirection qui traîne qq part?

Reply

Marsh Posté le 12-12-2006 à 12:52:49    

C'est bon, je crois avoir trouvé. Faut mettre :

Code :
  1. <?php
  2. $chemin['fr']='http://www.hallucine.fr/';
  3. $chemin['en']='http://www.inflatablescreen.eu/';
  4. ?>


 
t'as oublié les ' devant et après le nom des langues...

Reply

Marsh Posté le 12-12-2006 à 14:18:22    

Merci beaucoup pour ton aide rufo, malheureusement ce n'est toujours pas ça (je viens d'essayer) ! Déjà avant que j'utilise un tableau, en utilisant $chemin='http://www.hallucine.fr/'; le problème se posait.
 
Effectivement le problème que tu soulèves du slash devant le www peut être la cause du problème mais à ce moment là je ne vois pas quoi faire.
J'ai écrit à Online pour leur demander leur avis sur la question. J'attends
 
Y-a-t-il qq1 qui possède plusieurs noms de domaines chez Online et qui pointe vers la racine d'un seul et même hébergement ???
 
On est sur la bonne piste avec le slash, je le sens ! Mais par contre, rufo, tu me confirmes que si tu actualises plusieurs fois ta page, la bonne page apparait, non ?
 
Pour info voilà ma page d'administration des alias web sur Online :
http://www.hallucine.fr/aliasweb.jpg
 
Les alias avvc.com et projectioncinema.com fonctionnent sans problème.
L'alias maisonrondin.com n'est pas encore activé.


Message édité par Pierrick81 le 12-12-2006 à 14:23:42
Reply

Marsh Posté le 12-12-2006 à 14:22:35    

non, ça n'apparaît pas.

Reply

Marsh Posté le 12-12-2006 à 14:25:05    

ni pour ecrangonflable.com, ni pour inflatablescreen.eu ? pq moi à force de faire F5 ou Ctrl+F5, la page apparait ! Il m'arrive de devoir le faire 10 fois avant que la page n'apparaisse !

Reply

Marsh Posté le 12-12-2006 à 14:36:21    

ben tu vois que t'as bien des redirections!!! faut enlever le / quand y'a rien après je pense...

Reply

Marsh Posté le 12-12-2006 à 14:43:04    

oui mais je ne peux pas :) Online oblige qu'un alias pointe vers un dossier !
C'est tout caca Online !
Si j'enlève le "/" il me met une erreur lorsque je clique sur "Envoyer"

Reply

Marsh Posté le 14-12-2006 à 17:07:27    

Petit retour sur ce problème qui a passionné les foules !
Il s'agissait bien d'un problème interne à Online, et aujourd'hui tout marche très bien sans instabilité aucune !
Petite anecdote : Ayant marre d'Online (avant que cela marche :), j'ai changé d'hébergeur et je suis passé chez Celeonet. Désormais le code ne marche plus du tout car étonnement, la variable SERVER_NAME est vide ! et je ne sais pas trop quoi utiliser pour tester le contenu de l'url dans barre d'adresse ! Enfin bref tout rentre dans l'ordre petit à petit donc ce problème devrait être corrigé bientôt !!
 
Merci à tous en tout cas et particulièrement à rufo pour son aide...

Reply

Marsh Posté le 14-12-2006 à 17:12:20    

Je te recommande plutot d'utiliser la variable $_SERVER.
Syntaxe correcte pour ce dont tu as besoin :  

Code :
  1. echo $_SERVER['SERVER_NAME'];


 
EDIT : peut etre que la version de php chez Online était assez ancienne, c'est pour ça que $SERVER_NAME devait marcher.
EDIT2 : je pencherais plutot pour les register_globals à ON chez Online, voila pourquoi $SERVER_NAME devait etre initialisée. Je te recommande d'utiliser les register_globals à OFF pour des raisons de sécurité.
 
Plus d'infos sur $_SERVER : http://www.aidejavascript.com/article113.html


Message édité par vanadium le 14-12-2006 à 17:16:11
Reply

Marsh Posté le 14-12-2006 à 17:22:12    

Super vanadium, effectivement... ou sinon il fallait que je demande que REGISTER GLOBAL soient mis à ON ce qui était le cas chez Online !
Merci de de ton aide !
Je marque un beau [RESOLU] avec beaucoup de bonheur :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed