Formulaire

Fermé
allan - 13 janv. 2008 à 12:07
 allan - 15 janv. 2008 à 00:22
Bonjour,

je viens ici j'ai besoin d'aide pour un formulaire.

En passant par un script par exemple est-il possible de réaliser un formulaire, ou le visiteur inscrit son prénom et son email, pour y recevoir un fichier proposé sur mon site en piece jointe à un remerciement par mail automatique ?

plus précisement:
Récupérer par Php un formulaire dont tous les champs sont vérifiés
et remercier par un mail automatique le visiteur qui aura rempli
et envoyé mon formulaire...
De plus lui joindre en piece jointe le fichier proposé sur mon site avec le mail de remerciement.

est-ce que quelqu'un aurait une idée ?

Merci d'avance

27 réponses

Voici un des fichies du script apppelé formit à configurer:

<?
if (@$_GET["action"]=="destroy") {
// on a demandé à tout supprimer
setcookie("name",$nom,time()-3600*24*365);
setcookie("prename",$prenom,time()-3600*24*365);
setcookie("email",$email,time()-3600*24*365);
setcookie("sujet",$sujet,time()-3600*24*365);
setcookie("Commentaires",$Commentaires,time()-3600*24*365);
header("Location: ".$_SERVER["PHP_SELF"]."");
die();
}
$HTTP_USER_AGENT=$_SERVER['HTTP_USER_AGENT'];
$dated = date("d/m/Y H:i:s"); //Date et heure d'envoi du formulaire
$IP = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR );
if( preg_match('/^(\d+\.\d+\.\d+\.\d+)/', getenv('HTTP_X_FORWARDED_FOR'), $match) )
{
$private_ip = trim($match[1]);

/*
* Liens utiles sur les différentes plages d'ip :
*
* @link https://www.commentcamarche.net/informatique/technologies/26233-adresse-ip-principe-utilisation-ecriture/
* @link http://www.usenet-fr.net/fur/comp/reseaux/masques.html
*/

//
// Liste d'ip non valides
//
$pattern_ip = array();
$pattern_ip[] = '/^0\..*/'; // Réseau 0 n'existe pas
$pattern_ip[] = '/^127\.0\.0\.1/'; // ip locale

// Plages d'ip spécifiques à l'intranet
$pattern_ip[] = '/^10\..*/';
$pattern_ip[] = '/^172\.1[6-9]\..*/';
$pattern_ip[] = '/^172\.2[0-9]\..*/';
$pattern_ip[] = '/^172\.30\..*/';
$pattern_ip[] = '/^172\.31\..*/';
$pattern_ip[] = '/^192\.168\..*/';

// Plage d'adresse de classe D réservée pour les flux multicast et de classe E, non utilisée
$pattern_ip[] = '/^22[4-9]\..*/';
$pattern_ip[] = '/^2[3-5][0-9]\..*/';

$visitor_ip = preg_replace($pattern_ip, $visitor_ip, $private_ip);
}
$hote= gethostbyaddr($IP); //son FAI
$navigateur= $HTTP_USER_AGENT; // Son navigateur

$url=""; // url absolue de votre site avec le dossier d'installation du formulaire sans/ à la fin
$root="upload"; // Nom du dossier des images uploadés sans / à la fin
$from="monemail@yahoo.fr"; // adresse email de l'emetteur du message
$from1="Mon site"; // Nom du site emetteur du message
$to="destinataire@yahoo.fr"; // adresse email d'envoi de ce formulaire
$subject="Mon sujet"; // sujet du mail reçu, mettre $subject=$sujet pour avoir le sujet mis par le visiteur
$urgent="2"; // message très urgent=1, 2 pour urgent ,3 pour normal, 4 pour basse ou 5 pour très basse
$upload="3"; // Nombre de pièces jointes que vous autorisez avec click="0", laissez vide pour que le visiteur choississe avec $click="1"
$templatex="1"; // 1 pour envoyer un email de remerciement au visiteur, 0 pour ne pas l'envoyer
$controle="1"; // 1 pour contrôler que les champs sont bien remplis, 0 pour ne rien contrôler

$F_TEMPLATE ="template.txt"; // Modèle de l'email envoyé au webmaster
$F_TEMPLATE2="template2.txt"; // Modèle de l'email envoyé au visiteur

$F_SENT ="merci.php"; //Page de redirection si les mails ont bien été envoyés
$F_NOTSENT ="nomerci.php"; //Page de redirection si les mails n'ont pas été envoyés

