Formulaire + get + enlever accents
biguiz
Messages postés
206
Statut
Membre
-
Laurent Delacre -
Laurent Delacre -
Bonjour à tous,
j'utilise un formulaire pour récupérer un mot pour mon moteur de recherche.
Tout marche niquel sauf quand le mot comporte un accent, ça ne m'affiche aucun enregistrement, alors que dans la base il contient bien un accent.
Connaitriez-vous une méthode pour envoyer mon mot en GET sans l'accent afin que ma requête fonctionne convenalblement ? Peut être avec du javascript ?
Merci par avance !
j'utilise un formulaire pour récupérer un mot pour mon moteur de recherche.
Tout marche niquel sauf quand le mot comporte un accent, ça ne m'affiche aucun enregistrement, alors que dans la base il contient bien un accent.
Connaitriez-vous une méthode pour envoyer mon mot en GET sans l'accent afin que ma requête fonctionne convenalblement ? Peut être avec du javascript ?
Merci par avance !
A voir également:
- Formulaire + get + enlever accents
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Enlever pub youtube - Accueil - Streaming
- Get data back - Télécharger - Récupération de données
- Formulaire de reclamation instagram - Guide
4 réponses
function removeaccents($mot)
{
$mot= strtr($mot,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
return $mot;
} ;
$mots = explode(' ', $mot); //séparation des mots de la recherche à chaque espace
$nombre_mots = count ($mots); //compte le nombre de mots
$valeur_requete = '';
for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++)
{
$valeur_requete .= 'AND (nom LIKE \'%' . $mots[$nombre_mots_boucle] . '%\' OR descriptif LIKE \'%' . $mots[$nombre_mots_boucle] . '%\' OR categorie LIKE \'%' . $mots[$nombre_mots_boucle] . '%\')'; //modification de la variable $valeur_requete
}
$valeur_requete = ltrim($valeur_requete,'AND');
mysql_connect ($Hote, $Utilisateur, $Motdepasse);
$mot = addslashes($mot);
$Requete2 = "SELECT * from $Nomtable WHERE $valeur_requete";
$Resultat2 = mysql_db_query ($Nombase, $Requete2);
//comptage
$Nbe = mysql_num_rows($Resultat2);
{
$mot= strtr($mot,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
return $mot;
} ;
$mots = explode(' ', $mot); //séparation des mots de la recherche à chaque espace
$nombre_mots = count ($mots); //compte le nombre de mots
$valeur_requete = '';
for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++)
{
$valeur_requete .= 'AND (nom LIKE \'%' . $mots[$nombre_mots_boucle] . '%\' OR descriptif LIKE \'%' . $mots[$nombre_mots_boucle] . '%\' OR categorie LIKE \'%' . $mots[$nombre_mots_boucle] . '%\')'; //modification de la variable $valeur_requete
}
$valeur_requete = ltrim($valeur_requete,'AND');
mysql_connect ($Hote, $Utilisateur, $Motdepasse);
$mot = addslashes($mot);
$Requete2 = "SELECT * from $Nomtable WHERE $valeur_requete";
$Resultat2 = mysql_db_query ($Nombase, $Requete2);
//comptage
$Nbe = mysql_num_rows($Resultat2);
Il est toutefois possible de faire reconvertir (dans l'autre sens) ton code PHP (à la réception de ces caractères bizarres donc) pour obtenir à nouveau les caractères accentués. Pour cela, tu dois utiliser la fonction PHP utf8_decode. Tu peux ensuite, si tu le souhaite, enregistrer ces données dans une base de données, à condition que celle-ci soit également configurée pour utiliser l'unicode...
Voici un exemple de codes html, puis php qui illustrent mes propos:
index.html:
reception.php:
<?php foreach($HTTP_GET_VARS as $clé=>$valeur){ $clé = utf8_decode($clé); $valeur = utf8_decode($valeur); echo "$clé => $valeur<BR>\n"; } ?>