Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 10h11   #1
Invité régulier
 
Louis
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Louis

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 6
Points : 6
Par défaut Comparaison string - encodage apostrophe/accent

Bonjour,
je souhaite à partir du secteur d'activité sélectionné par l'utilisateur lui calculer une partie de la fiche de salaire ( en gros afficher le salaire brut, les taux de cotisations et les résultat puis salaire net).

Je suis face à un problème d'encodage, à prioris, voila les symptômes :
- Un formulaire avec une liste déroulante (plugin gravity forms de wordpress)

Lors de la soumission du formulaire j'ai plusieurs cas :
- La chaine de caractère est sans accent, sans apostrophes => OK, le script me trouve bien le taux correspondant dans le tableau en cherchant si une clé du type "chaine de caractère qui vient d'être soumise" existe. Sachant que les clés existes forcément puisque j'utilise une liste déroulante.

Les ennuis commencent :
- une chaine avec accent sans apostrophe => Marche pas, ok je rajoute une petite ligne avec la fonction strtr(), marche toujours pas, je me prend pas la tête, je vire tout les accents, tant pis pour les puristes.
- Une chaine de caractère sans accent (normal j'ai tout viré), avec apostrophe => Marche pas, AARGHHH, je reste calme, je vais voir sur developpez.com si il y a des inspirés.

je vous ai mis l'extrait du code qui pose problème.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
/* $f => le tableau qui contient les data envoyé par le form
$opt => un autre tableau qui contient la correspondance entre un code et un taux. */
function get_taux_cotisation($f,$opt){
 
	$mesSECTEURS= get_tableau_sect_activ();
	// $sansacc=strtr($f[3], "éêèàô'", "eeeao ");
	if(array_key_exists ( $f[3] , $mesSECTEURS)){
		$CODE= $mesSECTEURS[$f[3]];
		}else{
		echo '<h1>'.$f[3].'</h1>';
		}
	return  $opt[$CODE];
 
	}
	// mon tableau data
	function get_tableau_sect_activ(){
	return array("Fabrique de ciment, de chaux et de plâtre" => '91',
"Entreprises de sables et graviers, béton, enrobés"=>'91',
"Fabriques de produits en ciment"=>'94',
"Céramique et verre"=>'94',
"Industrie textile et de l'habillement" => '55'};
Louklo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 16h48   #2
Nouveau Membre du Club
 
Avatar de Thibault92
 
Homme Thibault
Étudiant
Inscription : juin 2011
Messages : 43
Détails du profil
Informations personnelles :
Nom : Homme Thibault
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 43
Points : 33
Points : 33
--> addslashes();
http://fr.php.net/manual/fr/function.addslashes.php
Thibault92 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/07/2011, 16h53   #3
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Si ton serveur a l'option magic quote d'activée lors de la réception des données POST elles sont échappées avec des antislashs.
"L'eau" devient ainsi "L\'eau".
Le souci peut donc venir de là.

Sinon il peut y avoir un souci de BOM si tu encodes en UTF-8.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 09h28   #4
Invité régulier
 
Louis
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Louis

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 6
Points : 6
Pour le addslash je ne pense pas, dans le code vous pouvez voir que si il ne trouve pas la clé dans le tableau, il me l'affiche en gros sur l'écran (h1).

Et je n'ai jamais eu de slash rajoutés ou quoi que ce soit, la chaine de caractère qui est affichée est exactement celle qui se trouve en key dans le tableau mapé.

Pour le BOM, je ne connais pas trop, je vais essayer de voir simplement si les fonctions utf8_encode-decode change quelques chose à mon script,

merci pour les réponses en tout cas.
Louklo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 10h14   #5
Invité régulier
 
Louis
Inscription : mars 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Louis

Informations forums :
Inscription : mars 2011
Messages : 10
Points : 6
Points : 6
Bon, à priori problème résolu :

Le problème venait du plugin wordpres utilisé pour la gestion des formulaires qui est gravity form. J'avais utilisé un hook wp pour ajouter une liste déroulante par défaut qui contenait beaucoup de valeurs. Apparemment c'est cette manip qui provoquait le bug.
En voulant tester, j'ai remis les apostrophes sur certaines valeurs et l'erreur avait disparue. Donc je suis parti pour les rajouter à la main une par une .

Merci!
Louklo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h25.


 
 
 
 
Partenaires

Hébergement Web