Dans le cadre d'un projet de création d'un forum, j'utilise les données d'un formulaire html d'inscription, que je contrôle avec des expressions régulières avant de les envoyer dans une base de donnée.
À cet effet, je souhaite notamment vérifier que le pseudo ne contienne aucun espace avant de confirmer l'envoi du formulaire. Le problème est que la condition que je pose ne fonctionne pas. En effet, il m'est possible d'enregistrer des Pseudo contenant des espaces malgré ma condition. À noter que les autres conditions fonctionnent. À cet effet, la vérification que le pseudo n'a aucun espace se trouve à la 4ème ligne du code ci-dessous. J'inclus quand même l'étape suivante de vérification pour aider la compréhension.
Voici donc le code:
Code : Tout sélectionner
<?php
if(isset($_POST['pseudo']))
{
if(preg_match('#[^ ]#', $_POST['pseudo']))//Controle que le pseudo ne contient aucun espace
{
if(preg_match('#[a-zA-Z0-9.-_]{3,}#', $_POST['pseudo'])) //Contrôle que le pseudo contient 3 à 20 caractères
{
$pseudo = htmlspecialchars($_POST['pseudo']); //Enregistre le pseudo en tant que '$pseudo'
echo $pseudo.'<br/>';
}else
{ $pseudonotok=true;
echo 'Le pseudo doit contenir au moins 3 caractères et aucun espace <br/>';
}
}else
{ $pseudonotok=true;
echo 'Le pseudo doit contenir au moins 3 caractères et aucun espace <br/>';
}
}?>Quelqu'un a t-il une idée de la façon de remplacer ma Regegex "#[^ ]#" pour m'assurer que le mot de passe n'a aucun espace ?
Merci