$max_size="400000 "; // Taille maximale des fichiers uploadés en octets ...

$copy="0"; // 1 copie du formulaire ,0 pas de copie
$copie_email="monemail@wanadoo.fr"; // Copie vers cet email, pour ajouter des emails , les séparer par >,<
$carbone="bcc"; // Copie invisible ou cc pour une copie visible dans l'entête
$notify="0"; //notification de lecture de l'email (1 activé, 0 désactivé)
$php="{{"; // Si vous recevez des emails avec les champs suivants {{exemple}}, mettez \{\{
$php1="}}"; // et \}\}

$detruire="1"; // Si vous désirez garder une copie des fichiers joints dans upload, mettez 0
$joint="attachment"; // Pour insérer directement les images dans le mail que vous recevrez, mettez inline à la place
$joint1="attachment"; // Pour insérer directement les images dans le mail du visiteur, mettez inline à la place

$cookie="1"; // si vous voulez que les informations (nom, prénom,email) soient sauvegarder dans un cookie mettez 1

$erreur="1"; // En cas d'erreur d'envoi, vous recevrez un email....sauf si vous mettez 0
$emailerror="olivier.cordou@wanadoo.fr"; // adresse email d'envoi du mail d'avertissement en cas d'erreur d'envoi
$erreursujet="Erreur sur ton formulaire "; // Sujet du mail d'erreur

$formulaire="1"; // 1 pour activer l'envoi de pièces jointes ou 0 et $detruire=0, juste pour uploader des fichiers

$NOM1=" le NOM, "; //balises qui gérent les contrôles en affichant les messages d'erreur.
$PRENOM1=" le PRENOM, ";
$SUJET1=" le SUJET, ";
$EMAIL1=" l\' EMAIL, ";
$COMMENTAIRE1=" le MESSAGE, ";
$remplir=" remplir ";
$correct=" correctement !!!";
$MERCI1=" Merci de";
$NOMA=" Mettez votre nom !!";
$PRENOMA=" Mettez votre prénom !!";
$EMAILA="Mettez votre email !!";
$COMMENTAIREA=" Mettez un message!!";
$SUJETA="Mettez un sujet!!";
$PATIENCE="Patientez pendant l'envoi...";

?>

L'explication avec le script:

Procédure d'installation en 8 étapes:

-1)Dézippez le script sur votre disque dur.

-2)modifiez le fichier config.php en suivant les instructions...

-3)Créez un dossier upload en CHMOD 777(sur votre serveur) dans le dossier contenant les fichiers du formulaire.

-4)Modifiez à votre convenance, les couleurs du formulaire et des
autres pages à l'aide de la feuille de style style.css...
(Vous pouvez rajouter une image de fond,en remplaçant dans la feuille de style
la balise background par celle-ci: background-image: url("adresse de votre image");

-5)Vous pouvez modifiez les champs des formulaires, les supprimer ou en rajouter
mais ATTENTION pensez à modifier le fichier form.php en conséquence...

-6)Modifiez les emails que vous recevrez et que le visiteur recevra en éditant les fichiers
template.txt et template2.txt.....
Le premier est celui que vous recevrez et le second celui que le visiteur recevra....
C'est facile à éditer c'est juste du texte et les balises en PHP contenues¨comme:
{{phone}}

Je comprend pas ce qu'est le fichier chmod 777 ou doit-on le créer?

Je suis un peu perdu dans les explications..
1
> Récupérer par Php un formulaire dont tous les champs sont vérifiés

Vérifiés par qui et comment ?
Si c'est vérifié en JavaScript, il faut considérer que ce n'est pas vérifié car on peut désactiver JavaScript ou faire une page qui reprend le formulaire mais qui n'inclut pas le JavaScript.

Il faudra donc dans tous les cas faire des vérifications en PHP, mais ce n'est pas la mer à boire...


> et remercier par un mail automatique le visiteur qui aura rempli et envoyé mon formulaire...

Oui, pas de soucis.


> De plus lui joindre en piece jointe le fichier proposé sur mon site avec le mail de remerciement.

Ce fichier est figé (une seul et unique fichier indépendamment du contenu du formulaire) ?


> est-ce que quelqu'un aurait une idée ?

