osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> "addslashes", pour échaper les mot accentués
AL1
posté 13 May 2011, 12:46
Message #1


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 474
Inscrit : 16-May 02
Lieu : Oise Normande pays de bray
Membre no 183



Bonjour à tous,

Je modifie le fichier "advanced_search_result.php" de façon a pourvoir rechercher "aussi" les mot accentués dans la description. Donc je pense me servire de (addslashes)... J'ai regardé sur plusieur pages de OSC avec cette fonction, mais l'écriture est toujours différente.

Voici le code :
Code
          $where_str .= "(pd.products_name like '%" . tep_db_input ($keyword) . "%' or p.products_model like '%" . tep_db_input ($keyword) . "%' or pd.products_head_keywords_tag like '%" . tep_db_input($keyword) . "%' or m.manufacturers_name like '%" . tep_db_input ($keyword) . "%'";
          if (isset($HTTP_GET_VARS['search_in_description']) && ($HTTP_GET_VARS['search_in_description'] == '1')) $where_str .= " or pd.products_description like '%" . tep_db_input($keyword) . "%' or pd.products_head_keywords_tag like '%" . tep_db_input($keyword) . "%'";
          $where_str .= ')';
          break;


Donc évidement le "addslashes" dans tous cela, je ne sais pas trop ou le mettre...??

Alain

Ce message a été modifié par AL1 - 13 May 2011, 12:47.


--------------------
Oscommerce : 2.2 MS2 | AdminMS2fr V2.3 | BoxImageThemaMS2fr V2.7 | Definemainpage v1.3.3 | MenubarV1 | WYSIWYG HTMLArea v1.7 FR | Sendorderhtmlemail v54 | Header Tags Controller v2.3.2 | Ultimate SEO URLs 2.2.2 | xsell_1_2_1 | PayPal_IPN-v2.3.3 | visibles country v1.1b | popup_image by grunt | step_by_step_orders_v1.7 | fckeditor-oscommerce_V2 | featured_products | Discount Coupon Codes 3.3. | Account Balance (gift certificate redemption) | N° facture séquentiel par Blanche Neige.

