=>
Après pour ce qui est de ton soucis de header dans les pages situées dans un sosu dossier je n'ai pas très bien compris ton problème.
En fait ce que je disais, c'est que dans les sous-dossiers la redirection fonctionne correctement.
L'arboressence est la suivante : (description des dossiers typée XML pour être plus clair)
Code XML :
<sondage>
index.php
<francais>index.php, etape2.php, etape3.php, ...</francais>
<english>index.ph, ...</english>
</sondage>
Donc pour clarifier (dans le cas d'un sondage en francais seulement, puisque ce sera le même en traduit pour la version englaise qui viendra plutard) :
- les redirections de <francais>index.php</francais> vers <francais>etape2.php</francais> ou de <francais>index.php</francais> vers <sondage>index.php</sondage> fonctionnent bien.
- Mais pas la redirection de <sondage>index.php</sondage> vers <francais>index.php</francais> ne fonctionne pas.
Essaye de commencer tes pages par header('Content-Type: text/html; charset=utf-8'); en remplaçant utf-8 par ton encodage bien entendu.
(1*)J'ai encodé le code sous ConTEXT en unicode, donc à priori c'est bien du UTF-8, j'ai posé le header et j'ai supprimé le extract en adressant directement de $_POST[]. Je l'ai fait tourner sous EasyPHP et j'ai retrouvé le même problème que sur le server. Ce qui confirme donc que l'erreur vient à priori de moi. Voici ce que j'ai constaté :
(1*=>)EasyPHP n'interprete plus le code comme il faut : les CSS ne fonctionnent plus et le bout de code PHP (que j'ai ajouté pour suivre la variable) dans la page s'affiche tel quel ou presque (le code en question ci-dessous :)
<?php echo "</br></br></br></br>".$_SESSION['langue']; ?>
et ce qui s'affiche est quelque chose comme ce qui suit :
".$_SESSION['langue']; (il n'y a pas tout le code php, seulement la fin)
(2*)Ensuite lorsque je met en commentaire les modifications la page s'affiche n'importe comment (une sorte de chinois, japonais, sumérien... plein d'idéogrammes exotiques quoi).
La je viens de supprimer la mise en commentaire et rétablit le code comme en (1*) et la page s'affiche correctement hors-mi les caractères accentués qui s'affichent sous la fameuse forme <?> (propre à linux de mémoire).
Bref, trois choses :
- Comment être sur de l'encodage du texte ? (là, pour le cas d'une page php, en lisant le poste de kohntark je viens d'avoir une réponse) Où dans windows peut on vérifier l'encodage d'un fichier texte ?
- Le codage des caractères spéciaux sous la forme : &#NNNN; est elle obligatoire ? Car en effet je n'ai pas codé mes caractères spéciaux avec cette notation et pourtant tout marchait bien jusqu'alors.
- Les déclarations de codage sont elles enregistrées par le serveur (ou EasyPHP en l'occurrence) ? Comment cela se passe t-il ? Le serveur identifie l'encodage et lorsque l'on déclare l'encodage, il enregistre ce changement. Si on supprime cette déclaration, l'interprétation de l'encodage ne change pas pour le serveur ?
=>
lorsque tu dis "je me retrouve à tout les coups dans le exit(""); " duquel parles tu ?
une des redirections fonctionne t elle ou restes tu sur un des messages des exit() ?
En fait dans les deux cas. Mais pour l'instant je me concentre surtout sur le cas du Français. Aucune des deux redirections ne fonctionnent.
Pour lever le doute sur l'encodage tu devrais peut être faire un :
echo $_SESSION['langue'];
Justement c'est ce que j'ai fait, dans le cas initial sur EasyPHP comme sur le serveur de l'hébergeur cela s'affiche correctement : avec le "ç".
En revanche dès que je spécifie l'encodage plus rien ne vas (Cf la description plus haut (1*)
mb_detect_encoding et du php.ini
Très pratique : mb_detect_encoding() => UTF-8.
(En revanche je ne comprends pas pourquoi il faut absolument y passer un argument $str puisque l'utilisation la plus courante doit être déterminer l'encodage de la page..? )
Très intéressant le php.ini, il me semble l'avoir déjà utilisé il y a longtemps... Je pense effectivement que j'ai intérêt à y faire un saut sous peu.
=> A priori je me retrouve maintenant sur easy php dans la même configuration que sur le serveur (lorsque j'avais fait la déclaration UTF, non pas via header, mais dans le <xml> et le <html>) et dans ce cas la redirection ne marchait toujours pas. Je vais continuer à chercher, notamment dans la direction du php.ini ...
Merci encore pour vos réponses.