Probleme pour une fonction en PHP.

drlecteur Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
drlecteur Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   894
 
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   Statut Membre Dernière intervention   80
 
ton formulaire a bien l'attribut method="post" ??
0
drlecteur Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
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