Projet en cours de finition :
Oscommerce : 2.3.3 FR | Ultimate_Seo_Urls_5_PRO_r205 | X_Sell_For_2.3.1_v3.0 | ipuv205A_for_osc231 | Instructions utf8 latin1 (Règle une bonne fois pour toute les problème d'accent) | AJAX attribute manager for 2.3.1 v2 mise à jour v2.8.10 | Category Description for OSCommerce 2.3.1 v1.08 | Product Attributes Sort Order v1.83a | Easy Populate v2.8-231 for osCommerce v2.3.1 | Quick_updates v2.9.2 | Theme Switcher v1.4.2 (retiré) | Fancier Invoice & Packing Slip for OSC 2.3.1 + Adaptation - Numéro de facture séquenciel par Blanche Neige | Dynamic Template System v2 | Order editor for2.3 v1.3 | Product Tabs V1.1 | KissIT - image Thumbnailer v1.0.0 | Option Types v2.3.1
Go to the top of the page
 
neji
posté 13 May 2011, 16:37
Message #2


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 41
Inscrit : 30-January 07
Membre no 14996



Bonjour,

Tu dois tout simplement le placer sur $keyword , de préférence avant la déclaration de $where_str.

En gros
Citation
$keyword=addslashes($keyword);
Go to the top of the page
 
AL1
posté 13 May 2011, 18:21
Message #3


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 474
Inscrit : 16-May 02
Lieu : Oise Normande pays de bray
Membre no 183



Hello neji,

bon j'ai fait une modifs selon tes indications comme cela:

Code
  if (isset($search_keywords) && (sizeof($search_keywords) > 0)) {
    $where_str .= " and (";
    for ($i=0, $n=sizeof($search_keywords); $i<$n; $i++ ) {
      switch ($search_keywords[$i]) {
        case '(':
        case ')':
          $keyword = addslashes($keyword);
          break;
        case ')':
          $where_str .= " " . $search_keywords[$i] . " ";
          break;
        case '+':
          $where_str .= " and ";
          break;
        case '*':
          $where_str .= " or ";
          break;
        default:
          $keyword = tep_db_prepare_input($search_keywords[$i]);
          
$where_str .= "(pd.products_name like '%" . tep_db_input ($keyword) . "%' or pd.products_description like '%" . tep_db_input ($keyword) . "%' or p.products_model like '%" . tep_db_input ($keyword) . "%' or pd.products_head_keywords_tag like '%" . tep_db_input ($keyword) . "%' or m.manufacturers_name like '%" . tep_db_input ($keyword) . "%'";
          if (isset($HTTP_GET_VARS['search_in_description']) && ($HTTP_GET_VARS['search_in_description'] == '1')) $where_str .= " or pd.products_description like '%" . tep_db_input($keyword) . "%' or pd.products_head_keywords_tag like '%" . tep_db_input($keyword) . "%'";
          $where_str .= ')';
          break;          
      }
    }
    $where_str .= " )";
  }


Mais les caratères accentués ne sont toujours pas pris en compte, exp :

légèrement = pas de résultat


--------------------
Oscommerce : 2.2 MS2 | AdminMS2fr V2.3 | BoxImageThemaMS2fr V2.7 | Definemainpage v1.3.3 | MenubarV1 | WYSIWYG HTMLArea v1.7 FR | Sendorderhtmlemail v54 | Header Tags Controller v2.3.2 | Ultimate SEO URLs 2.2.2 | xsell_1_2_1 | PayPal_IPN-v2.3.3 | visibles country v1.1b | popup_image by grunt | step_by_step_orders_v1.7 | fckeditor-oscommerce_V2 | featured_products | Discount Coupon Codes 3.3. | Account Balance (gift certificate redemption) | N° facture séquentiel par Blanche Neige.

Projet en cours de finition :
Oscommerce : 2.3.3 FR | Ultimate_Seo_Urls_5_PRO_r205 | X_Sell_For_2.3.1_v3.0 | ipuv205A_for_osc231 | Instructions utf8 latin1 (Règle une bonne fois pour toute les problème d'accent) | AJAX attribute manager for 2.3.1 v2 mise à jour v2.8.10 | Category Description for OSCommerce 2.3.1 v1.08 | Product Attributes Sort Order v1.83a | Easy Populate v2.8-231 for osCommerce v2.3.1 | Quick_updates v2.9.2 | Theme Switcher v1.4.2 (retiré) | Fancier Invoice & Packing Slip for OSC 2.3.1 + Adaptation - Numéro de facture séquenciel par Blanche Neige | Dynamic Template System v2 | Order editor for2.3 v1.3 | Product Tabs V1.1 | KissIT - image Thumbnailer v1.0.0 | Option Types v2.3.1
Go to the top of the page
 
Gnidhal
posté 13 May 2011, 22:51
Message #4


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9130
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Citation (AL1 @ 13 May 2011, 18:21) *
Mais les caratères accentués ne sont toujours pas pris en compte, exp :
légèrement = pas de résultat

Le problème des accents est peut-être du à la manière dont ils sont codés dans les textes en bdd.
Si tu as mis un wysiwyg genre ckEditor, il se peut que les entité html remplacent tous tes accents (légèrement = l&eacute;g&eagrave;rement) donc ton moteur de recherche ne risque pas de trouver le mot.
Tu peux configurer ton éditeur wysiwyg pour qu'il ne fasse pas ce remplacement des accentués.
Si ta page de code est bien réglée (iso8859-1 ou utf8) les accents sont reconnus par tous les navigateurs maintenant. Le codage html n'a donc plus de raison d'être.
Il faudra alors peut-être faire la modif dans toute les tables *_description pour mettre à jour les contenus...

Bon courage.



--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
neji
posté 16 May 2011, 16:54
Message #5


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 41
Inscrit : 30-January 07
Membre no 14996



petite précision supplémentaire concernant les apostrophes : tu as mis la condition dans ton switch, il faudrait plutot la placer après (dans le cas où tu entrerais dans le cas default).

et pour compléter l'exemple de gnidhal, récupère ce qui est envoyé et affiche le avec un htmlentities pour voir si tes accents sont encodés ou non.

Ce message a été modifié par neji - 16 May 2011, 16:55.
Go to the top of the page
 
AL1
posté 17 May 2011, 19:36
Message #6


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 474
Inscrit : 16-May 02
Lieu : Oise Normande pays de bray
Membre no 183



Bonsoir neji et Gnidhal,
Purée, je me demande encore comment je suis passé devant sans rien voir... Je dois avoir le cerveau monté à l'enver parfois. Bon effectivement les é et è se transforme en caractères html car écrit dans fkeditor... C'est pas possible, je me donnerai des baffes..... biggrin.gif Bon je me prépare une requette/moulinette sur mysql pour mettre à jour les contenus...

Peut-être un truc du style :
Code
UPDATE `nom_de_la_table` SET `champ_lambda` = REPLACE (`champ_lambda` ,'&egrave;','é')


J'essaye en local... Merci et bonne soirée à vous deux

Alain


--------------------
Oscommerce : 2.2 MS2 | AdminMS2fr V2.3 | BoxImageThemaMS2fr V2.7 | Definemainpage v1.3.3 | MenubarV1 | WYSIWYG HTMLArea v1.7 FR | Sendorderhtmlemail v54 | Header Tags Controller v2.3.2 | Ultimate SEO URLs 2.2.2 | xsell_1_2_1 | PayPal_IPN-v2.3.3 | visibles country v1.1b | popup_image by grunt | step_by_step_orders_v1.7 | fckeditor-oscommerce_V2 | featured_products | Discount Coupon Codes 3.3. | Account Balance (gift certificate redemption) | N° facture séquentiel par Blanche Neige.

Projet en cours de finition :
Oscommerce : 2.3.3 FR | Ultimate_Seo_Urls_5_PRO_r205 | X_Sell_For_2.3.1_v3.0 | ipuv205A_for_osc231 | Instructions utf8 latin1 (Règle une bonne fois pour toute les problème d'accent) | AJAX attribute manager for 2.3.1 v2 mise à jour v2.8.10 | Category Description for OSCommerce 2.3.1 v1.08 | Product Attributes Sort Order v1.83a | Easy Populate v2.8-231 for osCommerce v2.3.1 | Quick_updates v2.9.2 | Theme Switcher v1.4.2 (retiré) | Fancier Invoice & Packing Slip for OSC 2.3.1 + Adaptation - Numéro de facture séquenciel par Blanche Neige | Dynamic Template System v2 | Order editor for2.3 v1.3 | Product Tabs V1.1 | KissIT - image Thumbnailer v1.0.0 | Option Types v2.3.1
Go to the top of the page
 
AL1
posté 15 Jun 2011, 11:10
Message #7


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 474
Inscrit : 16-May 02
Lieu : Oise Normande pays de bray
Membre no 183



Bonjour à tous,

Comme me l'à fait remarquer Gnidhal, effectivement c'était bien le code généré par fkeditor... Donc encore merci Gnidhal car je passais vraiment à coté d'un truc aussi bête.

Donc voici une petite requête pour avoir un moteur de compète, si elle n'est pas écrite dans les règles de l'arts, elle est néanmoins efficace... Et perfectible...

Code
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&eacute;','é');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&egrave;','è');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&ecirc;','ê');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&euml;','ë');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&agrave;','à');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&acirc;','â');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&auml;','ä');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&icirc;','î');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&iuml;','ï');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&ouml;','ö');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&ocirc;','ô');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&ugrave;','ù');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&ucirc;','û');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&uuml;','ü');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&yuml;','ÿ');
UPDATE `products_description` SET `products_description` = REPLACE (`products_description` ,'&ccedil;','ç')


