Salut !
J'ai un formulaire de contact sur mon site http://www.fjcd.ch/index.php?page=contact que j'ai sécurisé avec du javascript pour qu'il vienne une erreur si un des champs est vide et avec un captcha en php.
Le problème est que je reçois des formulaires vides de temps en temps...
Je me demande si quelqu'un utilise ma page envoi.php pour m'envoyer ce spam, j'aimerais donc restreindre l'accès à cette page pour qu'elle s'exécute UNIQUEMENT quand on vient de ma page de contact.
Est-ce possible ?
EDIT : J'ai essayé de vérifier d'abord si isset(mes variables $_POST) avant d'envoyer... Je verrai si il y a déjà une amélioration
-->Message édité par lognaume le 30/10/2008 20:38:08<--
C'est logique.
Si tu utilises isset, c'est pour demander si tes variables existent.
Or, meme si elles sont vides, les variables $_POST['machin'] existent.
Tu as deux manières de procéder :
1. tu utilises isset et tu vérifies qu'elles ne sont pas vides :
if (isset($_POST['machin']))
{
if ($_POST['machin'] != NULL)
{
}
}
2. tu utilises !empty :
if (!empty $_POST['machin'])
bonne chance !
-->Message édité par master-maul le 30/10/2008 16:13:01<--
NE JAMAIS VERIFIER LES FORMULAIRE UNIQUEMENT EN JAVASCRIPT.
C'est pourtant une règle de base assez évidente : JavaScript est sur le client, donc on peut faire ce qu'on veut avec, tu ne contrôle rien du tout avec JavaScript.
Il faut donc toujours faire des vérifications sur le serveur. Absolument toujours !
D'autant plus que les robots (dont Google Crawler) n'ont pas JavaScript mais remplissent et envoient les formulaires...
Et sinon pour vérifier que le champs n'est pas vide c'est ceci qu'il faut faire :
if(!empty($_POST['machin'])) {
// envoie du form...
}
Oui c'est exactement ce que j'ai fait maintenant ^^
J'avais pas pensé aux robots au début... j'avais juste pensé aux utilisateurs...
Mais vu le spam mnt c'est mieux.
En plus y'a un captcha donc c'est pas évident pour un robot xD