Jump to content

reponse "Tentative de piratage" lors de l'import de produit en cvs


stephforum

Recommended Posts

Bonjour a tous :) ,
voila maintenant 2 jours que je tente d'importer mes articles via l'import en cvs mais en vain, j'ai toujours ce message : "Tentative de piratage" comme réponse 8-/
J'ai bien sur parcouru le forum et j'ai pu observer que je n'etait pas le seul mais, aucune des pistes ne m'a permis de résoudre le probleme.
J'ai tenté différents fichiers, export depuis oscommerce va easypopulate, export via phpmyadmin, j'ai meme tenter en faisant un export de mes articles depuis azfacturation ( qui récupere les articles et les commandes faite sous oscommerce) mais en vain, quelques soit la source du fichier CVS, cela ne fonctionne pas :-S
J'ai aussi remplacé les virgules des valeurs tarifs par des points pensant que cela serai mal interprété mais c'est pas mieux, toujour la meme réponse...

De votre coté, avez vous réussi ? Si oui, c'est avec un grand plaisir que j'accepte votre solution :-)
Bon week-end
Steph

Link to comment
Share on other sites

bonjour et merci Moderator pour ta reponse :-) ,

Toujours le meme probleme, meme avec les cookies de supprimer :long:
je comprend pas... c'est bien la premiere fois que je rencontre un probleme avec l'import de fichier CVS :roll: l'outil à l'air pourtant tres bien fait et tres facile d'utilisation :long:

Link to comment
Share on other sites

Bonjour

J'ai eu le même souci.
De mon côté : le problème provient du système de validation en expressions régulières de la fonction isCatalogName de la classe Validate.php :

static public function isCatalogName($name)
       {
               return preg_match('/^[^<>;=#{}]*$/ui', $name);
       }




Cette expression régulière retourne un FALSE si les caractères français sont mal encodés. (genre balancer de l'accent en iso alors que la classe tourne en UTF8).

Et quand cette fonction échoue, prestashop fait juste un appel à :

die(Tools::displayError());


qui affiche un message sans aucun rapport : tentative de piratage.

J'essayais d'importer un CSV dont les titres de colonnes contenaient un mot accentué, qui arrivait mal encodé sur mon serveur.

1. Résolution du problème côté client :
- Veuillez à ce que le fichier csv soit en UTF8 sur le serveur, sinon le convertir (avec iconv par ex sur un linux, ou notepad + sur un windows)

PROBLEME : La fonction de conversion automatique ISO-8859-1 déconne sur mon linux (PHP5 / UBUNTU).
Cocher cette case va obliger prestashop à faire une conversion des données via un utf8_encode() , mais par le biais d'un array_walk trèèèès perso et alambiqué.

2. Résolution problème côté serveur (pouvoir utiliser la fonction de conversion automatique iso utf8) :
Dans le fichier AdminImport.php, j'ai modifié la fonction public function utf8_encode_array(&$array) :
j'ai remplacé :

self::array_walk($array, array(get_class($this), 'utf8_encode_array'));


par

foreach( $array as $key=>$value )
     $array[ $key ] = utf8_encode( $array[$key] );


c'est brutal mais ça marche.

En espérant que cela vous aide...

Link to comment
Share on other sites

  • 3 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...