Je n'arrive pas à supprimer les accents d'un chaîne...

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

djkori
Nouveau WRInaute
 
Messages: 42
Inscription: Mar Fév 22, 2005 22:04

Je n'arrive pas à supprimer les accents d'un chaîne...

Message le Ven Mar 24, 2006 21:49

Bonjour, voilà, je souhaite que les titres des news, des sujets des forums, des divers articles de mon site qui son stockés dans ma BDD se retrouvent dans l'url mais évidemment dénués d'accents... et j'ai de véritables problèmes... je n'y arrive pas... :?
Ça marche avec une variable définie du type:
Code: Tout sélectionner
<?php
$var='Salut, c'est un élément du coin';
?>

J'ai une fonction comme celle-ci:
Code: Tout sélectionner
<?php
function supprimeraccents($chaine)
{
$trouver = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$remplacerpar = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
return(strtr($chaine,$trouver,$remplacerpar));
}
?>

et quand on fait $sans_accents=supprimeraccents($var), ça enlève effectivement les accents...
Le problème se pose quand on a une variable du type $_POST['titre'], y a rien à faire les accents ne sont pas changés...


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12390
Inscription: Dim Aoû 08, 2004 20:24

Re: Je n'arrive pas à supprimer les accents d'un chaîne...

Message le Ven Mar 24, 2006 22:03

En faisant ça $sans_accents=supprimeraccents($_POST['titre']) ça ne marche pas ?

djkori
Nouveau WRInaute
 
Messages: 42
Inscription: Mar Fév 22, 2005 22:04

Ça marche avec $_POST[] mais pas avec htmlenties($_POST[])..

Message le Ven Mar 24, 2006 22:12

Bonjour, Leonick, oui, effectivement, ça marche avec $_POST mais il me faut bien protéger mes données et donc quand il y a un htmlentiies, ça ne marche plus... je comprends pas trop... :? 8O


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12390
Inscription: Dim Aoû 08, 2004 20:24

Re: Je n'arrive pas à supprimer les accents d'un chaîne...

Message le Ven Mar 24, 2006 22:21

En faisant ça
Code: Tout sélectionner
$sans_accents=supprimeraccents(html_entity_decode($_POST['titre']))

le html_entity_decode permettant de remettre les "vrais" caractères accentués

gomoz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 230
Inscription: Mer Déc 29, 2004 18:21

Message le Ven Mar 24, 2006 22:22

l'htmlentities tu le fais avant ou après l'appel à ta fonction ? Je crois bien que si tu le fais avant, ca convertit les caractères speciaux (ils sont plus sous la forme ÀÁÂÃÄÅà... donc).

djkori
Nouveau WRInaute
 
Messages: 42
Inscription: Mar Fév 22, 2005 22:04

Ça marche !! mais y a pas de problème de faille de sécurité?

Message le Ven Mar 24, 2006 22:37

Merci Leonick, je me casse la tête dessus depuis au moins 4 heures... :(
mais ça ne provoque pas de faille de sécurité??
Et aussi une question, si mon titre est par ex : "C'est un bel endroit", ça me donne C\'est un bel endroit" y a une solution pour que cet antislash \ ??


rottman
WRInaute accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

Message le Ven Mar 24, 2006 22:41

stripslashes($var);


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12390
Inscription: Dim Aoû 08, 2004 20:24

Re: Ça marche !! mais y a pas de problème de faille de sécur

Message le Ven Mar 24, 2006 22:43

djkori a écrit:Merci Leonick, je me casse la tête dessus depuis au moins 4 heures... :(
mais ça ne provoque pas de faille de sécurité??
Non, ça n'est une faille que pour l'affichage, si dans le champ il y avait des <script et autres joyeusetés - par contre, il faut ensuite supprimer tous les caractères qui ne sont pas dans 0-9 et a-z ainsi que le -
djkori a écrit:Et aussi une question, si mon titre est par ex : "C'est un bel endroit", ça me donne C\'est un bel endroit" y a une solution pour que cet antislash \ ??
un stripslashes devait le faire


Borower
WRInaute accro
WRInaute accro
 
Messages: 2151
Inscription: Lun Avr 18, 2005 20:58

Message le Ven Mar 24, 2006 22:44

rottman a écrit:stripslashes($var);


Ca supprime les accents ?
Si oui et bien on va vite remplacer notre code de 10 lignes par une fonction toute prevu. :wink:

djkori
Nouveau WRInaute
 
Messages: 42
Inscription: Mar Fév 22, 2005 22:04

antislashe

Message le Ven Mar 24, 2006 22:45

C'est bon, j'ai trouvé avec stripslashes(), merci pour votre aide !!! :D :D :D

djkori
Nouveau WRInaute
 
Messages: 42
Inscription: Mar Fév 22, 2005 22:04

Message le Ven Mar 24, 2006 23:36

Une question, ça serait pas mieux avec htmlspecialschars() que avec htmlentities()?


ManiaGames
WRInaute passionné
WRInaute passionné
 
Messages: 565
Inscription: Dim Sep 18, 2005 13:01

Message le Sam Mar 25, 2006 0:16

djkori a écrit:Une question, ça serait pas mieux avec htmlspecialschars() que avec htmlentities()?


SI, car tu convertirai plus les accents ;)


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités