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

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

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

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: 19592
Inscription: 8 Aoû 2004

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
Nouveau WRInaute
 
Messages: 42
Inscription: 22 Fév 2005

Ç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: 19592
Inscription: 8 Aoû 2004

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 discret
WRInaute discret
 
Messages: 230
Inscription: 29 Déc 2004

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
Nouveau WRInaute
 
Messages: 42
Inscription: 22 Fév 2005

Ç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 passionné
WRInaute passionné
 
Messages: 2121
Inscription: 6 Jan 2004

Message le Ven Mar 24, 2006 22:41

stripslashes($var);


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

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 passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

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
Nouveau WRInaute
 
Messages: 42
Inscription: 22 Fév 2005

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
Nouveau WRInaute
 
Messages: 42
Inscription: 22 Fév 2005

Message le Ven Mar 24, 2006 23:36

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


ManiaGames
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 18 Sep 2005

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 ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 les experts Google Analytics de Ranking Metrics.

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

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Apps for your Domain



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité