Problème pour récupérer du texte avec accent
Résolu
Helheim
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Helheim Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Helheim Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous
Voilà j'ai un problème avec un formulaire et des expressions régulières, je précise que je ne suis pas très fort pour adapter celle-ci.
Le problème est le suivant
J'ai une base de données Mysql sur laquelle est présente une table concernant des activités d'entreprise, je veux pouvoir soit modifier les informations déjà présentent soit en enregistrer de nouvelles.
Pour enregistrer une nouvelle activité j'ai donc créer une première page php avec un formulaire
Ce formulaire envoie les informations sur la page "page_creation_2.php" sur laquelle je fais certaines vérifications avec des expressions régulières et c'est là ou je me mélange certainement les pinceaux
Alors tout se passe bien si je ne met pas d'accentuation dans mes zones de texte car lorsque que j'en met la page me renvoie "Vérifiez les champs obligatoires."
je suppose qu'il y a peut-être un problème avec mes expressions régulière et l'accentuation donc si on pouvait me donner une coup de main pour régler ce problème d'accentuation ça serait super sympa
De plus je pense qu'au niveau sécurité, je ne suis pas au top avec ce code donc si vous pouviez aussi me donner un coup de main pour ce problème aussi.
merci par avance à ceux qui vont se pencher sur le sujet en espérant avoir été clair dans mes explications
Voilà j'ai un problème avec un formulaire et des expressions régulières, je précise que je ne suis pas très fort pour adapter celle-ci.
Le problème est le suivant
J'ai une base de données Mysql sur laquelle est présente une table concernant des activités d'entreprise, je veux pouvoir soit modifier les informations déjà présentent soit en enregistrer de nouvelles.
Pour enregistrer une nouvelle activité j'ai donc créer une première page php avec un formulaire
<form action="page_creation_2.php" method="post" name="create_new_actvity" target="_parent"> <fieldset> <legend>Titre</legend> <input type="text" size="30" name="Nom_activite" value="" /> </fieldset> <fieldset> <legend>Date (Inscrire la date sous la forme anglaise Année-Mois-Jour)</legend> <input type="text" size="10" name="Date_activite" value="" /> </fieldset> <fieldset> <legend>Contenu</legend> <textarea name="Text_activite" cols="50" rows="10"></textarea> </fieldset> <input type="hidden" name="ID_entreprise" value="<?php echo $ident; ?>" /> <input name="envoi" type="submit" id="envoi" onclick="" value="envoyer" /> </form>
Ce formulaire envoie les informations sur la page "page_creation_2.php" sur laquelle je fais certaines vérifications avec des expressions régulières et c'est là ou je me mélange certainement les pinceaux
if(isset($_POST['Nom_activite']) && eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", $_POST['Nom_activite'])) $nomanimeq = htmlspecialchars($_POST['Nom_activite']); else $nom_activite=""; if(isset($_POST['Date_activite'])) $dateanimeq = htmlspecialchars($_POST['Date_activite']); else $date_activite=""; if(isset($_POST['Text_activite'])&& eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", $_POST['Text_activite'])) $contenu = htmlspecialchars($_POST['Text_activite']); else $contenu=""; if(isset($_POST['ID_entreprise'])) $numeq=$_POST['ID_entreprise']; else $ident=""; // On vérifie si les champs obligatoires sont remplis correctement if(empty($nom_activite) OR empty($date_activite) OR empty($contenu) OR empty($ident) ) { echo 'Vérifiez les champs obligatoires.'; } else{ # appel de la fonction de connection à la base mysql_link = Connection(); //insertion des données dans la table TABLE_ACTIVITE $query = "INSERT INTO TABLE_ACTIVITE (ID_activite, ID_entreprise, Nom_activite, Date_activite, Text_activite) VALUES('', '$ident', '$nom_activite', '$date_activite', '$contenu')"; mysql_query ($query, $mysql_link) or die (mysql_error()); echo 'Votre animation a bien été enregistrée.'; mysql_close(); } ?>
Alors tout se passe bien si je ne met pas d'accentuation dans mes zones de texte car lorsque que j'en met la page me renvoie "Vérifiez les champs obligatoires."
je suppose qu'il y a peut-être un problème avec mes expressions régulière et l'accentuation donc si on pouvait me donner une coup de main pour régler ce problème d'accentuation ça serait super sympa
De plus je pense qu'au niveau sécurité, je ne suis pas au top avec ce code donc si vous pouviez aussi me donner un coup de main pour ce problème aussi.
merci par avance à ceux qui vont se pencher sur le sujet en espérant avoir été clair dans mes explications
A voir également:
- Problème pour récupérer du texte avec accent
- Recuperer message whatsapp supprimé - Guide
- E avec accent minuscule - Guide
- Récupérer mon compte facebook désactivé - Guide
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
2 réponses
essai avec des accolades comme ca :
if(isset($_POST['Nom_activite']) && eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", $_POST['Nom_activite']))
{
$nomanimeq = htmlspecialchars($_POST['Nom_activite']);
}
else $nom_activite="";
sinon tu peux essayé avec un booléen :
if.....
{
.......;
$test=true;
}
else $test=false;
et au moment de ta vérifacation finale
if ($test==false)
{
echo 'Vérifiez les champs obligatoires.';
}
il ne te mets pas d'erreur dans tes vérifications d'hortographe (eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", )??
if(isset($_POST['Nom_activite']) && eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", $_POST['Nom_activite']))
{
$nomanimeq = htmlspecialchars($_POST['Nom_activite']);
}
else $nom_activite="";
sinon tu peux essayé avec un booléen :
if.....
{
.......;
$test=true;
}
else $test=false;
et au moment de ta vérifacation finale
if ($test==false)
{
echo 'Vérifiez les champs obligatoires.';
}
il ne te mets pas d'erreur dans tes vérifications d'hortographe (eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", )??
Je viens de me rendre compte que j'avais fait des erreurs lorsque que j'ai copié mon code, je vais corriger celles-ci
if(isset($_POST['Nom_activite']) && eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", $_POST['Nom_activite'])) $nom_activite = htmlspecialchars($_POST['Nom_activite']); else $nom_activite=""; if(isset($_POST['Date_activite'])) $date_activite = htmlspecialchars($_POST['Date_activite']); else $date_activite=""; if(isset($_POST['Text_activite'])&& eregi("^([:alnum:1]|[:space:1]|[:punct:1])*$", $_POST['Text_activite'])) $contenu = htmlspecialchars($_POST['Text_activite']); else $contenu=""; if(isset($_POST['ID_entreprise'])) $ident=$_POST['ID_entreprise']; else $ident=""; // On vérifie si les champs obligatoires sont remplis correctement if(empty($nom_activite) OR empty($date_activite) OR empty($contenu) OR empty($ident) ) { echo 'Vérifiez les champs obligatoires.'; } else{ # appel de la fonction de connection à la base mysql_link = Connection(); //insertion des données dans la table TABLE_ACTIVITE $query = "INSERT INTO TABLE_ACTIVITE (ID_activite, ID_entreprise, Nom_activite, Date_activite, Text_activite) VALUES('', '$ident', '$nom_activite', '$date_activite', '$contenu')"; mysql_query ($query, $mysql_link) or die (mysql_error()); echo 'Votre animation a bien été enregistrée.'; mysql_close(); } ?>
Bonjour,
Après avoir été sur différents sites pour régler mon problème, j'ai fait cette regex qui à l'air de fonctionner.
Avec ça je récupère bien les accents et la ponctuation de ce qui est inscrit dans le formulaire.
ATTENTION A CAUSE DU BBCode JE SUPPOSE LA CLASSE [:punct:] CI DESSUS DEVRAIT ÊTRE ENTOURÉE DE DOUBLE CROCHET.
Après avoir été sur différents sites pour régler mon problème, j'ai fait cette regex qui à l'air de fonctionner.
if (preg_match("#^([a-zA-Z0-9éèàêâùïüëç -]|:punct:)+$#", $_POST['Nom_activite'])) { $nom_activite=$_POST['Nom_activite']; } else { $nom_activite=""; }
Avec ça je récupère bien les accents et la ponctuation de ce qui est inscrit dans le formulaire.
ATTENTION A CAUSE DU BBCode JE SUPPOSE LA CLASSE [:punct:] CI DESSUS DEVRAIT ÊTRE ENTOURÉE DE DOUBLE CROCHET.
sinon, non je n'ai pas d'erreur dans l'orthographe et la ponctuation sur les différents test que j'ai effectués, seul l'accentuation me pose un problème alors il y a bien la fonction pour retirer les accents seulement ce n'est pas très cool car aprés soit je laisse un affichage sur mon site des activités sans accents soit je remet moi même à la main tous les accents dans la base de données ce qui n'est pas le but recherché
surtt qu'apres tu fais :
Oui c'est une erreur lorsque que j'ai inscrit mon message, c'esy bien sur ceci