Version complète: sur le forum Webmaster Hub : Soucis de rewrite "'"
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
baycris
Un peu apres avoir poster un petit malin tente des requetes sql sur le site donc pour ne plus donner envie je retire mon poste.
Pas cool.
Cris.
TheRec
Bonjour,

j'utilise cette fonction toute "simple" pour ce genre de tâche...
CODE
/**
 * Convert a string to something that can be used in a URL
 *
 * @date   2005-04-02
 * @param  string $str String to make URL friendly
 * @return string  URL friendly text
 */
 function str2url($str) {
   $str = strtr($str,"ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉËèéêëÌÍÎÏìíîïÙÚÛÜùúûü¾ÝÿýÑñ",
"AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuYYyyNn");
   $str = str_replace('Æ','AE',$str);
   $str = str_replace('æ','ae',$str);
   $str = str_replace('¼','OE',$str);
   $str = str_replace('½','oe',$str);
   $str = preg_replace('/[^a-z0-9_\s\'\:\/\[\]-]/','',strtolower($str));
   $str = preg_replace('/[\s\'\:\/\[\]-]+/',' ',trim($str));
   $res = strtolower(str_replace(' ','-',$str));
   return $res;
 }

Elle est utilisée par le moteur de blog DotClear et règle ce problème d'apostrophe wink.gif

Pour la deuxième question... je ne comprends pas bien ce que tu demandes... donc soit tu reformules pour moi..soit tu attends que quelqu'un d'autre comprenne ;D
baycris
Merci à toi
eh non mal'heureusement cela ne fonctionne pas chez moi...
Domage ca raccourci un peut le code...
Enfin que tu ne comprenne pas la deuxieme explique peut etre cela happy.gif
Car ce n'est qu'une question en fait.
La function sert a modifier l'url mais mon probleme je pense ce situe a l'appelle de l'url de son ecriture "initiale".
Comment sont appellées tes url par exemple ?

La différence entre les des code d'url que je prensente c'est l'addition de \
Cris
TheRec
On peu procèder comme ceci (si je n'utilise pas un moteur de template) :

CODE
<a href="http://www.domain.com/recette-<?php echo $lid."-".str2url($ltitle); ?>.html" title="<?php echo $title; ?>"><b><?php echo $ltitle; ?></b></a>

C'est pas très propre...mais c'est une troisième manière de faire, tu peux tenter pour voir si cela résoud ton problème, mais je doute car en définitive la sortie sera la même wink.gif
Tant au point de vue HTML que PHP les single quote/double quote ne modifient pas la sortie mais requière l'échapement (en PHP) et/ou l'altérnance d'utilisation (quand les données contiennent un apostrophe on utilise les guillemets, et inversément...).

Sinon je ne vois pas... tes données dans la base de données sont-elle échapée ? (as-tu utilisé addslashes, mysql_escape_string, ... lors de l'ajout de données) ... en bref tu peux essayer d'afficher la chaîne de caractères récupérée sans la passer dans la fonction qui la transforme pour être comptatible avec l'URL et essayer de voir d'où le problème provient...

**EDIT** Adresse remplacée..Oui...il y a toujours des "malins"
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.