Probleme pour une fonction en PHP.

Fermé
drlecteur Messages postés 36 Date d'inscription vendredi 6 juillet 2012 Statut Membre Dernière intervention 24 octobre 2012 - 22 oct. 2012 à 14:33
drlecteur Messages postés 36 Date d'inscription vendredi 6 juillet 2012 Statut Membre Dernière intervention 24 octobre 2012 - 24 oct. 2012 à 10:39
Bonjour,

Je vien poster ma question ici car cela fait plusieurs jours maintenant que je rame sur le probleme d'une de mes fonction. Donc voila ma colle :

J'ai une page ou je reçois les résultats d'un formulaire. Les résultat reçu je souhaite les envoyer a une fonction qui va supprimer tout les caractère spéciaux en les remplaçant pas des caractère simple ex : "é" devient 'e'. Mon problème est que quand j'envoie mes données a ma fonction, ma fonction retourne rien du tout, cependant ma fonction marche correctement. Je vais vous mettre un bout de code pour vous expliquer plus clairement :

<?php
		require 'Cv.class.php';
		require 'CvManager.class.php';
		$db = new PDO('mysql:host=localhost;dbname=test', '*******', '****');
		$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
		$cvmanager = new CvManager($db);
                echo $_POST['prenom']; // affiche 'ééé';
                echo $_POST['nom']; // affiche 'ààà';
		$toto = 'ééééàéàààààà';
                echo $toto // Affiche des case noir avec des point d'interrogation comme si il y a un problème d'encodage.
		echo $cvmanager->filter($_POST['prenom']); // j'envoie a ma fonction et j'affiche le résultat. Or rien ne s'affiche
		echo $cvmanager->filter($_POST['nom']); // j'envoie a ma fonction et j'affiche le résultat. Or rien ne 'affiche
		echo $cvmanager->filter($toto); // Et alors la j'envoie ma variable $toto a la fonction et l'echo m'affiche 'eeeeaeaaaaaa';
?>


je vous met ici le code de ma fonction filter :

public function filter($in) 
				{
					$in = strtolower($in);
					$search = array('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_]@');
					$replace = array ('e','a','i','u','o','c','_','');
					return preg_replace($search, $replace, $in);
				}


Donc je ne comprend pas pourquoi ma fonction ne marche pas lorsque je lui envoie des variable issu d'un formulaire mais que tout fonctionne correctement lorsque je déclare une variable et l'envoie a ma fonction. Si une personne sait d'où viens le problème sa serait sympa de m'aider car sa fait un moment que je galère :( (j'espère avoir été clair)

A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
23 oct. 2012 à 20:59
il me semble qu'il y a dans ce cas un pb d'encodage essayes en mettant:

echo $cvmanager->filter(utf8_encode($_POST['prenom']))
0
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
24 oct. 2012 à 08:45
ton formulaire a bien l'attribut method="post" ??
0
drlecteur Messages postés 36 Date d'inscription vendredi 6 juillet 2012 Statut Membre Dernière intervention 24 octobre 2012
Modifié par drlecteur le 24/10/2012 à 10:39
En effet l'encodage faisait tout bug mais j'ai utiliser une autre solution que ce que Alain propose. En tout cas merci de l'aide apporter, dommage que sur ccc les réponse aux questions arrivent tard ! merci a vous :)
0