pyjama11 Posté(e) le 5 septembre 2015 Posté(e) le 5 septembre 2015 Bonjour, je travaille actuellement sur la conception d'un site web, et j'aimerais, sur ce même site, placer un formulaire avec plusieurs champs de saisie, et que quand on appuie sur un bouton envoyer les "résultats" de ce formulaire me soient envoyés par mail. Je me suis beaucoup documenté sur internet, j'ai réussi à mettre en place le formulaire en l'intégrant dans ma page HTML et mon CSS, et j'ai repris un scirpt php. Seulement, lorsque je clique sur envoyer, je suis bien renvoyé sur la page demandée mais je ne reçois aucun mail ! Voici mon formulaire intégré dans ma page HTML : <form method=POST action =formmail.php role="form"> <div class="col-md-6 col-sm-6"> <div class="form-group"> <input type="text" class="form-control" id="name" placeholder="Nom"> </div> <div class="form-group"> <input type="email" class="form-control" id="email" placeholder="Email (faculatatif)"> </div> <div class="form-group"> <input type="text" class="form-control" id="phone" placeholder="Téléphone" )> </div> </div> <div class="col-md-6 col-sm-6"> <div class="form-group"> <input type="date" class="form-control" id="date" placeholder="Date"> </div> <div class="form-group"> <input type="time" class="form-control" id="time" placeholder="Heure"> </div> </div> <div class="col-md-12 col-sm-12"> <div class="form-group"> <textarea class="form-control" id="message" placeholder="Votre message" rows="5"> </textarea> </div> <div class="text-center"> <button type="submit" class="btn">ENVOYER ! </button> </div> </div> </form> Et en formmail.php j'ai ceci : <?php $T0 = "monadresse@mail.com"; $h = "From: " . $TO; $message = ""; while (list($key, $val) = each($HTTP_POST_VARS)) { $message .= "$key : $val\n"; } mail($TO, $subject, $message, $h); Header("Location: index.html"); ?> J'ai passé du temps à consulter des exemples de formulaires de ce genre mais je n'arrive pas à comprendre ce qui cloche avec le mien ! En plus j'ai bien fait Panneau de Configuration -> Notification, puis activer les notifications par mail ! Voilà je vous remercie d'avance pour votre aide et vos réponses ! :-) 0 Citer
Fenrir Posté(e) le 6 septembre 2015 Posté(e) le 6 septembre 2015 (modifié) Ton problème ne vient pas de la fonction mail, mais de $HTTP_POST_VARS qui a été déprécié (rendu obsolète) avec php 4.1 (en 2001 !!!), il ne faut plus l'utiliser Comme je suis sympa : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8" /> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta name="Description" content="un simple formulaire" /> <title>formulaire</title> </head> <body> <form method="post" action="test.php"> <label><b>Votre nom : </b></label><input type="text" name="nnom" id="inom" value="" autocomplete="off" placeholder="votre nom" /><br /> <label><b>Votre prénom : </b></label><input type="text" name="nprenom" id="iprenom" value="" autocomplete="off" placeholder="votre prénom" /><br /> <input type="submit" name="accept" value="Soumettre" /></div> </form> <?php if ( (isset($_POST['nnom']) && $_POST['nnom'] != "") || (isset($_POST['nprenom']) && $_POST['nprenom'] != "") ){ echo '<p>$_POST[\'nnom\']=' . $_POST['nnom'] . "</p>\n"; echo '<p>$_POST[\'nprenom\']=' . $_POST['nprenom'] . "</p>\n"; //on peut maintenant faire des choses avec les données //... }else{ echo 'le formulaire est vide !'; } ?> </body> </html> edit : J'ai ajouté un peu de logique au php et je t'ai fait un html en règle Modifié le 6 septembre 2015 par Fenrir 1 Citer
gaetan.cambier Posté(e) le 6 septembre 2015 Posté(e) le 6 septembre 2015 2001.... ca me rajeunit pas tout ca :s 1 Citer
pyjama11 Posté(e) le 6 septembre 2015 Auteur Posté(e) le 6 septembre 2015 (modifié) Merci pour cette rapide réponse ! Fenrir je te remercie d'avoir pris le temps de m'avoir mis en place quelque chose de si complet ! Par contre au risque de passer pour une cruche, comment je dois adapter mon php du coup ? Parce que dans mon html dans le formulaire je récoltais un nom, un mail, un téléphone, une date, un horraire, et enfin un message. Ce qui veut dire que ça donnerait ça (en m'inspirant du tien) <?php if ( (isset($_POST['name']) && $_POST['name'] != "") || (isset($_POST['email']) && $_POST['email'] != "") || (isset($_POST['phone']) && $_POST['phone'] != "") || (isset($_POST['date']) && $_POST['date'] != "") || (isset($_POST['time']) && $_POST['time'] != "") || (isset($_POST['message']) && $_POST['message'] != "") ){ echo '<p>$_POST[\'name\']=' . $_POST['name'] . "</p>\n"; echo '<p>$_POST[\'email\']=' . $_POST['email'] . "</p>\n"; echo '<p>$_POST[\'phone\']=' . $_POST['phone'] . "</p>\n"; echo '<p>$_POST[\'date\']=' . $_POST['date'] . "</p>\n"; echo '<p>$_POST[\'time\']=' . $_POST['time'] . "</p>\n"; echo '<p>$_POST[\'message\']=' . $_POST['message'] . "</p>\n"; }else{ echo 'le formulaire est vide !'; } ?> Mais une fois que j'ai tout ça, je m'y prends comment pour l'envoyer par mail ? Avec la fonction mail() ? Je n'arrive pas à comprendre comment structurer le php pour arriver à mes fins. Ce que je ne comprends pas non plus c'es pourquoi le php se trouve dans le HTML ? Ca fonctionne comme ça ? Car j'ai appris que ça se faisait dans un fichier à part. Voilà je m'excuse si ce que je demande peut sembler ridicule mais là je suis vraiment bloqué... Merci d'avance EDIT : entre temps j'ai trouvé un autre script php plus récent : <?php $TO = "monadresse@me.com"; $h = "From: " . $TO; $message = ""; while (list($key, $val) = each($_POST)) { $message .= "$key : $val\n"; } mail($TO, $subject, $message, $h); Header("Location: index.html"); ?> Je reçois bien le mail ! Mais il est vide... je continue mes recherches... ! EDIT 2 : trouvé !!! Dans mon html pour désigner une donnée à saisir je mettais id="nom" ou id="mail" ! J'ai changé ça par name=nom ou name=mail ! Tout fonctionne ! Merci Fenrir de m'avoir aidé à me mettre à jour avec mon php 2001 lol !! Modifié le 6 septembre 2015 par pyjama11 0 Citer
Fenrir Posté(e) le 6 septembre 2015 Posté(e) le 6 septembre 2015 Le php n'est pas dans le html, c'est le html qui est dans le php Normalement il faudrait séparer la partie applicative de la partie affichage, mais je pense que tu n'as pas les bases pour faire du MVC, alors j'ai fait simple Je te recommande d'apprendre comment tout ça fonctionne plutôt que d'aller prendre des codes au hasard sur le net (c'est dangereux, un mauvais code peut permettre à un pirate d'accéder à 100% de ton synology). Un bon site pour commencer : https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql 1 Citer
pyjama11 Posté(e) le 6 septembre 2015 Auteur Posté(e) le 6 septembre 2015 Tu penses que ce n'est pas très raisonnable que je laisse mon site comme ça ? 0 Citer
Fenrir Posté(e) le 6 septembre 2015 Posté(e) le 6 septembre 2015 Si cette page est accessible depuis Internet, il ne faudra pas attendre longtemps avant que : ton syno se mette à ramer ta boite mail soit saturée ton ip soit blacklistée par ton hébergeur de mail ton fai t’envoie un message d'avertissement pour spam 1 Citer
pyjama11 Posté(e) le 7 septembre 2015 Auteur Posté(e) le 7 septembre 2015 Enfin ce sera à petite échelle, y'aura que quelques emails par jour je pense, pas plus ! Certains jours y'aura peut être même pas de mails ! 0 Citer
Fenrir Posté(e) le 7 septembre 2015 Posté(e) le 7 septembre 2015 Enfin ce sera à petite échelle, y'aura que quelques emails par jour je pense, pas plus ! Certains jours y'aura peut être même pas de mails ! jusqu'à ce qu'un petit pirate trouve ton ip ... 1 Citer
gaetan.cambier Posté(e) le 7 septembre 2015 Posté(e) le 7 septembre 2015 jusqu'à ce qu'un petit pirate trouve ton ip ... pirate est un terme trop élégant pour cela 0 Citer
pyjama11 Posté(e) le 7 septembre 2015 Auteur Posté(e) le 7 septembre 2015 et avec un simple code HTML et le code php que j'ai trouvé, il peut avoir accès à 100% de mon syno et en faire ce qu'il veut ? 0 Citer
Fenrir Posté(e) le 7 septembre 2015 Posté(e) le 7 septembre 2015 et avec un simple code HTML et le code php que j'ai trouvé, il peut avoir accès à 100% de mon syno et en faire ce qu'il veut ? oui 1 Citer
gaetan.cambier Posté(e) le 7 septembre 2015 Posté(e) le 7 septembre 2015 bien que rien ne soit impossible, le + gros risque c'est qd meme d'avoir + un risque de millier d'email + surcharge du syno qui suivra pas les requetes 1 Citer
pyjama11 Posté(e) le 7 septembre 2015 Auteur Posté(e) le 7 septembre 2015 décidément le monde est bien fait lol ^^ ! Merci du coup je vais y réfléchir à deux fois... Et sinon au niveau de la surcharge j'aurais pas de souci, mon outlook se bloque au bout d'une cinquantaine de messages envoyés à la suite dans une très petit intervalle de temps.. En tout cas merci à vous tous pour votre aide Sujet résolu ! 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.