Bonjour tous,
Depuis 2 soirées je m'énerve violemment avec une "variable accentuée" passée dans une url. Toutes mes pages sont encodées en utf-8 (balise meta). Je m'explique (désolé c'est un chouille long, par avance merci de me lire):
Je suis en train de faire un petit script de gestion d'albums photos. L'architecture est la suivante:
dossier "toto et stéphane" : album d'images 1
dossier "tata": album d'images 2
dossier admin: fichier de gestions du (des) galeries d'images
Dossiers des albums photos ( ./nom du dossier/index.php)
Il y a lien vers "../admin/index.php" où est renseignée dans l'url le nom du dossier contenant l'album photos:
Voici comment je récupère le nom do dossier (dans tous les fichiers index.php des dossiers des albums photos):
// Gallery dir name
$a = $_SERVER['PHP_SELF'];
$t = ereg_replace("/index.php", "", $a);
$dir = ereg_replace("/(.)*/","",$t);
Et voici le lien qui pointe vers le fichier index.php d'administration des albums photos
<a href="../admin/index.php?dir=<? echo urlencode($dir); ?>" title="Administration panel" target="_blank" class="small_links">Admin</a></td>
Fichier ../admin/index.php:
Au click sur le lien précédent ça me donne ça (pour l'album photos "toto et stéphane"):
http://localhost:8888/phpmm_full/admin/ ... t+stéphane
Alors voila mon problème:
Pour la suite des opérations, j'ai besoin de savoir quel album photos est "envoyé" (récupération de la variable $dir) au fichier ../admin/index.php, pour cela j'ai fait une fonction qui liste les noms des dossiers du répertoire ou sont enregistrés les albums photos:
function scan_galls($dirgall)
{
$files = array();
$fh = opendir($dirgall);
while (false !== ($filename = readdir($fh)) )
{
if ( $filename != "." and $filename != ".." and !is_file($filename) and $filename !== "admin" and !preg_match ("/^\./", $filename) )
{
array_push($files, $filename);}
}
closedir($fh);
natcasesort($files);
return $files;
}
$galls=scan_galls("..");
LE PROBLEME:
$a = $galls['1'];
echo $a
Ca affiche "toto et stéphane"
$b = stripslashes($dir);
echo $b
Ca affiche "toto et stéphane"
if ($a == $b) echo "victoire";
.... et pas de victoire

----> this is the problem
Voici ma configuration:
- Server apache/php (5.2.11)/mysql: NAMP (je suis sur Mac)
- Toutes mes pages sont encodées en utf-8 (balise META):
Code : Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Jj'ai essayé avec utf8_encode ou decode ... jamais je ne suis arrivé à victoire ...
l'un ou l'une d'entre vous aurait il une piste ?
Par avance merci et n'hésitez pas à me demandez d'autre détails si nécessaire
Par avance merci,
F