Oui, mais si tu pouvais donner le formulaire (éventuellement en maquillant certaines infos si tu as peur qu'on te pirate...), ça serait plus facile. Sinon, il faudrait au moins le nom de tous les champs, leurs types et les vérifications à faire dessus.

Exemple :
- champ "age" : il s'agit de l'age du capitaine, c'est un entier qui doit être plus grand que 18 et plus petit que 130.
- champs "email" : il s'agit d'une adresse e-mail. Il faut vérifier qu'elle est bien de forme correcte (blablabla@domaine)

Raph
0
Raph,

Vérifiés par qui et comment ?
Vérification que tous les champs soient remplis et aussi l'existence de l'email en php.

et remercier par un mail automatique le visiteur qui aura rempli et envoyé mon formulaire...
Oui c'est une option que je désire appliqué.

Ce fichier est figé (une seul et unique fichier indépendamment du contenu du formulaire) ?
Figé ? que voulez-vous dire??? en fait je voudrai que la personne recoit le fichier (ce sera un petit fichier pdf) dans le mail de remerciement en piece jointe.

> est-ce que quelqu'un aurait une idée ?
Oui biensur que je peux donner le formulaire mais c'est un script comment dois-je faire ?

Je désire seulement 3 champs: prénom ou nom peu importe, email, et envoyer.

Pouvez-vous m'aider s'il vous plais

Allan
0
je crois que je dois mal me faire comprendre, alors je résume plus clairement.

Un formulaire avec 3 champs prénom, email, envoyer .

Une fois tous les champs remplis une réponse automatique de remerciement est envoyé la personne, ainsi qu'un fichier joint a ce mail (fichier pdf).

Caractéristique du formulaire:

-Vérification de tous les champs soient remplis
-Vérification de l'existence de l'email
-confirmation et reception de l'email inscrit dans ma boite
-remerciement par mail automatique à l'inscription du formulaire

-une piece jointe au mail de remerciement ( fichier pdf )

Je cherche je cherche et je ne trouve pas la solution je suis nul en php peut-on me guider merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Personne pour m'aider?? SOS svp merci
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
13 janv. 2008 à 19:07
Au début de cette discussion, je croyais comprendre, mais avec ce fichier, je ne comprends plus rien...

Je vais répondre au dernier message de ce fil de discussion comme si ce message n'avait été posté ;-)

Raph
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
13 janv. 2008 à 19:09
> je crois que je dois mal me faire comprendre, alors je résume plus clairement.

Oui, c'est confus...
En fait, il manque un peu de contexte à tout ça !

As-tu une URL pour ton site, ce serait sans doute plus simple à comprendre, non ?
0
Enfin quelqu'un merci raph, et bien en fait sur le site il y aura un fichier pdf proposé au visteur ok!!!

Si un visiteur est intéressé par ce fichier, pour le recevoir il devra remplir dans un petit formulaire son prénom
puis son adresse email et pour finir cliquer sur envoyer ce qui fait schématiquemet ceci:

- votre prénom [ le premier champ à remplir ]

- Votre e-mail [ le deuxieme champ à remplir ]

et pour finir [ envoyer]

Voila donc 3 champs dans cet ordre

Une fois le formulaire rempli par un visiteur le php devera vérifié:

- Si tous les champs sont bien rempli
- Si l'email est existent
- Evoyer un message de remerciement au visiteur avec le fameux fichier pdf en piece jointe
- m'envoyer aussi un mail confirmant l'inscription d'un visiteur


Voila suis-je plus clair et cela est-il réalisable raph ??

Merci
0
Raaaaaaaaaaaaaaaaph une réponse ?????? stp merci
0
Personne ne propose de solution à mon problème ?
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
13 janv. 2008 à 22:06
Bon, je réponds ;-)

Désolé pour cette attente, mais aujourd'hui j'ai pas mal apporté d'aide sur ce forum...

Raph
0
please help me
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
13 janv. 2008 à 22:52
Dans un formulaire HTML, chaque champ a un nom (name="le_nom_du_champ').

Je vais supposer que :
- le champ contenant le prénom s'appelle "prenom"
- le champ contenant l'e-mail s'appelle "email"

On se fiche du nom du champ "Valider".
<?php

$prenom = $_REQUEST['prenom'];
$email = $_REQUEST['email'];

$mon_email = 'from-email@r4f.org'; # L'adresse e-mail pour savoir qui s'est inscrit
$sujet = 'voici votre PDF'; # Sujet du mail a envoyer au nouvel inscrit
$message = "Bonjour et merci de vous être inscrit sur mon site, t

voici le fichier PDF blablabla"; # Message du mail envoyé avec le PDFi

$file = '../../../sondage/scripts/calendar/doc/reference.pdf'; # nom du fichier PDF




# Partie pour valider l'adresse e-mail 
$atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)

