IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] preg_match acceptant apostrophe


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut [Configuration] preg_match acceptant apostrophe
    Bonjour,

    J'ai une fonction de contrôle des caractères pour les libellés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function okTexte($texte)
    {
       	return preg_match("`^[a-zA-Z0-9éèêùûôçàâî°_\-\(\),';:?.!/\%:& ]*$`",$texte);
    }
    Lorsque j'écris : "c'est l'identité"

    J'ai un message d'erreur à cause des " ' ", pourtant j'ai mis que je l'acceptais.
    Est-ce un caractère qui demande quelque précaution ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Perso que je fasse comme tu dis ou comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return preg_match('`^[a-zA-Z0-9éèêùûôçàâî°_\-\(\),\';:?.!/\%:& ]*$`',"c'est l'identité");
    ça marche très bien, ça renvoit "1".
    Ton problème ne vient pas d'autres part?

  3. #3
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Je vais creuser la chose.

    Dès que je retire " ' ", c'est bon et je n'ai que cela comme contrôle.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Est-ce que vous testez des données qui proviennent des méthodes POST/GET/COOKIE ? Si oui, les magic_quotes ne sont pas activées sur votre serveur par hasard ? Il y aurait donc dans ce cas un backslash devant votre apostrophe.


    Julp.

  5. #5
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Il y a bien les magic_quotes d'activés

    Mais je l'ai gère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (!empty($_POST)) 
    	{
    	require_once("../inc/valRetour.php");
    	require_once("../inc/valButton.php");
     
    // Traitement des données en provenance du formulaire pour protection
    $indice=array_keys($_POST);
    foreach($indice as $i)
    {
    	$_POST[$i]=quote_post($_POST[$i]);
    }
    	// Contrôle des champs à mettre à jour
    	require_once("../inc/ctrReqSql.php");
    Dans "quote_post" je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // Protège la variable en entrée de script
    function quote_post($value)
    {
    	if (is_numeric($value))
    	{ 
             return $value;
        }
        elseif(is_array($value))
        {
        	foreach($value as $k => $v)
        	{
        		if (is_numeric($k))
        		{
        			return $value;
            	}
            	$value[$k] = stripslashes($v);
        	}
        }
        else
        {
        	if (get_magic_quotes_gpc())
                $value = stripslashes($value);
       }
       return $value;
    }
    Et mon controle avec le " ' " se fait dans "ctrReqSql.php"

  6. #6
    Membre émérite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // Protège la variable en entrée de script
    function quote_post($value)
    {
    	if (is_numeric($value))
    	{ 
             return $value;
        }
        elseif(is_array($value))
        {
        	foreach($value as $k => $v)
        	{
        		if (is_numeric($k))
        		{
        			return $value;
            	}
            	$value[$k] = stripslashes($v);
        	}
        }
        else
        {
        	if (get_magic_quotes_gpc())
                $value = stripslashes($value);
       }
       return $value;
    }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    // Protège la variable en entrée de script
    function quote_post($value)
    {
         if (is_numeric($value))
    	 return $value;
         elseif(is_array($value))
         {
        	foreach($value as $k => $v)
        	    $value[$k] = quote_post($v);
         }
         else
         {
        	if (get_magic_quotes_gpc())
                $value = stripslashes($value);
         }
         return $value;
    }
    Mais bon je vois pas l'interet de faire ça en début de script hormis celui de perdre du temps... .. .

    @ tchaOo°

  7. #7
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Citation Envoyé par julp
    Est-ce que vous testez des données qui proviennent des méthodes POST/GET/COOKIE ? Si oui, les magic_quotes ne sont pas activées sur votre serveur par hasard ? Il y aurait donc dans ce cas un backslash devant votre apostrophe.


    Julp.
    Bon c'est bien un "\" qui traîne, je vais donc faire un "stripslashes"

    Merci, j'avais mal placé mon echo de contrôle.

  8. #8
    Membre éprouvé Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Par défaut
    Non, j'ai trouvé, je ne sais pas en core comment le résoudre, mais c'est en faite le saut de ligne.

    Je suis dans un champ "text" et en saisissant, je fais "enter" pour sauter une ligne et c'est lui qui n'est pas accepté.

    Pas trouver dans la doc mise en lien par yogui, mais on cherche on cherche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] preg_match vérifier apostrophe
    Par fazpedro dans le forum Langage
    Réponses: 4
    Dernier message: 04/04/2013, 16h11
  2. Réponses: 0
    Dernier message: 08/03/2008, 20h13
  3. Réponses: 2
    Dernier message: 04/10/2006, 13h03
  4. n'accepte pas les apostrophes
    Par flo456 dans le forum Langage
    Réponses: 6
    Dernier message: 18/09/2006, 14h14
  5. Comment configurer linux pour accepter le telnet
    Par youtou dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 03/07/2006, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo