Merci pour votre réponse.
Je contrôle que les champs doivent être remplis et je reçois quand même des spams, exemple ci-dessous:
Nom: Annotationsdpc
E-Mail de contact:
[email protected]
N° de téléphone: 81669141867
Commentaires: Libraries of the Carolingian era). IN
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// On vérifie que le champ "Pot de miel" est vide
if(isset($_POST['raison']) && empty($_POST['raison'])){
// On vérifie que tous les champs sont remplis
if(
isset($_POST['nom']) && !empty($_POST['nom']) &&
isset($_POST['sujet']) && !empty($_POST['sujet']) &&
isset($_POST['email']) && !empty($_POST['email']) &&
isset($_POST['message']) && !empty($_POST['message'])
){
// On "nettoie" le contenu
$nom = strip_tags($_POST['nom']);
$sujet = strip_tags($_POST['sujet']);
$email = strip_tags($_POST['email']);
$message = htmlspecialchars($_POST['message']);
// Ici vous devrez traiter les données
$msg = "Nom:\t$_POST[nom]\n";
$msg .= "E-Mail de contact:\t$_POST[email]\n";
$msg .= "N° de téléphone:\t$_POST[phone]\n";
$msg .= "Commentaires:\t$_POST[message]\n";
$msg .= "Champ pot de miel:\t$_POST[raison]\n";
$recipient = "[email protected]";
$subject = "Formulaire de reservation site";
$mailheaders = "From: $_POST[email]\n";
$mailheaders .= "Reply-To: $_POST[email]\n\n";
mail($recipient, $subject, $msg, $mailheaders);
header('Location:http://monnomdedomaine.be/merci.html');
}
}
}else{
http_response_code(405);
echo "Méthode non autorisée";
}
J'ai ajouté un champ "pot de miel" en caché. Le spammer ne le remplit pas, mais je me fais néanmoins spammer (le champ "pot de miel" n'est pas rempli, mais le formulaire est quand même envoyé):
Nom: Annotationsdpc
E-Mail de contact:
[email protected]
N° de téléphone: 81669141867
Commentaires: Libraries of the Carolingian era). IN
Champ pot de miel:
Je me dis donc que le robot ne passe pas via mon formulaire, mais via le fichier de traitement.php directement ...
J'essaye donc de supprimer les accès en direct au fichier traitement.php.
Si je saisis ceci (
http://www.paysdessaveurs.be/traitement0604.php) dans l'url, j'ai bien le message ci-dessous:
Méthode non autorisée.
Merci pour vos "lumières".
[quote=@rthur post_id=471271 time=1649284044 user_id=26]
+1, ce n'est pas une méthode de sécurisation fiable et il risque d'y avoir des effets de bord.
Si tu veux sécuriser correctement ton formulaire, il faut filtrer les variables reçues en n'autorisant que ce que tu attends.
Ça tombe bien PHP a des fonctions pour celà avec des filtres tout fait :
https://php.net/filter_var ou https://php.net/filter_input
Et ensuite :
- Filtres de validation : https://www.php.net/manual/fr/filter.filters.validate.php
- Filtres de nettoyage : https://www.php.net/manual/fr/filter.filters.sanitize.php
[/quote]
Merci pour votre réponse.
Je contrôle que les champs doivent être remplis et je reçois quand même des spams, exemple ci-dessous:
Nom: Annotationsdpc
E-Mail de contact:
[email protected]N° de téléphone: 81669141867
Commentaires: Libraries of the Carolingian era). IN
[PHP]<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// On vérifie que le champ "Pot de miel" est vide
if(isset($_POST['raison']) && empty($_POST['raison'])){
// On vérifie que tous les champs sont remplis
if(
isset($_POST['nom']) && !empty($_POST['nom']) &&
isset($_POST['sujet']) && !empty($_POST['sujet']) &&
isset($_POST['email']) && !empty($_POST['email']) &&
isset($_POST['message']) && !empty($_POST['message'])
){
// On "nettoie" le contenu
$nom = strip_tags($_POST['nom']);
$sujet = strip_tags($_POST['sujet']);
$email = strip_tags($_POST['email']);
$message = htmlspecialchars($_POST['message']);
// Ici vous devrez traiter les données
$msg = "Nom:\t$_POST[nom]\n";
$msg .= "E-Mail de contact:\t$_POST[email]\n";
$msg .= "N° de téléphone:\t$_POST[phone]\n";
$msg .= "Commentaires:\t$_POST[message]\n";
$msg .= "Champ pot de miel:\t$_POST[raison]\n";
$recipient = "
[email protected]";
$subject = "Formulaire de reservation site";
$mailheaders = "From: $_POST[email]\n";
$mailheaders .= "Reply-To: $_POST[email]\n\n";
mail($recipient, $subject, $msg, $mailheaders);
header('Location:http://monnomdedomaine.be/merci.html');
}
}
}else{
http_response_code(405);
echo "Méthode non autorisée";
}[/PHP]
J'ai ajouté un champ "pot de miel" en caché. Le spammer ne le remplit pas, mais je me fais néanmoins spammer (le champ "pot de miel" n'est pas rempli, mais le formulaire est quand même envoyé):
Nom: Annotationsdpc
E-Mail de contact:
[email protected]N° de téléphone: 81669141867
Commentaires: Libraries of the Carolingian era). IN
[b]Champ pot de miel: [/b]
Je me dis donc que le robot ne passe pas via mon formulaire, mais via le fichier de traitement.php directement ...
J'essaye donc de supprimer les accès en direct au fichier traitement.php.
Si je saisis ceci (http://www.paysdessaveurs.be/traitement0604.php) dans l'url, j'ai bien le message ci-dessous:
Méthode non autorisée.
Merci pour vos "lumières".