Cookie ne se crée pas [RESOLU grâce à NazzTazz. MERCI !]

Cookie ne se crée pas [RESOLU grâce à NazzTazz. MERCI !] - PHP - Programmation

Marsh Posté le 19-02-2008 à 00:41:46    

Bonjour,  
 
le site que je suis en train de faire est un site multilingue (15 langues qui représentent 102 pays).
Mon script fonctionne très bien pour l'essentiel mais je n'arrive pas à créer de cookie.  :( Ce n'est pas très indispensable, mais j'aimerais comprendre mon erreur, quand même.  
 
Quand j'isole le début du script cela fonctionne, le cookie se crée ....

 
code 1
 

Code :
  1. <?php
  2. if (isset($_GET["lang"])) $lang = $_GET["lang"];
  3. if ($_GET["lang"]) {
  4. $expire = 365*24*3600;// durée du cookie
  5. setcookie('idioma',$_GET["lang"],(time() + $expire));
  6. echo "enregistrement du cookie : ";
  7. echo $_COOKIE['idioma'];
  8. echo "/  ";
  9. echo $_GET["lang"];
  10. }
  11. ?>
  12. <center>
  13. <?php echo  "on affiche la langue du cookie : " ?>
  14. <?php echo  $_COOKIE['idioma']; ?><br />
  15. <a href="?lang=fr"><img src="images/Flags/FrFlag.png " alt="Français" title="Français" /></a>
  16.         <a href="?lang=en"><img src="images/Flags/EnFlag.gif " alt="English" title="English" /></a>
  17.         <a href="?lang=de"><img src="images/Flags/DeFlag.gif " alt="Deutsch" title="Deutsch" /></a>
  18.         <a href="?lang=es"><img src="images/Flags/EsFlag.png " alt="Español" title="Español" /></a>
  19.         <a href="?lang=it"><img src="images/Flags/ItFlag.png " alt="Italiano" title="Italiano" /></a>
  20.         <a href="?lang=pt"><img src="images/Flags/PtFlag.png " alt="Português" title="Português" /></a>
  21.         <a href="?lang=cs"><img src="images/Flags/CsFlag.gif " alt="Čech" title="Čech" /></a>
  22.         <a href="?lang=da"><img src="images/Flags/DaFlag.gif " alt="Dansk" title="Dansk" /></a>
  23.         <a href="?lang=no"><img src="images/Flags/NoFlag.gif " alt="Norsk" title="Norsk" /></a>
  24.         <a href="?lang=nl"><img src="images/Flags/NlFlag.gif " alt="Nederlands" title="Nederlands" /></a>
  25.        <a href="?lang=ru"><img src="images/Flags/RuFlag.gif " alt="Русский" title="Русский" /></a>
  26.         <a href="?lang=sv"><img src="images/Flags/SvFlag.gif " alt="Svenska" title="Svenska" /></a>
  27.         <a href="?lang=zh"><img src="images/Flags/ZhFlag.gif " alt="中文" title="中文" /></a>
  28.         <a href="?lang=ja"><img src="images/Flags/JaFlag.gif " alt="日本語" title="日本語" /></a>
  29.         <a href="?lang=ar"><img src="images/Flags/ArFlag.gif " alt="العربية" title="العربية" /></a>
  30. </center>



 MAIS avec la suite, cela se gâte  :
 
P.S : j'ai mis tout le script pour vous donner une idée ( même s'il y a plein de choses pas très utiles) , mais le nerf de la guerre est en rouge. Si quelqu'un a une idée ....

 
code 2

