Jump to content

nom client enregistré non valide


Recommended Posts

bonjour a tous
en testant ma boutique j'ai remarqué que lorsque je crée un compte client, les 2 champs nom et prénom acceptent les -(tiret six) donc je peut avoir un client qui a comme nom --- et prénom -- et par suite j'aurais une commande passé par le client 'fantôme' Mr -- --- ce qui est inacceptable sur une boutique Ecommerce comme PS parce que si je veux vendre mes produits en ligne je doit savoir le nom et prénom du client .
j'ai cherché sur le forum mais pas de réponse. L'essentiel pour moi c de ne pas autoriser ce client fantôme a passer des commande c a d que lorsque il tente de passer une commande il sera rejeté automatiquement par le biais d'un petit code de contrôle sur les 2 champs nom et prénom lors de création de la commande: si les deux champs ne contiennent pas des caractères alphabétique =>pas de commande a passer, mais je ne sais pas dans quel fichier exactement je doit le mettre.
un coup de main plz
Cordialement

Link to comment
Share on other sites

Bonjour,

dans un premier temps vous pouvez aussi désactiver ce client ou l'effacer dans votre backoofice.

En général, ce cas ne se présente pas tous les matins.

Sinon le contrôle de l'inscription doit se faire à l'aide de la classe Customer.

Link to comment
Share on other sites

mais ou se font les testes sur les champs du formulaire d'inscription?
comment peut tester si un champ texte contient des chaines de caractère?
j'ai trouvé cette lign dans classes/customer.php lihne 75

protected     $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd',
        'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool');



je crois que c'est là que ce fait le test sur les champ obligatoires

if (!Validate::isName($query) AND !Validate::isEmail($query))
           die (Tools::displayError()); 

       return Db::getInstance()->ExecuteS('
       SELECT c.*
       FROM `'._DB_PREFIX_.'customer` c
       WHERE c.`email` LIKE \'%'.pSQL($query).'%\'
       OR c.`lastname` LIKE \'%'.pSQL($query).'%\'
       OR c.`firstname` LIKE \'%'.pSQL($query).'%\'');



et ici la fonction "isName"
quelqu'un peut me donner un coup de main pour ajouter le contrôle sur le champs nom et prénom

Link to comment
Share on other sites

bonjour
je crois que ce genre de problème n’intéresse personne sauf moi.
oui je sais que c difficile de contrôler les noms des clients lors de l'enregistrement et qu'ont peut supprimés les noms invalides ou les bloqués dans le BO et encore refuser les commandes passées par ces derniers et surtout ceux qui mettent des tirets 6 au lieu des lettres alphabétiques.
Moi je veux qu'il soit automatisé c a d que le client invalide lorsqu'il veut passer une commande il sera bloqué par un message d'erreur et comme ça on aura pas en BO des commandes pour Mr -- (avoir des pseudos a la place c plus acceptable que les -).
Donc je laisse l'inscription libre mais je veux faire le contrôle sur les commandes, par exemple lors de passage de la page du panier (order.php?step=0) vers order.php?step=1 (page adresses de livraisons) c a d dans le bouton suivant mais je ne sais pas exactement les pages appelés lors de passation de le commande par ordre.
qq1 peut me donner un liste des fichier appelé dans le tunnel commande
cordialemnt

Link to comment
Share on other sites

J'ai beau chercher, mais passer des jours pour essayer d'interdire l'inscription à un gars sur terre qui va essayer de créer un compte avec des tirets ou des underscore, franchement je ne comprends.

Il faut trouver le fonction qui valide le nom et la modifier pour vérifier qu'il n'y ai pas un plaisantin qui s'amuse à créer des nom avec des tirets et des underscrores.

vous feriez mieux de faire des test sur la longueur des noms, mais attention dans certains pays, n'avoir que 2 lettres pour le nom ce n'est pas choquant.

Link to comment
Share on other sites

oui j'ai trouvé la fonction isNAme dans le fichier /classes/Validate.php

static public function isName($name)
   {
       return preg_match('/^[^0-9!<>,;?=+()@#"°{}_$%:]*$/ui', stripslashes($name));
   }


et comme je suis débutant en php je trouve pas la fonction qui me permet de vérifier si la chaîne contient des lettres alphabétique ou non
j'ai essayé avec ctype_alpha mais cette fonction accepte un seul argument pas 2

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...