Salut tout l'monde !
Alors voilà, là j’ai un truc bien tordu, je cale sur un problème que je n'arrive pas à résoudre.
Pour donner le contexte, je passe certaines parties du site en multilangues (au choix du visiteur, choix conservé dans un cookie).
La partie haute du site ramasse des infos toutes les 5 secondes, en déclenchant une fonction qui fait une requête ajax (je mets les parties pertinentes du code pour ne pas trop alourdir le post):
Code : Tout sélectionner
function recupdatardj() {
sellangsite = <?php echo json_encode($selectlanguagesite); ?>;
$.ajax({
type: 'POST',
url: './topper/aspihisto.php',
data: { selectlanguagesite:sellangsite },
success: function(data){
....Code : Tout sélectionner
if ( !isset($_POST["selectlanguagesite"]) ) {
$selectlanguagesite = 'fr';
} else {
$selectlanguagesite = $_POST["selectlanguagesite"];
}
//============ LANGUAGE ==============//
$language_file = $_SERVER["DOCUMENT_ROOT"].'/lang/lang_selector.php';
include($language_file);
//============ END LANGUAGE ==============//
$language = htmlspecialchars_decode($lang_site['Language_code']);Code : Tout sélectionner
$languepreferee = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
if(stristr($languepreferee[0], 'fr') != FALSE) {
$languagesite = 'fr';
} elseif(stristr($languepreferee[0], 'es') != FALSE) {
$languagesite = 'fr';
} else {
$languagesite = 'en'; }
if ( isset($selectlanguagesite )) {
$languagesite = $selectlanguagesite;
}
...
$query = "SELECT field, $languagesite AS selected_lang FROM translation ORDER BY area ASC, field ASC";
$requete = mysqli_query( $dbwrite,$query ) ;
while( $result = mysqli_fetch_object( $requete ) )
{
$field = htmlspecialchars($result->field);
$selected_lang = htmlspecialchars($result->selected_lang);
$lang_site[$field] = $selected_lang;
}
$query = "SHOW COLUMNS FROM translation WHERE Field NOT LIKE 'ID' AND Field NOT LIKE 'area' AND Field NOT LIKE 'field' ";
$requete = mysqli_query( $dbwrite,$query ) ;
while( $result = mysqli_fetch_object( $requete ) )
{
$lang = $result->Field;
$query2 = "SELECT $lang AS active FROM translation WHERE field = 'Language_activated' ";
$requete2 = mysqli_query( $dbwrite,$query2 ) ;
while( $result2 = mysqli_fetch_object( $requete2 ) )
{
$active = $result2->active;
if ( $active == 1 ) {
$dispolanguages[] = $lang;
}
}
}Code : Tout sélectionner
$passage_ligne = "\n";
$message_expediteur = htmlspecialchars_decode($lang_site['Gen_Bonjour']) ." $nom_destinataire,".$passage_ligne.$passage_ligne.htmlspecialchars_decode($lang_site['Disco_tchat_email_message1']).$passage_ligne.$trackname.$passage_ligne.$passage_ligne.htmlspecialchars_decode($lang_site['Disco_tchat_email_message2']) .$url.", ".htmlspecialchars_decode($lang_site['Disco_tchat_email_message3']) .$passage_ligne.$passage_ligne.htmlspecialchars_decode($lang_site['Topper_welcome4']) ;
mail($mail_destinataire,$objet,$message_expediteur,implode($passage_ligne, $entete));Si je prends un des champs utilisé dans le message expéditeur, pour l'afficher directement sur le site (à la place du titre de la musique qui passe par exemple, donc en retour ajax), le champs s'affiche dans la langue choisie.
Impossible de trouver où est le problème, j'ai fais tellement de tests que je ne sais même plus où chercher
Si quelqu'un voit ce qui est peut être évident , je suis preneur d'ifno
Merkouin !