Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2993 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème suppression accents [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème suppression accents [RESOLU]

n°1952124
Profil sup​primé
Posté le 21-12-2009 à 16:57:40  answer
 

Bonsoir  :)  
 
J'ai un problème assez pénible. Pour les besoins de ma galerie photo que je développe j'aimerai faire en sorte d'enlever les accents dans les noms de la galerie.
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  3. <head>   
  4.     <title>Test</title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.     <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
  7. </head>
  8. <body>
  9. <form action="index.php" method="post">
  10.     Nom galerie:<input type="text" name="nom"/>
  11.     <input type="submit" value="Envoyer"/>
  12. </form>
  13. <?php
  14. if(isset($_POST) && !empty($_POST['nom']))
  15.     {
  16.     extract($_POST);
  17.    
  18.     $toto = strtr($nom,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
  19.    
  20.     echo $toto;
  21.     }
  22. ?>
  23. </body>
  24. </html>


Normalement si je tape le mot pépé, ça devrait me sortir pepe. Mais là quand je tape pépé ça me sort pYopYo  [:transparency]  
 
Je pige pas trop, si quelqu'un peut éclairer ma lanterne, merci   :jap:


Message édité par Profil supprimé le 23-12-2009 à 09:34:23
mood
Publicité
Posté le 21-12-2009 à 16:57:40  profilanswer
 

n°1952128
stealth35
Posté le 21-12-2009 à 17:04:28  profilanswer
 

fais une recherche sur le forum, c'est un topic qui tombe 2/3 fois par mois

n°1952138
Profil sup​primé
Posté le 21-12-2009 à 17:24:32  answer
 

J'ai déjà regardé les autres mais c'est pas pour autant que j'ai résolu mon problème  [:jean-guitou]

n°1952143
stealth35
Posté le 21-12-2009 à 17:32:39  profilanswer
 

ta mal regardé, meme dans la page n°1 du thread php, y'as le meme type de problème et en plus avec des reponses

n°1952176
Profil sup​primé
Posté le 21-12-2009 à 18:18:07  answer
 

Ptète que les réponses ne m'ont pas aidés et que c'est pour ça que je post ici  [:prodigy]

n°1952273
philippe06
Posté le 22-12-2009 à 08:43:12  profilanswer
 

je mettrais pas mon slip en gage mais ca ressemble à une conversion ISO -> UTF-8 le passage de é sur 2 caractères.


---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
n°1952578
Profil sup​primé
Posté le 22-12-2009 à 20:24:09  answer
 

Pourtant j'enregistre tout en utf-8 sans bom et l'encodage de la page est en utf-8  [:transparency]

n°1952609
Pascal le ​nain
Posté le 22-12-2009 à 23:07:59  profilanswer
 

Tu peux faire un écho juste avant de passer ton message par le strtr() ?
 
 
----Hors-sujet----
 
Tiens, c'est marrant cette fonction extract(), je connaissais pas. C'est pas un poil dangereux, à l'instar des register_globals & cie ?
 
N'importe qui peut affecter la variable de son choix en validant un formulaire bidon avec des parametres POST supplémentaires...
 
edit : bon ok ya une gestion assez poussée des collisions au niveau des flags, mais bon...

Message cité 1 fois
Message édité par Pascal le nain le 22-12-2009 à 23:10:46
n°1952616
philippe06
Posté le 22-12-2009 à 23:33:40  profilanswer
 

En fait il faut un utf_decode($nom) au lieu de $nom.
 
http://php.net/manual/fr/function.strtr.php

Citation :


 Sidney Ricardo
05-Sep-2008 06:54
This work fine to me:
 
<?php
function normaliza ($string){
    $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ
ßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
    $b = 'aaaaaaaceeeeiiiidnoooooouuuuy
bsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
    $string = utf8_decode($string);    
    $string = strtr($string, utf8_decode($a), $b);
    $string = strtolower($string);
    return utf8_encode($string);
}
?>


---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
n°1952617
philippe06
Posté le 22-12-2009 à 23:36:41  profilanswer
 

Pascal le nain a écrit :

Tu peux faire un écho juste avant de passer ton message par le strtr() ?
 
 
----Hors-sujet----
 
Tiens, c'est marrant cette fonction extract(), je connaissais pas. C'est pas un poil dangereux, à l'instar des register_globals & cie ?
 
N'importe qui peut affecter la variable de son choix en validant un formulaire bidon avec des parametres POST supplémentaires...
 
edit : bon ok ya une gestion assez poussée des collisions au niveau des flags, mais bon...


moi non plus j'avais plus ou moins fait la mienne à la mano en python et php  [:bentley]  Le manque d'expérience en php, j'imagine ...


---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
mood
Publicité
Posté le 22-12-2009 à 23:36:41  profilanswer
 

n°1952660
Profil sup​primé
Posté le 23-12-2009 à 09:33:48  answer
 

Merci pour vos réponses mais comme un con j'avais oublié que j'avais désactivé js et du coup impossible de poster  [:tinostar]  
 
Alors dans l'ordre.
 
@Pascal le nain : Quand je fais un echo de $nom avant le passage par strtr() ça donne ce que j'ai tapé. Ex: pépé => pépé
 
Pour ton commentaire sur la fonction extract(), je sais pas si c'est dangereux, je ne connais pas encore les register_globals  [:cupra]  J'vais essayer de me renseigner  ;)  
 
@philippe06 : En mettant utf8_decode ça marche impec. En revanche je comprends pas trop pourquoi je dois utiliser cette fonction puisque je précise dans le charset que j'utilise l'utf-8, et qu'en plus j'enregistre mon document en utf-8 sans BOM  :??:  
 
Néanmoins merci à vous deux  :jap:
 
Edit: Après une recherche sur php.net sur les register_globals je tombe là-dessus:

Citation :

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0 et a étéSUPPRIMEE depuis PHP 6.0.0. Nous vous encourageons vivementà ne plus l'utiliser.
 


 [:tinostar]  [:tinostar]

Message cité 1 fois
Message édité par Profil supprimé le 23-12-2009 à 09:42:13
n°1952693
Pascal le ​nain
Posté le 23-12-2009 à 10:33:36  profilanswer
 

PHP6 n'est pas encore sorti. Tous les serveurs sont encore en 5.3.0 ou inférieur.
Le register_globals est désactivé par défaut dans une grosse majorité, mais attention quand même.  
Tu utilises la fonction extract() qui n'a rien à voir avec les register_globals mais présente les mêmes dangers si tu n'ajoutes aucun flags.
Un peu de doc : http://php.net/manual/fr/function.extract.php
Lis bien l'avertissement sur les dangers de cette fonction.
Tu peux très bien t'en passer et faire un code safe...  ;)


Message édité par Pascal le nain le 23-12-2009 à 10:36:09
n°1952694
stealth35
Posté le 23-12-2009 à 10:39:14  profilanswer
 


 
 
c'est parce que les fontion str ne fonctionne qu'en ANSI, si tu faire nativement avec de l'utf-8 faut utilisé mb_string


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème suppression accents [RESOLU]

 

Sujets relatifs
RESOLU Redirection htacces et sous domaine[Résolu]Caractères spéciaux et blancs à retirer
Problème de structure et fichiersProbléme avec les BDD
[Java Swing] Problème avec drag'n'drop[SGBD] [semi-résolu] Comment organiser mes données de façon optimale ?
[VBscript] comparaison de chaine/filtre(résolu)[C#] (RESOLU) GetSchemaTable trop de champs !
[RESOLU]Serialize de session/ IE ? :/ 
Plus de sujets relatifs à : Problème suppression accents [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR