en fait c'est juste import tree non ?
i.php utilise sync_chars_regex
Hors ligne
Non, i.php doit être patché aussi, il fait ça :
$query = '
SELECT *
FROM '.$prefixeTable.'images
WHERE path=\''.$page['src_location'].'\'
;';
Et là, pas de bol y'a une apostrophe dans src_location (on en revient à Surfer's Paradise) du coup, paf, la requête échoue.
Il faut donc bien patcher pour appeler mysql_real_escape_string (ou plutôt pwg_db_real_escape_string)
Hors ligne
donc Import tree et i.php doivent être patchés
vous pouvez ouvrir un ticket pour i.php ? merci
Hors ligne
C'est fait pour i.php : [Bugtracker] ticket 2971
Pour le reste, vous vous en chargez ?
Hors ligne
Parfait, merci obones (il y a le lien vers ce topic dans le bugtracker, donc si nécessaire on repassera ici)
Hors ligne
Bonjour à tous,
D'abord merci à tous pour les explications.
Après m'être "un peu" amusé avec la gestion des noms de fichiers pour la synchro (apostrophes, accents, tout ça...), je déterre ce sujet, car il me semble (mais je peux hautement me tromper !) qu'il y a une correction en plus à apporter au fichier /include/dblayer/functions_mysql.inc.php (et /include/dblayer/functions_mysqli.inc.php)
En effet, même en modifiant les 5 lignes indiquées par OBones, une erreur d'insert survenait encore.
Je ne l'ai plus après avoir modifié également la ligne 467 (functions_mysql.inc.php) et 544 (functions_mysqli.inc.php) telle que :
foreach ($dbfields as $field_id => $dbfield) { if ($field_id > 0) { $query .= ','; } if (!isset($insert[$dbfield]) or $insert[$dbfield] === '') { $query .= 'NULL'; } else { $query .= "'".pwg_db_real_escape_string($insert[$dbfield])."'"; } } $query .= ')';
Sans ces corrections, je n'arrive pas à ajouter de photos comportant des apostrophes. Cependant, les versions ayant pas mal avancé, peut-être n'est-ce plus la bonne correction ?
Pour ma part je suis à l'heure actuelle en 2.7.4.
D'autre part, j'en profite pour ajouter une question sur le fichier i.php : en ligne 471, il affiche maintenant
WHERE path=\''.addslashes($page['src_location']).'\'
ce qui n'était pas le cas en version 2.6.1 (et peut être autres, j'ai fait un gros saut).
Ce addslashes va-t-il suffire, car OBones préconisait un pwg_db_real_escape_string (ce que j'avais fait en 2.6.1 et qui fonctionnait).
Je demande cela car il me semble pour les échappements bdd sont gérés expressément par les "_real_escape_string() ".
Mais peut-être l'échappement ds i.php ne concerne-t-il pas les accés à la mysql.
Merci de votre attention !