Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Je cherche à faire une page d'inscription comme dans le tuto de notre amis Grafikart "Gestion d'un espace membre"

<?php

if(!empty($_POST)){

    $errors = array();

    if(empty($_POST['username']) || !preg_match('/^[a-z0-9_]+$/', $_POST['username'])){
        $errors['username'] = "Votre pseudo n'est pas valide (alphanumérique)";
    }

    debug($errors);

}
?>

Ce que je veux

Normalement grâce à mon système de debug et de vérifications de username il devrait bien me trouver l'erreur.
Si par exemple je met "aze aze" il y a bien une erreur.

Ce que j'obtiens

C'est ce qu'il me fait ! Il me trouve l'erreur, mais même quand le username est correcte (exemple : "azeaze")

Merci d'avance de vos réponses et de votre aide ! :)

5 réponses


Salut, dans ta condition tu demandes : si le champs est vide ou si il est incorrect. Sauf que si il est correct (exemple : "azeaze") il n'est pas vide donc tu as l'erreur

Salut ! :)
D'accooorrrrddd ! Pourtant quand je suis bien le tuto et que j'écris pareil que lui dans la case "username" du navigateur, je devrais avoir comme lui, une erreur quand je met un espace ou un autre caractère spécifique.
Qu'est-ce que je dois changer alors ? :/
Et merci de ta réponse ;)

Oui tiens :

<h1>S'inscrire</h1>

<form action="" method="POST">

    <div class="form-group">

        <label for="">Pseudo</label>
        <input type="text" name="username" class="form-control"/>

    </div>

    <div class="form-group">

        <label for="">Email</label>
        <input type="text" name="username" class="form-control"/>

    </div>

    <div class="form-group">

        <label for="">Mont de passe</label>
        <input type="password" name="password" class="form-control"/>

    </div>

    <div class="form-group">

        <label for="">Confirmez votre mot de passe</label>
        <input type="password" name="password_confirm" class="form-control"/>

    </div>

    <button type="submit" class="btn btn-primary">M'inscrire</button>

</form>

A ni rien comprendre vraiment, j'ai enlever tout les '' de username puis je les ais remises. J'ai raffraichis ma page php, je rentre rien dans la case "Pseudo" il me trouve bien l'erreur, je rentre "aze aze aze" il me trouve l'erreur puis "aze" il me dit que c'est correct. Je n'ai pas tout compris mais bon, ça fonctione désormais ^^
Merci de vos réponses ! :)

Oui en effet, quand je met "aze" dans ma case "Pseudo" et rien dans "Email" il me trouve bien une erreur, mais si je met dans les deux "aze" il me dit que c'est bon. Je viens de changer en 'email' et désormais mon code fonctionne à merveille !
Merci beaucoup de ton aide ! :)