Variable accentuées, url ... utf-8 ET listing de DOSSIERS
arginine
Messages postés10Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 avril 2010
-
17 avril 2010 à 17:54
pysco68
Messages postés681Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention21 août 2014
-
19 avril 2010 à 08:47
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):
TOUT SÉLECTIONNER
// 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
TOUT SÉLECTIONNER
[../admin/index.php?dir=<? echo urlencode($dir); ?> Admin]</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/ ... toto+et+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:
TOUT SÉLECTIONNER
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) )
{
$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):
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
arginine
Messages postés10Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 avril 2010 19 avril 2010 à 00:30
ah cool: le strlen sur les deux chaines est différent ...
bizarrement d'ailleurs .... mais au moins il y a une différence... inexplicable mais bon c'est deja ca.
$a (variable $dir envoyée via l'url) : 17
$b (varibale sorti du listing des repertoire, function scan_galls($dirgall) : 18
c'est quoi le /u du preg replace ?
et le strlen sur le preg_replace me donne pas zero mais 18
essayé aussi avec un trim sur les varaibles ... pareil
t'as une idée ?
Vous n’avez pas trouvé la réponse que vous recherchez ?