Alain

Ce message a été modifié par AL1 - 15 Jun 2011, 11:11.


--------------------
Oscommerce : 2.2 MS2 | AdminMS2fr V2.3 | BoxImageThemaMS2fr V2.7 | Definemainpage v1.3.3 | MenubarV1 | WYSIWYG HTMLArea v1.7 FR | Sendorderhtmlemail v54 | Header Tags Controller v2.3.2 | Ultimate SEO URLs 2.2.2 | xsell_1_2_1 | PayPal_IPN-v2.3.3 | visibles country v1.1b | popup_image by grunt | step_by_step_orders_v1.7 | fckeditor-oscommerce_V2 | featured_products | Discount Coupon Codes 3.3. | Account Balance (gift certificate redemption) | N° facture séquentiel par Blanche Neige.

Projet en cours de finition :
Oscommerce : 2.3.3 FR | Ultimate_Seo_Urls_5_PRO_r205 | X_Sell_For_2.3.1_v3.0 | ipuv205A_for_osc231 | Instructions utf8 latin1 (Règle une bonne fois pour toute les problème d'accent) | AJAX attribute manager for 2.3.1 v2 mise à jour v2.8.10 | Category Description for OSCommerce 2.3.1 v1.08 | Product Attributes Sort Order v1.83a | Easy Populate v2.8-231 for osCommerce v2.3.1 | Quick_updates v2.9.2 | Theme Switcher v1.4.2 (retiré) | Fancier Invoice & Packing Slip for OSC 2.3.1 + Adaptation - Numéro de facture séquenciel par Blanche Neige | Dynamic Template System v2 | Order editor for2.3 v1.3 | Product Tabs V1.1 | KissIT - image Thumbnailer v1.0.0 | Option Types v2.3.1
Go to the top of the page
 
Gnidhal
posté 16 Jun 2011, 10:31
Message #8


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9130
Inscrit : 4-March 03
Lieu : Auray
Membre no 927



Oui, perso j'aurais fait autrement :
récupération du contenu de la table products_description via phpmyadmin (fichier sql)
passage dans un éditeur de texte et remplacement des entités html ciblée par un recherche et remplace (histoire de ne rien oublier)
Enfin mise à jour de la table via phpmyadmin à partir du fichier sql corrigé.
Le travail en direct sur la base est toujours risqué (erreur de syntaxe...) et la multiplication des requêtes n'est pas forcément une solution exhaustive.
Dans ton cas tu as listé les caractères ä, ö, ÿ qui ne sont pas utilisés en français mais peut-être oublié le oe qu'il vaut mieux laisser en 2 lettres à la place d'un &oelig; car les recherches faites à partir d'un clavier français ne permettent pas d'écrire facilement les ligatures (qui connait le code par cœur du œ ?)


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 19th June 2013 - 00:26
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)