Utiliser une fonction php existante

Fermé
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 11 juil. 2007 à 11:47
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 11 juil. 2007 à 17:31
bonjour a tous .
voila j'ai un formulaire que doit remplir l'utilisateur .
un champs "nom du fichier" doit être renseigné par l'utilisateur .
le problème est que comme j'enregistre ce nom dans la base de données mySQL, il ne doit pas contenir de caractères spéciaux .
pour cela je veux utiliser un fonction que j'ai récupérée mais je sais pas trop comment je dois la mettre en place .

Voici le code de cette fonction :

function protect($txt)
{
	$suppr	= array('[',']','=','1','$','&icirc;','&ocirc;','&agrave;','&ccedil;','&ccedil;','&ecirc;','&egrave;','&eacute;','é', 'è', 'ê', 'ë', 'â', 'à', 'ä', chr(156), chr(220), 'u', 'ù', 'ü', 'ö', 'ô', 'ç', 'ï', 'î', chr(63), '!', '@', '€',chr(128), '&amp;', '&', '%', '#', '°', ',', ';', ':', '/', '(', ')', '\'', '"', '*', '+', ' ', '---', '--',chr(133),'<','>',chr(145),chr(146), '\\', chr(253), '²');
	$repl	= array('','','-','','','i','o','a','c','e','e','e','e', 'e', 'e', 'e', 'a', 'a', 'a', 'a', 'u', 'u', 'u', 'u', 'o', 'o', 'c', 'i', 'i', '', '', 'a', 'eur','eur', 'et', 'et', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-','-','','','','-','-', '2', '2');
	$txt	= str_replace($suppr, $repl, $txt);
	$txt	= preg_replace("#\A-*(.*?)-*\z#si","\\1",$txt);
	return strtolower($txt);
}	


Voici le champs de formulaire.php (le formulaire à remplir par l'utilisateur):

Entrez le nom de votre questionnaire : <input type="text" name="nom_qcm"><br />


Voici la récupération de la valeur dans le fichier qui traite les réponses du formulaire :

$nom_du_qcm = "qcm_";
$nom_du_qcm .= $_POST['nom_qcm'].'';


Voila c'est simple si l'utilisateur donne comme nom : bouteille >>
$nom_du_qcm est qcm_bouteille

Mon soucis est que si l'utilisateur entre bouteille.de.vin >>
$nom_du_qcm est qcm_bouteille.de.vin mais lorsque je balance ce resultat dans la bdd le résultat est :

qcm_bouteille.de.vin : nom de table illégal

Voila si vous savez comment faire, merci de m'aider :)
A voir également:

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
11 juil. 2007 à 17:31
Bonjour,

C'est simple.
Remplace ton bout de code où tu récupères la variable par
$nom_du_qcm = "qcm_";
$nom_du_qcm .= protect($_POST['nom_qcm']).'';
Par contre, méfie-toi, il n'y a pas le "." dans la liste des caractères à exclure, il faudrait que tu le rajoutes aussi en modifiant les deux lignes de ton script...

Xavier
0