You are not logged in.
Yop !
Bon, alors là, c'est pire avec ton nouveau code ....
Déjà, ça gère pas plus l'apostrophe ... ça coupe tout ce qui est avant .... m'enfin, ça empeche pas de télécharger le fichier et de le voir.
Par contre, si je refais le test avec mon fichier problème &é(-è_çà)=$^ù!;,.§%µ£¨+°²€~#{[`^@]}¤âêîôûäëïöüÂÊÎÔÛÄËÏÖÜ.txt, ça me met un message d'erreur :
Attaque par upload potentielle. Ou fichier trop volumineux. Impossible de déplacer le fichier temporaire.
le fichier n'est pas uploadé.
Si je supprime
if (function_exists('mb_convert_encoding')) {
$name = mb_convert_encoding($name, 'HTML-ENTITIES','UTF-8');
}
ça fonctionne bien.
à quoi servent ces lignes ?
Je crois que quelqu'un a eu ce genre de problème sur le forum et il n'avait pas eu de solution ....
Bon ben moi je supprimes ces lignes car ça corrige rien (en tout cas pas mon problème d'appostrophes) et ça ajoute un bug non souhaité.
Merci pour ton aide remi.
GLPI, y'a moins bien mais c'est plus cher
GLPI en prod : 0.72 (~2000 utilisateurs / ~30 techniciens / 150 entités)
GLPI en test : 0.72
OCSNG + wamp (Apache2.2.8 PHP5.2.5)
Offline
> à quoi servent ces lignes ?
a avoir un nom de fichier propre sous Windows...
> en tout cas pas mon problème d'apostrophes
Que je n'arrive pas à reproduire.
Comment est configuré PHP ? en particulier les magic_quote_gpc (il est préférable de les désactiver)
En ajoutant un
logInFile('php-errors', "cleanFilenameDocument($name)=".print_r($_FILES,true)."\n", true);
au début de la fonction, il y a quoi dans le fichier php-errors.log ?
+
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
en le passant à off, c'est bon.
mais ça sert à quoi au juste ?
C'est xampp qui me l'a installé par défaut comme ça ...
Pour le reste ...
J'ai mis ton code avant et apres le if
Voila le résultat :
28-08-2009 09:39
cleanFilenameDocument(problème &é(-è_çà )=$^ù!;,.§%µ£¨+°²€~#{[`^@]}¤âêîôûäëïöüÂÊÎÔÛÄËà ÖÜ.txt)=Array
(
[filename] => Array
(
[name] => problème &é(-è_çà )=$^ù!;,.§%µ£¨+°²€~#{[`^@]}¤âêîôûäëïöüÂÊÎÔÛÄËà ÖÜ.txt
[type] => text/plain
[tmp_name] => C:\xampp\tmp\php20F.tmp
[error] => 0
[size] => 453
)
)
28-08-2009 09:39
2cleanFilenameDocument(problème &é(-è_çà)=$^ù!;,.§%µ£¨+°²€~#{[`^@]}¤âêîôûäëïöüÂÊÎÔÛÄËÏÖÜ.txt)=Array
(
[filename] => Array
(
[name] => problème &é(-è_çà )=$^ù!;,.§%µ£¨+°²€~#{[`^@]}¤âêîôûäëïöüÂÊÎÔÛÄËà ÖÜ.txt
[type] => text/plain
[tmp_name] => C:\xampp\tmp\php20F.tmp
[error] => 0
[size] => 453
)
)
GLPI, y'a moins bien mais c'est plus cher
GLPI en prod : 0.72 (~2000 utilisateurs / ~30 techniciens / 150 entités)
GLPI en test : 0.72
OCSNG + wamp (Apache2.2.8 PHP5.2.5)
Offline
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Onen le passant à off, c'est bon.
mais ça sert à quoi au juste ?
Lire : http://fr2.php.net/manual/en/info.confi … quotes-gpc
Donc la bonne valeur, c'est Off de toute manière (même si GLPI doit fonctionner dans les 2 cas)
En fait, le debug m'intéresse pour un fichier avec une apostrophe dans le nom, dans les 2 cas (magic_quotes_gpc = On et Off)
C'est xampp qui me l'a installé par défaut comme ça ...
Qui a dit que xampp était une solution propre et robuste capable de remplacer un administrateur système ?
Après pour le problème "Attaque..." je pense que c'est le nom du fichier qui devient trop long et dépasse les capacités du système. Pas sur qu'il y ait une solution propre.... faudrait tronquer... mais à quelle taille (sans doute 256 pour le chemin complet) ?
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
ok, je vais voir pr faire le test. surement dans l'aprem.
Par contre, je fais quoi pour l'erreur "Attaque par upload potentielle. Ou fichier trop volumineux. Impossible de déplacer le fichier temporaire."
J'ai l'impression que le mb_convert_encoding($name, 'HTML-ENTITIES','UTF-8') change le nom du fichier en base mais pas celui stocké physiquement. Donc s'il recompare, il se peut qu'il trouve ça louche ?
GLPI, y'a moins bien mais c'est plus cher
GLPI en prod : 0.72 (~2000 utilisateurs / ~30 techniciens / 150 entités)
GLPI en test : 0.72
OCSNG + wamp (Apache2.2.8 PHP5.2.5)
Offline
à on :
cleanFilenameDocument(ai un probleme.txt)=Array
(
[filename] => Array
(
[name] => ai un probleme.txt
[type] => text/plain
[tmp_name] => C:\xampp\tmp\php262.tmp
[error] => 0
[size] => 453
)
)
à off
cleanFilenameDocument(J'ai un probleme.txt)=Array
(
[filename] => Array
(
[name] => J'ai un probleme.txt
[type] => text/plain
[tmp_name] => C:\xampp\tmp\php261.tmp
[error] => 0
[size] => 453
)
)
OK, j'ai compris ..!
Last edited by sbonn (2009-08-28 11:29:03)
GLPI, y'a moins bien mais c'est plus cher
GLPI en prod : 0.72 (~2000 utilisateurs / ~30 techniciens / 150 entités)
GLPI en test : 0.72
OCSNG + wamp (Apache2.2.8 PHP5.2.5)
Offline
> [name] => ai un probleme.txt
là, je pense qu'on peux rien faire....
La donnée est visiblement tronquée en amont de GLPI (un bug php ??)
> J'ai l'impression que le mb_convert_encoding($name, 'HTML-ENTITIES','UTF-8') change le nom du fichier en base mais pas celui stocké physiquement.
Non, les 2.
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
J'ai testé avec un fichier moins long ... effectivement ça passe. par contre, même si c'est plus joli sous windows, ça n'en est pas moins illisible.
(exemple : problème_&é(-è_çà)=$^ù!;,.§%µ£¨+°²€~#{[`^@]}.txt)
Je pense qu'il faudrait effectivement tronquer le nom du fichier.
A voir si cela doit faire l'objet d'une évolution GLPI ou si je le fais seulement sur mon systeme ?
GLPI, y'a moins bien mais c'est plus cher
GLPI en prod : 0.72 (~2000 utilisateurs / ~30 techniciens / 150 entités)
GLPI en test : 0.72
OCSNG + wamp (Apache2.2.8 PHP5.2.5)
Offline
La correction devrait être intégrée en 0.72.2
Une autre solution devrait être fournie en 0.80 (nom du fichier = MD5 du contenu, par exemple)
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
Je parlais du fait de tronquer le nom des fichiers ...
Sinon, il faudra attendre la 0.80 .... mais là, si je comprend bien, ça changera le nom des fichiers ? donc les noms ne seront plus "compréhensible" sur le serveur .... pas cool ....
(j'imagine qu'a l'affichage, cela ne changera pas vu que le nom sera sauvegardé dans la BD)
GLPI, y'a moins bien mais c'est plus cher
GLPI en prod : 0.72 (~2000 utilisateurs / ~30 techniciens / 150 entités)
GLPI en test : 0.72
OCSNG + wamp (Apache2.2.8 PHP5.2.5)
Offline
> donc les noms ne seront plus "compréhensible" sur le serveur .... pas cool ....
L'accès par le serveur n'est pas la méthode correcte d'accès au fichier, en effet il n'y a plus aucun des contrôles de droits réalisés par l'interface.
Ok, pour un admin, pour vérifier, mais à part ça... je vois pas trop
Et il faut aussi prévoir le cas de > 100000 fichiers (je pense pas que l'explorateur de fichiers supporte très bien) et des utilisateurs qui envoient tous le "capture.jpg" (nom par défaut du logiciel de capture), etc...
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
ok
j'pense que tu peux cloturer ..
GLPI, y'a moins bien mais c'est plus cher
GLPI en prod : 0.72 (~2000 utilisateurs / ~30 techniciens / 150 entités)
GLPI en test : 0.72
OCSNG + wamp (Apache2.2.8 PHP5.2.5)
Offline