PHP et la casse

Falbalas
Invité n'ayant pas de compte PHPfrance

22 févr. 2005, 23:15

Bonjour,

Comment faire pour que PHP ignore la casse. Par exemple lorsque l'on doit envoyer un message via un script PHP ? Merci !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 févr. 2005, 00:24

pour le contenu d'une variable ?

pourquoi pas passer tout en minuscules ?

Falbalas
Invité n'ayant pas de compte PHPfrance

23 févr. 2005, 00:59

Non, je voudrais que les utilisateurs se servent indifféremment des majuscules et minuscules. Voici le code qui pose probleme :

Code : Tout sélectionner

$test="^[a-zA-Z0-9]{1,14}$"; if(!ereg($test,$_SESSION['pseudo'])){ header ("location: ../confirmation.php?sid=".session_id()); exit(); }
L'expression régulière n'accepte que les chiffres et les lettres, l'ennui c'est que si je ne respecte pas la casse, le message ne parvient jamais a son destinataire. :?

Mammouth du PHP | 1885 Messages

23 févr. 2005, 01:12

Une seule fonction:
strtolower()

;)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 févr. 2005, 01:18

donc passer tout en minuscules :)

parceque là je vois pas le soucis sinon

Eléphant du PHP | 67 Messages

23 févr. 2005, 01:32

Sinon, il existe pas la possibilité d'ignorer la case en précisant directement dans le motif ?? (en rajoutant un petit 'i' à la fin :?: )

mmmhh après courte reflexion c'est fort probable que ça ne soit possible qu'avec les expreg PCRE ! c'est meme sur...

Donc utilise les PCRE ;-) (en plus, c'est plus rapide)

Bonne nuit.

Falbalas
Invité n'ayant pas de compte PHPfrance

23 févr. 2005, 11:42

Bonjour,

strtolower(); ne marche pas.
Il faut voir qu'il s'agit du controle d'un pseudonyme, et que le message qui est adressé au pseudo ne s'enregistre pas dans la base de données.
Il ne s'enregistre que si on respecte la casse.

Et quant à PCRE je ne sais pas l'utiliser, j'ai cherché la syntaxe et je n'ai trouvé que ceci : i (PCRE_CASELESS)

Mais comment l'adapter a mon expression régulière ?
Merci pour votre aide.

Falbalas
Invité n'ayant pas de compte PHPfrance

23 févr. 2005, 18:12

J'ai trouvé d'ou venait le problème. J'avais fais une erreur dans mon script lors de l'insertion du message.

J'avais tapé la premiere lign à la place de la seconde.

Code : Tout sélectionner

if($pseudonyme==$verif['pseudo_bdd']){ insert ....... } if($pseudonyme=$verif['pseudo_bdd']){ insert ....... }
Des fois il suffit pas de grand chose, mon expression reguliere n'avait rien avoir la dedans. Merci à tous.

Falbalas
Invité n'ayant pas de compte PHPfrance

23 févr. 2005, 18:40

En fait je viens de me rendre compte que la seconde ligne ne veut rien dire pour le if(...

Donc le probleme se situe ici :

Code : Tout sélectionner

if($pseudonyme==$verif['pseudo_bdd'])
Le signe d'égalité verifie la casse.

Falbalas
Invité n'ayant pas de compte PHPfrance

23 févr. 2005, 20:33

C'est bon j'ai réussi =;)

Je me suis servi des verifications SQL pour contourner le probleme.