$regex = '/^' . $atom . '+' .   // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' .         // Suivis par zéro point ou plus
                                // séparés par des caractères autorisés avant l'arobase
'@' .                           // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' .  // Suivis par 1 a 63 caractères autorisés pour le nom de domaine
                                // séparés par des points
$domain . '{2,63}$/i';          // Suivi de 2 a 63 caractères autorisés pour le nom de domaine


if (preg_match('/\A\s*\Z/', $prenom)) { // test du prenom
        die('Il manque le prénom');
} elseif (!preg_match($regex, $email)) { // test de l'adresse e-mail
        die( "L'adresse e-mail $email est invalide");
}


# Si on en est la, le prénom et l'adresse e-mail sont valides
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= $message;
$msg .= "\r\n";


$fp = fopen($file, "rb");
$attachment = fread($fp, filesize($file));
fclose($fp);

$attachment = chunk_split(base64_encode($attachment));


$msg .= "--$boundary\r\n";
$msg .= "Content-Type: application/pdf; name=\"$file\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";


mail($email, $sujet, $msg,
     "Reply-to: $mon_email\r\nFrom: $mon_email");
mail($mon_email, "Nouvel inscrit: $prenom", "\n\nVoici un nouvel inscrit:$prenom dont l'adresse est $email\n\n" ,
     "Reply-to: $mon_email\r\nFrom: $mon_email");

?>
Merci de vous etre inscrit, <?=$prenom ?>, nous venons de vous envoyer le fichier PDF par e-mail.





J'ai repompé du code de http://www.asp-php.net/ressources/bouts_de_code.aspx?id=83 pour l'envoi de mail avec attachement et de https://atranchant.developpez.com/code/validation/ pour la validation d'e-mail.


J'ai fait un test avec cette page de formulaire :

<html>
<head> 
</head>
<body>
<form action="email.php" method="POST">
Prenom : <input type="text" name="prenom"><br/>
E-mail : <input type="text" name="email"><br/>
<input type="submit">
</form> 
</body> 
</html>




(donc le premier script s'appelle email.php dans mon cas)


Raph
0
Merci beaucoup raph quel travail, je vais tester ca et je vous tiendrai au courant plus tard je pense que vous devez en avoir plein les bottes de mes questions.
0
juste une question raph je dois rentrer la partie php entre quelles balises ?

et pour le html je rentre ceci ?

<html>
<head>
</head>
<body>
<form action="email.php" method="POST">
Prenom : <input type="text" name="prenom"><br/>
E-mail : <input type="text" name="email"><br/>
<input type="submit">
</form>
</body>
</html>

Merci pour tout

Allan
0
Raph question peut etre bête dois-je envoyer quelque chose sur le serveur ?
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
14 janv. 2008 à 10:26
Oui, il faut envoyer les 2 fichiers, le fichier PHP s'appellera (par exemple) email.php et l'autre, plus court, s'appellera (par exemple) contact.htm

Si les fichiers ne sont pas sur le serveur, rien ne va changer dans le comportement du site...

Raph
0
Bonsoir ok raph j'envoi ca sur le serveur et je vous tiens au courant, si j'ai compris j'ai juste à insérer dans le php mon adresse email dans cette partie $mon_email = 'from-email@r4f.org' et c'est tout .
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
14 janv. 2008 à 19:36
Il faut configurer tout ces trucs là dans un premier temps:
$mon_email = 'from-email@r4f.org'; # L'adresse e-mail pour savoir qui s'est inscrit
$sujet = 'voici votre PDF'; # Sujet du mail a envoyer au nouvel inscrit
$message = "Bonjour et merci de vous être inscrit sur mon site, t

voici le fichier PDF blablabla"; # Message du mail envoyé avec le PDFi

$file = '../../../sondage/scripts/calendar/doc/reference.pdf'; # nom du fichier PDF



Et puis ensuite, mettre le contenu de la page sur laquelle l'utilisateur attérit une fois qu'il a rempli le formaire. Tout à la fin de la page, modifier celà :

Merci de vous etre inscrit, <?=$prenom ?>, nous venons de vous envoyer le fichier PDF par e-mail.

0
ok j'ai configuré et sauvegarder les fichiers aux extensions email.php et contact.html.
j'ai plus qu'a envoyé tous ca sur le serveur, j'ai un blog sur blogger de google et je sais pas comment trouvé le serveur.
0