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

Langage PHP Discussion :

Expression rationnelle avec accents, espace et apostrophe. [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut Expression rationnelle avec accents, espace et apostrophe.
    Bonjour,
    J'utilise cette expression rationnelle pour filtrer mes formulaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(ereg('^[a-zA-Z0-9-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ]+$', $utilisateur))
    Mais en plus des accents des lettres et des chiffres je voudrais le tirer, l'espace et l'apostrophe.

    J'ai essayé cela pour les espaces, mais ça accepte tout, maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(ereg('^[a-zA-Z0-9-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ]|[:space:]+$', $utilisateur))
    Savez-vous comment faire s'il vous plait?
    C'est pas parce que j'ai tort que vous avez raison.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    et ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '^[a-zA-Z0-9-àáâãäåòóôõöøèéêëçìíîïùúûüÿñ\'" -]+$'
    ???

    au fait, je serais toi, j'utiliserais plutôt le module PCRE, qui est bien plus puissant : http://fr.php.net/PCRE enfin... c'est aussi vrai que pour le masque que tu utilise, les POSIX sont tout aussi bien
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Bon j'ai réussi avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(ereg('^[a-zA-Z0-9àáâãäåòóôõöøèéêëçìíîïùúûüÿñ -]+$', $utilisateur))
    Par contre pour les apostrophes, vous savez comment faire ?
    C'est pas parce que j'ai tort que vous avez raison.

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    le pattern que je t'ai proposé prend en compte les quotes (simple et doubles)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Merci Swoög
    Là le problème, c'est que si le pseudo comporte des quotes, alors au moment d'aller vérifier dans la base si il existe déjà, ça me sort :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Warning: mysql_num_rows(): supplied argument 
    is not a valid MySQL result resource in 
    /home/scripts/compte/formulaire-filtrage.php on line 319
     
    Warning: mysql_free_result(): supplied argument
     is not a valid MySQL result resource in
     /home/scripts/compte/formulaire-filtrage.php on line 326
    A réception du pseudo, je filtre par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlspecialchars(mysql_real_escape_string($utilisateur)))
    Et ma requête c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT  pseudo  FROM membre WHERE pseudo='".$utilisateur."'

    Une idée du pourquoi de l'erreur ?
    C'est pas parce que j'ai tort que vous avez raison.

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    il y a une erreur dans ta requête, essaie de modifier ton mysql_query avec un or die :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query($query) or die(mysql_error());
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    ça m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    You have an error in your SQL syntax.
     Check the manual that corresponds to your MySQL
     server version for the 
    right syntax to use near 'action d'' at line 1
    Mais ma requête fonctionne très bien d'ordinaire. Sous prétexte que je fais un select sur une variable avec des quotes, hop ça foire ?
    C'est pas parce que j'ai tort que vous avez raison.

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    le ' n'est pas échappé d'où erreur !

    penche toi du côté de addslashes etc...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Ok bien vu,

    En fait je fais :
    A réception des variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    1 //filtrage des variables
    2 $confirmPass=mysql_real_escape_string(htmlspecialchars($_POST[confirmPass]));
    3 // j'enlève les slashes pour pouvoir afficher correctement les données.
    4 $utilisateur=stripslashes(stripslashes($utilisateur));
    Avec le addslashes ça fonctionne bien.
    Mais n'est ce pas une grosse co...... que de faire stripslashes() juste après un htmlspecialchars(mysql_real_escape_string()) ?
    C'est pas parce que j'ai tort que vous avez raison.

  10. #10
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    bah... si XD
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Xd ?
    C'est pas parce que j'ai tort que vous avez raison.

  12. #12
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    XD ~~
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    C'est pas parce que j'ai tort que vous avez raison.

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

Discussions similaires

  1. [RegExp] RegEx avec accents, espaces et caractères de séparation
    Par General_Batton dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/03/2018, 17h31
  2. expressions rationnelles avec rewriterules
    Par gtraxx dans le forum Apache
    Réponses: 2
    Dernier message: 13/12/2011, 13h41
  3. Recherche avec une expression rationnelle
    Par romanegr dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 26/01/2008, 20h01
  4. Copie de String Avec Accents ou Apostrophe
    Par progamer54 dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2007, 10h40
  5. Problème avec une expression rationnelle.
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/06/2006, 20h34

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