Page 1 sur 1

PHP et la casse

Posté : 22 févr. 2005, 23:15
par Falbalas
Bonjour,

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

Posté : 23 févr. 2005, 00:24
par ouckileou
pour le contenu d'une variable ?

pourquoi pas passer tout en minuscules ?

Posté : 23 févr. 2005, 00:59
par Falbalas
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. :?

Posté : 23 févr. 2005, 01:12
par Xenon_54
Une seule fonction:
strtolower()

;)

Posté : 23 févr. 2005, 01:18
par ouckileou
donc passer tout en minuscules :)

parceque là je vois pas le soucis sinon

Posté : 23 févr. 2005, 01:32
par crab
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.

Posté : 23 févr. 2005, 11:42
par Falbalas
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.

Posté : 23 févr. 2005, 18:12
par Falbalas
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.

Posté : 23 févr. 2005, 18:40
par Falbalas
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.

Posté : 23 févr. 2005, 20:33
par Falbalas
C'est bon j'ai réussi =;)

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