Code :
  1. <?php
  2. header('Content-type: text/html; charset=utf-8');
  3. require_once('connexion_Base_Donnees.php'); ?>
  4. //Affichage des caractères spéciaux aux langues universelles, nécessaire seulement après la connexion
  5. mysql_query("SET NAMES 'utf8'" );
  6. /**  GESTION DES LANGUES DANS LA NAVIGATION DU SITE :
  7. Récupération dans l'URL de la langue choisie par l'utilisateur, sinon de celle de son navigateur ou enfin de la (les) langue(s) par défaut */
  8. //MODULE LANGUE
  9. //ON DEFINIT LA LANGUE DU NAVIGATEUR QUI VISITE LE SITE//
  10. if(isset($_GET["navigator"])) $navigator = $_GET["navigator"];
  11. $langues=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  12. $navigator=$langues[0];
  13. if ( $navigator == "$navigator" ){
  14. $navigator = "$navigator";
  15. echo (" le navigateur est : $navigator / " );
  16. }
  17. /* Affiche la langue du navigateur si la langue  est repésentée sur le site */
  18. mysql_select_db($database_BaseAlpha, $BaseAlpha);
  19. $query_StatutLangue = "SELECT Statut, Lang, Lang_Derivee FROM Admin_ModuleLang INNER JOIN Admin_Modules ON Admin_ModuleLang.Statut = Admin_Modules.Module_Lang WHERE Admin_ModuleLang.Statut='1' AND Admin_ModuleLang.Lang LIKE '$navigator' ";
  20. $StatutLangue = mysql_query($query_StatutLangue, $BaseAlpha) or die(mysql_error());
  21. $row_StatutLangue = mysql_fetch_assoc($StatutLangue);
  22. $totalRows_StatutLangue = mysql_num_rows($StatutLangue);
  23. /* Affiche les langues dérivées si la langue d'origine est proposée sur le site */
  24. $var_LangDerivee = ",$navigator,";
  25. mysql_select_db($database_BaseAlpha, $BaseAlpha);
  26. $query_StatutLangueDerivee = "SELECT Statut, Lang, Lang_Derivee  FROM Admin_ModuleLang INNER JOIN Admin_Modules ON Admin_ModuleLang.Statut = Admin_Modules.Module_Lang WHERE Admin_ModuleLang.Statut='1' AND Admin_ModuleLang.Lang <> '$navigator' AND  Admin_ModuleLang.Lang_Derivee LIKE '%$var_LangDerivee%' ";
  27. $StatutLangueDerivee = mysql_query($query_StatutLangueDerivee, $BaseAlpha) or die(mysql_error());
  28. $row_StatutLangueDerivee = mysql_fetch_assoc($StatutLangueDerivee);
  29. $totalRows_StatutLangueDerivee = mysql_num_rows($StatutLangueDerivee);
  30. /** ON DETERMINE LA LANGUE PAR DÉFAUT DU SITE et une langue par defaut pour la navigation si la langue du navigateur est différente de la langue defaut et n'est pas l'anglais */
  31. $langDefaut = $row_Tble_Pref_Site['Lang_Defaut'];
  32. $langDefautEn = "en";
  33. //ADMINISTRATION DES MODULES : Le Statut du module langue doit être ON et le Statut de la langue anglaise doit aussi être ON pour que l'anglais soit représenté sur le site  //
  34. mysql_select_db($database_BaseAlpha, $BaseAlpha);
  35. $query_StatutAnglais = "SELECT Admin_Modules.Module_Lang, Admin_ModuleLang.Statut, Admin_ModuleLang.Lang FROM Admin_ModuleLang INNER JOIN  Admin_Modules  ON Admin_Modules.Module_Lang = Admin_ModuleLang.Statut  WHERE Admin_Modules.Module_Lang ='1' AND Admin_ModuleLang.Lang = 'en' AND Admin_ModuleLang.Statut <>'0'";
  36. $StatutAnglais = mysql_query($query_StatutAnglais, $BaseAlpha) or die(mysql_error());
  37. $row_StatutAnglais = mysql_fetch_assoc($StatutAnglais);
  38. $totalRows_StatutAnglais = mysql_num_rows($StatutAnglais);
  39. //definition de la variable $Pays pour l'affichage des drapeaux des pays représentés dans le module langue
  40. $Pays = "";
  41. /** ON RECUPÈRE LA VALEUR DE LA LANGUE DANS L'URL : ?lang= */
  42. if (isset ($_GET["lang"])) $lang = $_GET["lang"];
  43. if ($_GET["lang"]) {
  44. /** ENREGISTREMENT DE LA LANGUE CHOISIE SUR LE SITE DANS UN COOKIE  */
  45. [#d4002a]$expire = 365*24*3600;//définition de la valeur du cookie (1 an)
  46. setcookie('idioma',$_GET["lang"],(time() + $expire));//PROBLEME : LE COOKIE NE SE CRÉE PAS
  47. echo " /enregistrement du cookie : ? ";
  48. echo $_COOKIE['idioma'];// le cookie ne s'affiche pas
  49. echo " =  ";
  50. echo $_GET["lang"];// Poutant ici sa valeur s'affiche !?  
  51. echo " //  ";
  52. if ($navigator==$_GET["lang"]) {// FONCTIONNE
  53. $lang =$_GET["lang"] ;
  54. $Pays = $_GET["lang"];
  55. echo ("La langue $lang est sélectionnée et enregistrée dans un cookie cas 1" );
  56. } elseif (( $navigator!=$_GET["lang"] && $row_StatutLangueDerivee['Lang']==$_GET["lang"]) || ($navigator!=$_GET["lang"] && $row_StatutLangue['Lang']==$_GET["lang"])) {// FONCTIONNE
  57. $lang =$_GET["lang"] ;
  58. $Pays ="$navigator";
  59. echo ("La langue $lang est sélectionnée et enregistrée dans un cookie cas 2" );
  60. } elseif (( $navigator!=$_GET["lang"] && $row_StatutLangueDerivee['Lang']!=$_GET["lang"]) || ($navigator!=$_GET["lang"] && $row_StatutLangue['Lang']!=$_GET["lang"])) {// FONCTIONNE
  61. $lang =$_GET["lang"];
  62. $Pays =$_GET["lang"];
  63. echo ("La langue $lang est sélectionnée et enregistrée dans un cookie cas 3" );
  64. }
  65. } else {
  66. /** AUTRE SI LA LANGUE PRÉFÉRÉE A DÉJÀ ÉTÉ CHOISIE ET ENREGISTRÉE, ON LA RÉCUPÈRE DANS LE COOKIE */
  67. if ($_COOKIE['idioma']==true) {// NE FONCTIONNE PAS LE COOKIE N'A PAS ÉTÉ CRÉE PRECEDEMMENT, ON PASSE DIRECTEMENT AU CAS SUIVANT
  68. $lang = $_COOKIE['idioma'];
  69. $Pays = $_COOKIE['idioma'] ;
  70. echo " la langue dans le cookie est ";
  71. echo $_COOKIE['idioma'];
  72. }
  73. else {
  74. /** SI LA LANGUE FAVORITE N'A PAS ENCORE ÉTÉ CHOISIE ON APPELLE LA LANGUE PRÉFÉRÉE DU NAVIGATEUR DE L'UTILISATEUR */
  75. $langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  76. $navlang=$langs[0];
  77. if
  78. /** SI LA LANGUE DU NAVIGATEUR CORRESOND AUX LANGUES ACTIVES PROPOSÉES SUR LE SITE */
  79. ($navlang == $navigator && $row_StatutLangue['Lang'] == "$navigator" ) {// FONCTIONNE
  80. $lang= $row_StatutLangue['Lang'];
  81. $Pays= $row_StatutLangue['Lang'];
  82. echo ("la langue du navigateur est  $lang " );
  83. elseif
  84. /** SI LA LANGUE DU NAVIGATEUR CORRESPOND AUX LANGUES DÉRIVÉES DE CELLES PROPOSÉES SUR LE SITE */
  85. (($navlang == $navigator) && ($totalRows_StatutLangueDerivee> 0)) {// FONCTIONNE
  86. $lang = $row_StatutLangueDerivee['Lang'];
  87. $Pays = "$navigator";
  88. echo ("la langue dérivée du navigateur $navlang est $lang donc on affiche $lang" );
  89. elseif
  90. /** AFFICHAGE PAR DEFFAUT DE LA LANGUE EN ANGLAIS SI LA LANGUE DU NAVIGATEUR UTILISÉ N'EST PAS REPRÉSENTÉE SUR LE SITE */
  91. ($navlang != "$langDefaut" && $langDefaut !="$langDefautEn" && $langDefautEn =="en" && $row_StatutAnglais['Lang']=="en"  ) {// FONCTIONNE
  92. $lang = "en";
  93. $Pays = "en";
  94. echo ("la langue du navigateur: $navlang, n'est pas représentée  sur le site. Affichage par defaut en anglais car l'anglais est proposé sur le site" );
  95. }
  96. else { // FONCTIONNE
  97. /** SI AUCUNE LANGUE NE CORRESPOND, UTILISER LA LANGAGUE PAR DÉFAUT SI ELLE EST DIFFÉRENTE DE L'ANGLAIS */
  98. $lang = "$langDefaut";
  99. $Pays = "$langDefaut";
  100. echo (" la langue du navigateur: $navlang, n'est pas représentée  sur le site. La langue par defaut, dans laquelle le site a été créé, est $langDefaut " );
  101. }
  102. }
  103. }
  104. /** FIN DE LA GESTION DES LANGUES */
  105. ?>
  106. <center>
  107. <a href="?lang=fr"><img src="images/Flags/FrFlag.png " alt="Français" title="Français" /></a>
  108.         <a href="?lang=en"><img src="images/Flags/EnFlag.gif " alt="English" title="English" /></a>
  109.         <a href="?lang=de"><img src="images/Flags/DeFlag.gif " alt="Deutsch" title="Deutsch" /></a>
  110.         <a href="?lang=es"><img src="images/Flags/EsFlag.png " alt="Español" title="Español" /></a>
  111.         <a href="?lang=it"><img src="images/Flags/ItFlag.png " alt="Italiano" title="Italiano" /></a>
  112.         <a href="?lang=pt"><img src="images/Flags/PtFlag.png " alt="Português" title="Português" /></a>
  113.         <a href="?lang=cs"><img src="images/Flags/CsFlag.gif " alt="Čech" title="Čech" /></a>
  114.         <a href="?lang=da"><img src="images/Flags/DaFlag.gif " alt="Dansk" title="Dansk" /></a>
  115.         <a href="?lang=no"><img src="images/Flags/NoFlag.gif " alt="Norsk" title="Norsk" /></a>
  116.         <a href="?lang=nl"><img src="images/Flags/NlFlag.gif " alt="Nederlands" title="Nederlands" /></a>
  117.        <a href="?lang=ru"><img src="images/Flags/RuFlag.gif " alt="Русский" title="Русский" /></a>
  118.         <a href="?lang=sv"><img src="images/Flags/SvFlag.gif " alt="Svenska" title="Svenska" /></a>
  119.         <a href="?lang=zh"><img src="images/Flags/ZhFlag.gif " alt="中文" title="中文" /></a>
  120.         <a href="?lang=ja"><img src="images/Flags/JaFlag.gif " alt="日本語" title="日本語" /></a>
  121.         <a href="?lang=ar"><img src="images/Flags/ArFlag.gif " alt="العربية" title="العربية" /></a>
  122. </center>


Message édité par lasttango le 20-02-2008 à 13:46:14
Reply

Marsh Posté le 19-02-2008 à 00:41:46   

Reply

Marsh Posté le 19-02-2008 à 09:31:01    

Il me semble que les cookies doit être créés avant l'envoi des headers.
Tu ne dois donc rien afficher avant des créer tes cookies.
 
En gros, à partir du moment ou tu balance un "echo ..." ou un "header()...", la fonction "setcookie()" ne fonctionnera plus...

Reply

Marsh Posté le 19-02-2008 à 11:42:43    

La balise Code, c'est mieux que la balise quote pour afficher du code :o


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 19-02-2008 à 12:27:13    

Merci beaucoup ! En effet, je n'avais pas fait attention que j'avais un echo avant (j'en mets partout pour tester le code...). Le problème est résolu. encore merci.
 
Désoler pour la citation je ne suis pas très experte de l'utilisation du forum, je n'ai pas trouvé le petit bouton C/C++...  
Mea culpa


Message édité par lasttango le 19-02-2008 à 12:29:55
Reply

Marsh Posté le 19-02-2008 à 13:51:52    

J'ai crié victoire un peu vite !
En fait le cookie avait été créé avec le premier script et j'avais oublié de vider les cookies dans mon navigateur.
Donc le problème reste entier.  
J'ai supprimé les "echo" qui pouvaient se trouver avant et le cookie ne se crée toujours pas.
 
Retour à la case départ.
 
Si quelqu'un a une autre idée ...
 
Merci d'avance

Reply

Marsh Posté le 19-02-2008 à 14:41:34    

N'hésite pas à spécifier le chemin et le domaine quand tu crées un cookie

Reply

Marsh Posté le 19-02-2008 à 14:50:01    

lasttango a écrit :

J'ai crié victoire un peu vite !
En fait le cookie avait été créé avec le premier script et j'avais oublié de vider les cookies dans mon navigateur.
Donc le problème reste entier.  
J'ai supprimé les "echo" qui pouvaient se trouver avant et le cookie ne se crée toujours pas.
 
Retour à la case départ.
 
Si quelqu'un a une autre idée ...
 
Merci d'avance


 
Ligne 21:

Code :
  1. echo (" le navigateur est : $navigator / " );


...
Ligne 63:

Code :
  1. setcookie('idioma',$_GET["lang"],(time() + $expire));//PROBLEME : LE COOKIE NE SE CRÉE PAS


 
 
Pas besoin de chercher plus loin je pense...

Reply

Marsh Posté le 19-02-2008 à 15:07:42    

Oui tu as raison, mais même avec l'echo supprimé il ne le crée pas...

Reply

Marsh Posté le 19-02-2008 à 15:08:50    

snif le trafic HTTP pour voir si le header Set-Cookie est bien envoyé (utiliser Tamper Data sous FireFox, ou Fiddler sous IE)

Reply

Marsh Posté le 19-02-2008 à 15:17:15    

j'ai trouvé ce qui bloquait. Le script fonctionne quand je supprime ma connexion à la base de données:
require_once('connexion_Base_Donnees.php');
 
Mais ça ne m'explique pas pourquoi. Une idée ?

Reply

Marsh Posté le 19-02-2008 à 15:17:15   

Reply

Marsh Posté le 19-02-2008 à 15:21:02    

un echo dans "connexion_Base_Donnees.php"?
Et sinon essaye voir de déplacer "header('Content-type: text/html; charset=utf-8');" (ligne 2), mets-le juste avant le 1er echo de ton code.


Message édité par forzayalta le 19-02-2008 à 15:24:09
Reply

Marsh Posté le 19-02-2008 à 15:41:00    

"header('Content-type: text/html; charset=utf-8');"
n'a pas l'air de géner, tout fonctionne normalement avec.
j'ai vérifié le fichier de la connexion base et il n'y a pas d'echo...

Code :
  1. $hostname_BaseAlpha = "localhost";
  2. $database_BaseAlpha = "NomBase";
  3. $username_BaseAlpha = "utilisateur";
  4. $password_BaseAlpha = "mot de passe";
  5. $BaseAlpha = mysql_pconnect($hostname_BaseAlpha, $username_BaseAlpha, $password_BaseAlpha) or die(mysql_error());


 
bizarre


Message édité par lasttango le 19-02-2008 à 15:43:01
Reply

Marsh Posté le 19-02-2008 à 17:44:57    

Voici la structure de ma page et voici ce qu'il se passe :
 
Si quelqu'un sait pourquoi et comment contourner le problème, je suis preneuse.  
 
Sans include ou require_once, le script  fonctionne
 

Code :
  1. <?php
  2. $hostname_BaseAlpha = "localhost";
  3. $database_BaseAlpha = "NomBase";
  4. $username_BaseAlpha = "utilisateur";
  5. $password_BaseAlpha = "mot de passe";
  6. $BaseAlpha = mysql_pconnect($hostname_BaseAlpha, $username_BaseAlpha, $password_BaseAlpha) or die(mysql_error());
  7. //Affichage des caractères spéciaux aux langues universelles, necessaire seulement après la connexion
  8. mysql_query("SET NAMES 'utf8'" );
  9. header('Content-type: text/html; charset=utf-8');
  10. /**  GESTION DES LANGUES DANS LA NAVIGATION DU SITE :
  11. Récupération dans l'URL de la langue choisie par l'utilisateur, sinon de celle de son navigateur ou enfin de la (les) langue(s) par défaut */
  12. //MODULE LANGUE
  13. //ON DEFINIT LA LANGUE DU NAVIGATEUR QUI VISITE LE SITE//
  14. if(isset($_GET["navigator"])) $navigator = $_GET["navigator"];
  15. $langues=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  16. $navigator=$langues[0];
  17. if ( $navigator == "$navigator" ){
  18. $navigator = "$navigator";
  19. echo (" le navigateur est : $navigator / " );
  20. }
  21. /* Affiche la langue du navigateur si la langue  est repésentée sur le site */
  22. mysql_select_db($database_BaseAlpha, $BaseAlpha);
  23. $query_StatutLangue = "SELECT Statut, Lang, Lang_Derivee FROM Admin_ModuleLang INNER JOIN Admin_Modules ON Admin_ModuleLang.Statut = Admin_Modules.Module_Lang WHERE Admin_ModuleLang.Statut='1' AND Admin_ModuleLang.Lang LIKE '$navigator' ";
  24. $StatutLangue = mysql_query($query_StatutLangue, $BaseAlpha) or die(mysql_error());
  25. $row_StatutLangue = mysql_fetch_assoc($StatutLangue);
  26. $totalRows_StatutLangue = mysql_num_rows($StatutLangue);
  27. /* Affiche les langues dérivées si la langue d'origine est proposée sur le site */
  28. $var_LangDerivee = ",$navigator,";
  29. mysql_select_db($database_BaseAlpha, $BaseAlpha);
  30. $query_StatutLangueDerivee = "SELECT Statut, Lang, Lang_Derivee  FROM Admin_ModuleLang INNER JOIN Admin_Modules ON Admin_ModuleLang.Statut = Admin_Modules.Module_Lang WHERE Admin_ModuleLang.Statut='1' AND Admin_ModuleLang.Lang <> '$navigator' AND  Admin_ModuleLang.Lang_Derivee LIKE '%$var_LangDerivee%' ";
  31. $StatutLangueDerivee = mysql_query($query_StatutLangueDerivee, $BaseAlpha) or die(mysql_error());
  32. $row_StatutLangueDerivee = mysql_fetch_assoc($StatutLangueDerivee);
  33. $totalRows_StatutLangueDerivee = mysql_num_rows($StatutLangueDerivee);
  34. /** ON DETERMINE LA LANGUE PAR DÉFAUT DU SITE et une langue par defaut pour la navigation si la langue du navigateur est différente de la langue defaut et n'est pas l'anglais */
  35. $langDefaut = $row_Tble_Pref_Site['Lang_Defaut'];
  36. $langDefautEn = "en";
  37. //ADMINISTRATION DES MODULES : Le Statut du module langue doit être ON et le Statut de la langue anglaise doit aussi être ON pour que l'anglais soit représenté sur le site  //
  38. mysql_select_db($database_BaseAlpha, $BaseAlpha);
  39. $query_StatutAnglais = "SELECT Admin_Modules.Module_Lang, Admin_ModuleLang.Statut, Admin_ModuleLang.Lang FROM Admin_ModuleLang INNER JOIN  Admin_Modules  ON Admin_Modules.Module_Lang = Admin_ModuleLang.Statut  WHERE Admin_Modules.Module_Lang ='1' AND Admin_ModuleLang.Lang = 'en' AND Admin_ModuleLang.Statut <>'0'";
  40. $StatutAnglais = mysql_query($query_StatutAnglais, $BaseAlpha) or die(mysql_error());
  41. $row_StatutAnglais = mysql_fetch_assoc($StatutAnglais);
  42. $totalRows_StatutAnglais = mysql_num_rows($StatutAnglais);
  43. //definition de la variable $Pays pour l'affichage des drapeaux des pays représentés dans le module langue
  44. $Pays = "";
  45. /** ON RECUPÈRE LA VALEUR DE LA LANGUE DANS L'URL : ?lang= */
  46. if (isset ($_GET["lang"])) $lang = $_GET["lang"];
  47. if ($_GET["lang"]) {
  48. /** ENREGISTREMENT DE LA LANGUE CHOISIE SUR LE SITE DANS UN COOKIE  */
  49. $expire = 365*24*3600;//définition de la valeur du cookie (1 an)
  50. setcookie('idioma',$_GET["lang"],(time() + $expire));//PROBLEME : LE COOKIE NE SE CRÉE PAS
  51. echo " /enregistrement du cookie : ? ";
  52. echo $_COOKIE['idioma'];// le cookie ne s'affiche pas
  53. echo " =  ";
  54. echo $_GET["lang"];// Poutant ici sa valeur s'affiche !?  
  55. echo " //  ";
  56. if ($navigator==$_GET["lang"]) {// FONCTIONNE
  57. $lang =$_GET["lang"] ;
  58. $Pays = $_GET["lang"];
  59. echo ("La langue $lang est sélectionnée et enregistrée dans un cookie cas 1" );
  60. } elseif (( $navigator!=$_GET["lang"] && $row_StatutLangueDerivee['Lang']==$_GET["lang"]) || ($navigator!=$_GET["lang"] && $row_StatutLangue['Lang']==$_GET["lang"])) {// FONCTIONNE
  61. $lang =$_GET["lang"] ;
  62. $Pays ="$navigator";
  63. echo ("La langue $lang est sélectionnée et enregistrée dans un cookie cas 2" );
  64. } elseif (( $navigator!=$_GET["lang"] && $row_StatutLangueDerivee['Lang']!=$_GET["lang"]) || ($navigator!=$_GET["lang"] && $row_StatutLangue['Lang']!=$_GET["lang"])) {// FONCTIONNE
  65. $lang =$_GET["lang"];
  66. $Pays =$_GET["lang"];
  67. echo ("La langue $lang est sélectionnée et enregistrée dans un cookie cas 3" );
  68. }
  69. } else {
  70. /** AUTRE SI LA LANGUE PRÉFÉRÉE A DÉJÀ ÉTÉ CHOISIE ET ENREGISTRÉE, ON LA RÉCUPÈRE DANS LE COOKIE */
  71. if ($_COOKIE['idioma']==true) {// NE FONCTIONNE PAS LE COOKIE N'A PAS ÉTÉ CRÉE PRECEDEMMENT, ON PASSE DIRECTEMENT AU CAS SUIVANT
  72. $lang = $_COOKIE['idioma'];
  73. $Pays = $_COOKIE['idioma'] ;
  74. echo " la langue dans le cookie est ";
  75. echo $_COOKIE['idioma'];
  76. }
  77. else {
  78. /** SI LA LANGUE FAVORITE N'A PAS ENCORE ÉTÉ CHOISIE ON APPELLE LA LANGUE PRÉFÉRÉE DU NAVIGATEUR DE L'UTILISATEUR */
  79. $langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  80. $navlang=$langs[0];
  81. if
  82. /** SI LA LANGUE DU NAVIGATEUR CORRESOND AUX LANGUES ACTIVES PROPOSÉES SUR LE SITE */
  83. ($navlang == $navigator && $row_StatutLangue['Lang'] == "$navigator" ) {// FONCTIONNE
  84. $lang= $row_StatutLangue['Lang'];
  85. $Pays= $row_StatutLangue['Lang'];
  86. echo ("la langue du navigateur est  $lang " );
  87. elseif
  88. /** SI LA LANGUE DU NAVIGATEUR CORRESPOND AUX LANGUES DÉRIVÉES DE CELLES PROPOSÉES SUR LE SITE */
  89. (($navlang == $navigator) && ($totalRows_StatutLangueDerivee> 0)) {// FONCTIONNE
  90. $lang = $row_StatutLangueDerivee['Lang'];
  91. $Pays = "$navigator";
  92. echo ("la langue dérivée du navigateur $navlang est $lang donc on affiche $lang" );
  93. elseif
  94. /** AFFICHAGE PAR DEFFAUT DE LA LANGUE EN ANGLAIS SI LA LANGUE DU NAVIGATEUR UTILISÉ N'EST PAS REPRÉSENTÉE SUR LE SITE */
  95. ($navlang != "$langDefaut" && $langDefaut !="$langDefautEn" && $langDefautEn =="en" && $row_StatutAnglais['Lang']=="en"  ) {// FONCTIONNE
  96. $lang = "en";
  97. $Pays = "en";
  98. echo ("la langue du navigateur: $navlang, n'est pas représentée  sur le site. Affichage par defaut en anglais car l'anglais est proposé sur le site" );
  99. }
  100. else { // FONCTIONNE
  101. /** SI AUCUNE LANGUE NE CORRESPOND, UTILISER LA LANGAGUE PAR DÉFAUT SI ELLE EST DIFFÉRENTE DE L'ANGLAIS */
  102. $lang = "$langDefaut";
  103. $Pays = "$langDefaut";
  104. echo (" la langue du navigateur: $navlang, n'est pas représentée  sur le site. La langue par defaut, dans laquelle le site a été créé, est $langDefaut " );
  105. }
  106. }
  107. }
  108. /** FIN DE LA GESTION DES LANGUES */
  109. ?>
  110. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  111. <html xmlns="http://www.w3.org/1999/xhtml">
  112. <head>
  113. <?php include('meta.php');  ?>
  114. </head>
  115. <body>
  116. <!--Menu -->
  117. <?php include($row_Tble_Pref_Site['Choix_Menu']);  ?>
  118. <!--/Menu -->
  119. <!-- Page -->
  120.  <?php include("page.php" ); ?>
  121. <!-- /Fin Page -->
  122.         <?php include("footerNav.php" ); ?>
  123. </body>
  124. </html>
  125. <?php include("footer.php" ); ?>


 
 
 
 
 
[#e2001c] avec include ou require_once, le script ne fonctionne pas  :??:  
 
 

Code :
  1. <?php
  2. require_once("MaConnexionAlaBasedeDonnees.php" );
  3. include ("langues.php" );
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <?php include('meta.php');  ?>
  9. </head>
  10. <body>
  11. <!--Menu -->
  12. <?php include($row_Tble_Pref_Site['Choix_Menu']);  ?>
  13. <!--/Menu -->
  14. <!-- Page -->
  15.  <?php include("page.php" ); ?>
  16. <!-- /Fin Page -->
  17.         <?php include("footerNav.php" ); ?>
  18. </body>
  19. </html>
  20. <?php include("footer.php" ); ?>


Message édité par lasttango le 19-02-2008 à 17:58:17
Reply

Marsh Posté le 20-02-2008 à 13:08:13    

Personne n'a d'idée ? :??:


Message édité par lasttango le 20-02-2008 à 13:08:38
Reply

Marsh Posté le 20-02-2008 à 13:11:33    

ligne vide ? c'est à dire saut de ligne ?

Reply

Marsh Posté le 20-02-2008 à 13:32:25    

Merci. Je vais essayer.

Reply

Marsh Posté le 20-02-2008 à 13:44:30    

Bravo. C'est ça !
 
Mille mercis parce que je pataugeais depuis un petit temps et il me semblait avoir tout essayer, en vain...
 
vraiment merci.

Reply

Marsh Posté le 20-02-2008 à 16:10:20    

C'est marrant que t'avais pas d'erreur "headers already sent"

Reply

Marsh Posté le 20-02-2008 à 17:33:51    

FlorentG a écrit :

C'est marrant que t'avais pas d'erreur "headers already sent"

ben ça dépend, c'est une erreur,un warning, ou tout juste un notice le "headers already sent" (j'ai oublié, pas fais de prog de site depuis plus d'un an),  ??? parce que selon son reporting, il a pitète pas demandé d'afficher grand chose...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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