///////////////////// // // // FORMIT 3.01 // // // // Olivier CORDOU // // Le 25/08/2004 // ///////////////////// Je me suis aidé pour monter ce script de Formit 1 fait par Rudy Nooyen .... Email:nooyen@home.nl. Site:http://members.home.nl/nooyen/formit/ N.B: L'auteur précise que son script est gratuit à condition de garder ses notes, et que si vous trouvez qu'il mérite une rémunération vous pouvez prendre contact avec lui pour en discuter.... Et également de la classe mail de Bobe à http://www.phpcodeur.net qui est extrêmement complète Ce fichier (class.mailer.php) contient toutes les directives pour la configurer et en cas de problèmes merci de contacter l'auteur de ce script. Nouveautés par rapport à FORMIT 2.2: -contrôles des champs en PHP ce qui facilite le travail de contrôle, est plus rapide et beaucoup plus fiable que le javascript qui peut être désactivé sur les navigateurs de vos visiteurs. -bouton d'envoi qui ne permet qu'un seul envoi (javascript) -compatibilité totale du script avec les principaux navigateurs (Internet Explorer, Mozilla toutes versions...) -quelques bugs rectifiés dont celui des fichiers fantômes -association du formulaire avec des scripts que je trouve très pratique pour la saisie: *retape.js qui en fonction de la commande javascript qu'on met permet de retaper un champ entièrement en majuscules ou seulement la première lettre. *patience.js qui ne permet qu'un seul envoi et qui affiche en attendant un petit message. J'utilise également une feuille de style (style.css) pour gérer l'ensemble des couleurs et je vous conseillerais fortement de faire de même pour votre site. Objectif du script: 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é votre formulaire... De plus vous pourrez joindre des pièces jointes (2 maximum)... Tout est customisable,les couleurs par feuille de style,les champs du formulaire,la vérification des champs,les mails reçus et envoyés (html possible),les redirections après envoi ,connaître les caractéristiques du visiteur (IP,navigateur,l'heure d'envoi...)etc... Rajout de la fonction reply qui permet de répondre comme tout autre message reçu dans sa boîte aux lettres au formulaire reçu que ce soit par le visiteur ou le webmaster.... Attention: des problèmes ont été constatés (erreurs) sur les serveurs suivants: IFRANCE.COM ONLINE.FR Ne vous affolez pas, il suffit de modifier le fichier config à la ligne spécifiée C'est dû à la configuration de votre serveur qui n'accepte pas le signe { rajouté dans la version seule de ereg du PHP4... Caractéristiques: -Php -css -javascript N.B:Votre serveur doit accepter la fonction mail () ou email ()pour que le script fonctionne (Ce n'est pas le cas de Free par exemple) 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}} font référence aux noms des champs du formulaire.... Dans ce cas là, c'est le téléphone qui sera introduit. Vous n'avez qu'à supprimez celles qui ne vous intéressent pas et en rajoutez d'autres en suivant l'exemple. (Ne vous trompez pas sur le nom du champ sinon vous recevrez un champ vide...) Vous pouvez enlevez tous les contrôles mais réfléchissez bien aux conséquences possibles!! De plus le contrôle sur l'email du visiteur est très important car si il se trompe vous ne pourrez pas lui répondre et il ne recevra pas l'email de remerciement.... La vérification porte sur un email de type xxx@xxx.xx Vous n'avez qu'à regarder le script pour comprendre comme il est construit ;-) Pour les contrôles de champs regardez le fichier form.php, il est commenté. Pour un contrôle d'écart de jour, vous pouvez procéder comme ceci: // -- DATE 1 -- $date = $date1; $jour = substr($date,0,2); // on récupère le jour $mois = substr($date,3,2); // puis le mois $annee = substr($date,6,4); // et l'annee ... // on aurait également pu plutot utiliser // list($jour,$mois,$annee) = explode("/",$date); // on transforme la date en timestamp $timestamp = mktime(0,0,0,$mois,$jour,$annee); /// -- DATE 2 -- $datee = $date2; $jour1 = substr($datee,0,2); // on récupère le jour $mois1 = substr($datee,3,2); // puis le mois $annee1 = substr($datee,6,4); // et l'annee ... $maintenant=mktime(0,0,0,$mois1,$jour1,$annee1); // -- CALCUL -- // on calcule le nombre de secondes d'écart entre les deux dates $ecart_secondes = $maintenant - $timestamp; // puis on tranforme en jours (arrondi inférieur) $ecart_jours = floor($ecart_secondes / (60*60*24))+1; $D=date("d/m/y"); $jour2 = substr($D,0,2); // on récupère le jour $mois2 = substr($D,3,2); // puis le mois $annee2 = substr($D,6,4); // et l'annee ... $D2=mktime(0,0,0,$mois2,$jour2,$annee2); // enfin on affiche le résultat if($timestamp<$D2){ echo "La date de début est inférieure à celle d'aujourd'hui!!"; } elseif($ecart_jours<0 ){ echo "La date de fin est inférieure à celle du début !!"; } Bien entendu,vous pouvez mettre du html dans ces fichiers mais pensez que le visiteur qui reçoit ses emails sur un serveur de courrier comme wanadoo par exemple ne pourra peut-être pas le lire!! Tout le monde ne sert pas de logiciels spécifiques comme Outlook Express !! N.B:Les liens sont toujours lus... Si vous testez le formulaire en local, ne vous inquiétez pas de voir 3 ">, c'est que le Php n'est pas lu par votre éditeur ou navigateur....C'est normal en local(sauf avec EasyPHP). N.B: Le formulaire que je vous donne, est la base de ce qui me sert pour récupérer des numéros cryptés de cartes bancaire ainsi que des informations pour des réservations (autre formulaire)... Je vous donne le script concerné avec exemple fonctionnement (dossier carte bancaire) qui vérifie la validité du numéro de la carte (version javascript ) , mais vous me déchargez de toute responsabilité en cas de de piratage de numéros de carte bancaire.... J'utilise ce script sur un serveur sécurisé SSL 128 bits!! Même si le numéro est crypté,le piratage est possible sur un serveur non sécurisé... Je vous aurais prévenu, seul un serveur sécurisé 128 bits doit récupéré des données aussi sensibles... J'espère que ce script vous plaira.... Bon PHP !!! Pour tout problème n'hésitez à m'écrire.... Je vous répondrais! CORDOU Olivier Le 16/08/2004 http://relaisdelle.com olivier.cordou@wanadoo.fr