Partage
  • Partager sur Facebook
  • Partager sur Twitter

autoriser seulement lettre chiffre et "_" pour pseudo

Sujet résolu
21 février 2009 à 16:44:47

Bonjour,

Pour mon site j'ai besoin d'autoriser seulement les lettres, chiffre, et "_", donc j'ai pensé à faire une regex, cependant voila comment la construire car la seule solution qui me vient en tête pour que sa marche serait de lui dire de ne pas accepter tout les caractère spéciaux, mais il n'y en a tellement que cette solution n'est pas du tout envisageable, et je suis sur qu'il existe plus simple..

Si vous pouviez m'aider ce serait simpa, merci d'avance!
  • Partager sur Facebook
  • Partager sur Twitter
21 février 2009 à 16:53:44

Tu fais une regex pour vérifier si le pseudo contient chiffres, lettres et _ et tu vérifies avec une condition du style :

if( !taregex ]

{

echo 'Mauvais pseudo...';

}

Ça doit marcher comme ça je pense ^^ .
  • Partager sur Facebook
  • Partager sur Twitter
21 février 2009 à 17:40:47

J'ai essayer et pour moi, sa a donner sa

<?php
if (!preg_match("#[a-z0-9_]#", $_POST['pseudo']))
		{
			echo '<p>Votre pseudo ne peut contenir que des lettre minuscule, des chiffre et "_".</p>';
		}
		else
		{
			echo '<p>Pseudo ok!</p>';
		}
?>


Mais a chaque fois que je fait un test sa renvoie toujours pseudo ok, sauf si le pseudo ne contient aucune lettre chiffre ou "_", donc sa passe pas car si le pseudo contient un mélange de caractère autorisé et non autorisé sa passe quand même le test, alors tu a une idée de ce que j'ai fait de pas correct dans mon code?
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2009 à 22:13:39

Ou faut t-il le mettre le + car j'ai essayer a différent endroit et sa marche pas
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2009 à 22:53:54

Il faut mettre le + après le second crochet comme ceci:

<?
if (!preg_match("#[a-z0-9_]+#", $_POST['pseudo'])) {

echo '<p>Votre pseudo ne peut contenir que des lettre minuscule, des chiffre et "_".</p>';
}
else
{
echo '<p>Pseudo ok!</p>';
}
?>


Pour éviter qu'il y ait d'autres caractères, il suffit de dire que tu veux que ta chaîne commence et finisse par la classe [a-z0-9_]. Tu n'as qu'à mettre les symboles de début et de fin. ;)
  • Partager sur Facebook
  • Partager sur Twitter
22 février 2009 à 23:39:51

Merci, sa marche!

Pour les intéressé voici le code qui permet de vérifier que le pseudo est correct :

<?php
if (!preg_match("#^[a-z0-9_]+$#", $_POST['pseudo']))
		{
			echo '<p>Votre pseudo ne peut contenir que des lettre minuscule, des chiffre et "_".</p>';
		}
		else
		{
			echo '<p>Pseudo ok!</p>';
		}
?>
  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 19:36:33

Bonjour,

Quelle serait l'expression régulière si je souhaite autoriser uniquement : "chiffres", "lettres", "." ?

Quand j'ajoute le . à la place du _, ma page affiche une erreur.

Une explication ?

Merci par avance

  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 20:40:35

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter