Cirice Posted October 12, 2023 Share Posted October 12, 2023 Bonjour, no comment sur la version :-). C'est un vieux PS 1.5 actuellement cible de pirates qui s'en donnent à coeur joie avec le formulaire de contact malgré le captcha. J'ai ajouté des règles dans ContactController.php pour empêcher l'envoi de messages contenant http, wwww, .net et .top et cela semble fonctionner correctement. Ensuite, avec une requête SQL j'ai supprimé les 50000 mails frauduleux. A première vue, ça marche. Mais j'ai constaté qu'il y en avait aussi avec des lettres dans le champ phone, qui n'est donc pas protégé. Dans Validate.php, la variable utilisée par isPhoneNumber est $number. Alors que la variable dans ContactController.php, c'est $phone. Dans ContactController.php, à la liste des conditions j'ai ajouté else if (($phone = trim(Tools::getValue('phone'))) && !Validate::isPhoneNumber($phone)){ $this->errors[] = Tools::displayError('Format de téléphone invalide'); } pour le cas où la case est remplie et que ce n'est pas le bon format mais maintenant cela me dit que le format est invalide, que le tél soit bon ou pas. Dans Validate.php la fonction est public static function isPhoneNumber($number) { return preg_match('/^[+0-9. ()- +]*$/', $number); } J'ai donc remplacé $phone par $number dans ContactController.php, également dans la condition si le tél est vide. Ca marche pour ça. Mais quoi que je mette comme n° de tél, ça me dit chaque fois qu'il est invalide. Quelle est l'erreur que je n'arrive pas à voir ?? Merci d'avance pour vos lumières ! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now