Effectivement 'faut vivre avec son temps preg_match c'est ca la technologie
Personellement je vais aps me risquer à tenter de corriger ton code, t'utilises des facons d'écrire beaucoup trop différentes des miennes, simplement pour ta condition moi je ferais tout bétement ca:
Personellement je vais aps me risquer à tenter de corriger ton code, t'utilises des facons d'écrire beaucoup trop différentes des miennes, simplement pour ta condition moi je ferais tout bétement ca:
Code PHP :
<?php
if (preg_match("#^[ 'A-Za-z]+$#", $_POST['pseudo']))
{ echo "OK"; }
else
{ echo "Caractère interdit"; }
(testé et approuvé)
J'ajouterais que mettre un "+" plutot qu'une "*" dans ta regex t'évite de mettre une condition isset sur $_POST['pseudo'], puisque s'il n'est pas set il renverra une chaine vide et une chaine vide ne correspond pas à cette regex. Enfin bon si tu veux faire un message d'erreur "Entrez un pseudo" il va falloir garder le isset, mais bon laisser le + éventuellement.
Pour ta regex je sais pas comment marche ereg, m'enfin moi on m'a appris que les regex doivent être délimitées, en plus des guillemets. Personellement j'utilise le "#" comme t'aura pu le constater (et comme conseillé sur le SdZ ^^).
Enfin j'te suggére d'ajouter quelques autres caractères dans ta regex, tels que "0-9", "_", "-" (en début ou fin de classe uniquement), "\." (le point il faut l'échapper) et éventuellement quelques accents. Ca me défrise mais malheureusmeent ce genre de caractère plait beaucoup
Une piste si ca ne marche toujours pas, essaye de remplacer $_POST['pseudo'] dans ce que je te donne par "stripslashes($_POST['pseudo'])", j'ai déja remarqué que certaines configurations de serveurs ont tendance à slasher automatiquement les informations envoyées en POST, et vu que tu n'autorises pas le slash ca peut entrainer des problèmes si tu teste l'apostrophe.
Puisque je suis là j'en profite, dans tes requêtes SQl tu mets le login entre apostrophes, si un de tes visiteurs prend un login avec une apostrophe t'aura une jolie erreur MYSQL (sans parler des possibilités de hackage bien entendu). 'faudrait p'tet addslasher ou utiliser des guillemets doubles ...