Mon formulaire de contact... [Resolu] - PHP - Programmation
Marsh Posté le 03-11-2006 à 14:58:24
Quel est le problème ? Message d'erreur ?
sinon y'a une énorme faille de sécurité qui permetterait de transformer le formulaire en script d'envoi de spam à toute la planète... Attention au headers, il faut remplacer les occurrences de \r et \n qui pourraient apparaître dans $nom et $email
Marsh Posté le 03-11-2006 à 15:01:43
Déjà quand je fais "envoyer" meme quand rien remplie rien ne se passe pas de message d'erreur etc puis quand je rmeplis tout rien ne se passe aussi
Marsh Posté le 03-11-2006 à 15:02:49
Ca vient du enctype du formulaire, "text/plain" n'est pas reconnu par le W3C. Enlève l'attribut (et corrige la faille aussi)
Marsh Posté le 03-11-2006 à 15:14:56
parse error a ce niveau là :
Code :
|
j'ai verifié comment se formait la fonction mail et je ne voi pas d'erreur ...
Marsh Posté le 03-11-2006 à 15:20:32
Vire le else, il sert à rien. Remplace-le par un if, et oublie pas l'accolade ouvrante
Marsh Posté le 03-11-2006 à 15:36:26
La fonction de vérification des mail ne marche pas :-(
Marsh Posté le 03-11-2006 à 16:24:12
Donc voilà mon script marche enfin je l'est un peu modifier :
Code :
|
Cependant maintenant je désire intégré les messages d'erreur dans la page du formulaire, j'aimerai savoir comment faire et que faut t-il changer dans <form action="???">
Deplus lorsque l'envoi est effectué j'aimerai que le formulaire disparraisse et a la place le texte "Votre demande a bien été envoyée et sera traitée dans les plus brèves délai" y soit
Merci de bien vouloir m'orienter sur des pistes
Marsh Posté le 03-11-2006 à 16:57:50
Faut pas utiliser exit, faut stocker les messages dans un tableau. Et si y'a une erreur, réafficher le formulaire.
Et t'as pas corrigé la faille
Marsh Posté le 03-11-2006 à 19:56:21
Voilà ce que j'ai fait, mais je ne sais pas terminé , je pense qu'il faut utiliser une boucle for() mais je ne sais pas comment ...
Code :
|
Depluis pour la faille pourriez-vous me l'expliquer plus simplement sans me dire la réponse s'il vous plait
Marsh Posté le 04-11-2006 à 00:05:03
Pour valider rapidement ton formulaire tu fais ca
Code :
|
Tu px reflechir a tes filtres en regardant une table ascii.
T'as le choix entre "tout refuser par defaut" ou "accepter en replacant les erreur".
fonctions utiles:
-preg_match
-preg_replace
-preg_quote
-ob_start(callback)
-strcmp, strlen
Marsh Posté le 04-11-2006 à 00:06:20
putin ca a foiré
Marsh Posté le 04-11-2006 à 10:46:08
analfabete a écrit : Depluis pour la faille pourriez-vous me l'expliquer plus simplement sans me dire la réponse s'il vous plait |
Tu met directement l'email dans les headers :
$headers ='From:'.$email.'\n'; |
Maintenant imagine si quelqu'un, dans $email s'amuse à mettre :
moi@truc\nBcc: spam1@machin.com, spam2@machin.com, spam3@machin.com\n |
Le résultat de ta variable $headers va être :
From: moi@truc.com |
Autrement dit, les headers peuvent êtres modifiés pour rajouter un champ "envoyer aussi à". Et suffit de mettre une jolie liste de prix pour du viagra dans le corps, et on peut ainsi spammer la terre entière via ton formulaire... Et donc être quasimment indétectable...
Alors comme tu peux le voir, il faut rajouter un retour chariot après l'email pour injecter le header Bcc. Solution, virer tous les \n (et les \r), en les remplaçant par un espace, ou par rien
Marsh Posté le 05-11-2006 à 09:58:27
Um voilà après m'etre beaucoup renseigner j'ai entièrement modifier mon code et intégré le dit code a ma page contact.php
cependant j'ai a faire à un dernier problème: lorsqu'une erreur surgit celle-ci s'affiche en haut du form mais tout les bon champs sont effacer
Voilà mon code:
Code :
|
Marsh Posté le 05-11-2006 à 10:51:27
Il faut remettre la valeur dans les champs, c'est normal. Pour le navigateurs, c'est une autre page, il affiche donc les champs tel qu'on lui indique, donc par défaut sans valeurs. Il faut remettre ce qui a été pris dans $_POST dans les input via l'attribut value
Marsh Posté le 05-11-2006 à 15:02:03
J'ai changer les morceau de code de chaque champ de cette manière:
Code :
|
Mais sa ne change rien
Marsh Posté le 05-11-2006 à 15:18:02
Code :
|
Marsh Posté le 05-11-2006 à 15:26:43
A oui daccord je viends de comprendre quelque chose merci
Voilà le sujet enfin résolu merci a tous
Marsh Posté le 03-11-2006 à 14:56:13
Voilà je suis en train de crée un formulaire de contact mais voilà vu mon niveau je bloque un peu
Je ne voi pas quoi faire pour qu'il marche je me suis inspiré de nombreux exemple de formulaire mais ceux-ci parraisse trop compliqué donc j'ai décider de crée mon script.
Voilà ce que j'ai fait:
et voilà le script form_contact.php:
Merci
Message édité par analfabete le 05-11-2006 à 15:27:03