Utiliser une fonction php existante
bezourox
Messages postés
730
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
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 :
Voici le champs de formulaire.php (le formulaire à remplir par l'utilisateur):
Voici la récupération de la valeur dans le fichier qui traite les réponses du formulaire :
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 :)
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','$','î','ô','à','ç','ç','ê','è','é','é', 'è', 'ê', 'ë', 'â', 'à', 'ä', chr(156), chr(220), 'u', 'ù', 'ü', 'ö', 'ô', 'ç', 'ï', 'î', chr(63), '!', '@', '€',chr(128), '&', '&', '%', '#', '°', ',', ';', ':', '/', '(', ')', '\'', '"', '*', '+', ' ', '---', '--',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:
- Utiliser une fonction php existante
- Fonction si et - Guide
- Utiliser chromecast - Guide
- Utiliser une tablette comme ecran pc - Guide
- Utiliser iphone comme webcam - Guide
- Easy php - Télécharger - Divers Web & Internet
1 réponse
Bonjour,
C'est simple.
Remplace ton bout de code où tu récupères la variable par
Xavier
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