Bonjour à tous,

Je viens d'acquérir un template complet en CSS et je n'ai aucun problème pour le personnaliser.
Le formulaire est parfait dans son design et les champs disponibles me conviennent. Je cherche depuis un moment déjà sur le net, j'ai acheté un bouquin sur le php et le sql pour mieux comprendre. Mais pas de réponses...
Je vois beaucoup de posts sur la mise en forme ou sur des requêtes spécifiques, rien concernant l'activation du formulaire.

Je souhaite simplement savoir où intégrer mon adresse mail afin que le formulaire fonctionne.

Merci d'avance pour vos futurs commentaires constructifs
Modifié par lapkay (22 Oct 2015 - 10:30)
Bonjour,

Ta question n'est pas assez précise.
 où intégrer mon adresse mail afin que le formulaire fonctionne

Quel formulaire ? Que cherches tu à faire exactement ?

As-tu un code à nous fournir ?
Merci pour ton intervention.

Comme je l'ai indiqué, j'ai acquis un template complet, tout y est, dont le formulaire.
Je souhaite simplement que le mail me parvienne lorsqu'on appuie sur le bouton "send" du formulaire.
J'espère être clair.
Merci d'avance.

voici un bout du code :

<form class="form-horizontal" action="mailto:moi@domaine.com">
<div class="form-group">
<input type="email" class="form-control" placeholder="Your Name..." maxlength="40" />
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your Email..." maxlength="40" />
</div>
<div class="form-group">
<textarea class="form-control" style="height: 130px;" placeholder="Write down your message..."></textarea>
</div>
<button type="submit" class="btn btn-orange pull-right">SEND</button>
</form>
mailto c'est surtout utiliser pour ouvrir le logiciel de messagerie de l'utilisateur pour que celui-ci envoie un mail.

Dans ton cas, tu dois :
- modifier ta balise <form> en <form method="POST" action ="send.php" class="form-horizontal">
- modifier ton formulaire pour ajouter les name="" afin de recevoir les valeurs de ton formulaire
https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/transmettre-des-donnees-avec-les-formulaires
- créer un fichier send.php et dans ce fichier, tester / traiter les valeurs renvoyer par POST, si elles sont ok envoyer le formulaire par mail :
https://openclassrooms.com/courses/e-mail-envoyer-un-e-mail-en-php
prototype de la fonction mail : http://php.net/manual/fr/function.mail.php

Si tu es en local, tu dois aussi activer la fonction mail et configurer les fichiers correspondant à ton serveur - tape envoyer un mail avec wampserver par exemple si tu es sur wampserver

Voilà, y-a du boulot - mais c'est pas trop compliqué, avec les tuto tu devrais t'en sortir.
Si tu as un pb reviens vers nous
Merci beaucoup, je vais tester cela dès demain.
Pour info, je peux mettre mon site online, du coup pas de souci pour les tests d'envoi.

Je te tiens informé.

Merci encore Smiley biggrin
Bonjour,

Voilà, du bon et du "à améliorer". Je me suis appuyé sur les tutos que tu m'as envoyé. Mais il reste encore des zones d'ombre.

La bonne nouvelle est que l'envoi fonctionne. La requête part bien et je reçois le message dans ma boite mail.

Des soucis demeurent encore :
1° le contenu du message que je reçois ne comporte que le "sujet" du message, en l'occurence : "vous avez un message". Le nom, l'adresse mail et le contenu du message ne me parviennent pas.
2° dans le champ "your name", seule une adresse mail valide m'est demandé, idem pour le champ "your email".
3° lorsque j'appuie sur le bouton "send", mon navigateur bascule sur le lien "send.php et donc sur une page blanche.

upload/60208-formulaire.jpg

Voilà un bout du code html de mon formulaire :

<form method="POST" action ="send.php" class="form-horizontal">
<div class="form-group">
<input type="email" class="form-control" placeholder="Your Name..." maxlength="40" />
</div>
<div class="form-group">
<input type="email" class="form-control" placeholder="Your Email..." maxlength="40" />
</div>
<div class="form-group">
<textarea class="form-control" style="height: 130px;" placeholder="Write down your message..."></textarea>
<div name="name","address","message">
</div>
<button type="submit" class="btn btn-orange pull-right">SEND</button>
</form>

</div>

Je reste optimiste grace à ce forum...
Merci d'avance
Salut,

t'es <input> doivent toutes contenir un "name" unique, exemple :

<input type="text" name="corp_message"/>



je ne comprend pas ta div
<div name="name","address","message">
</div>

qui est inutile

une fois que tu as fais cela, dans send.php tu peux récuprer les valeurs

$corp_message = $_POST['cors_message']; // entre crochet dans le $_POST = le name de l'input


pour éviter la page blanche, tu peux faire une rédirection, mais à la fin de send.php

  header('Location: la/page/que/tu/souhaite');      
  exit();

à mettre bien à la fin.
Bon, j'ai testé et je suis toujours dans le schwarz...

Pour le retour à la page, pas de souci. Par contre je ne récupère toujours pas les infos. J'ai testé plusieurs emplacements pour " <input type="text" name="corp_message"/> "
Parfois, ça m'ajoutait des champs dans le formulaire; champs qui ne fonctionnaient pas d'ailleurs.

upload/60208-formulaire.jpg

Je poste à suivre une photo de mon send.php

Merci encore
nannananan tu confond la ! Smiley smile

dans ton HTML tu dois obligatoirement avoir un attribut "name" pour chaque input ! et il faut leur donner un nom différent pour chaque (sans espace)!

ensuite dans ton PHP tu confond aussi !
$corp_message doit accueillir UNE seul variable !
la tu écrase corp message avec
$corp_message = $_POST['name'];
$corp_message = $_POST['adresse'];
$corp_message = $_POST['message'];

a la fin bah $corp_message = adresse. il faut créer d'autre variable pour name et adresse.

ensuite : tu dois déclarer et assigner
$corp_message = $_POST[''];
AVANT d'envoyer le mail();

______

exemple maintenant avec du code :

Part 1 HTML )

chaque input avec un name
<input type="text" name="subject"/>
<input type="text" name="adresse"/>
<input type="text" name="message"/>

(3 name ici)

Part 2 PHP )

en premier lieu, stocker les infos !

$sujet = $_POST['subject'];
$adresse = $_POST['adresse'];
$corp_message = $_POST['message'];


dans $_POST ce sont mes name html

et à la fin la fonction

mail()


mais franchement, tu devrais suivre un tuto sur les base en HTML PHP
parce que déjà, le php devrai même pas compiler, dans ta fonction mail() tu as utilise des variables qui n'existe pas ! je dis cela pour qu'après tu puisse faire tes ptites modifs
tranquille.

bref, bon courage Smiley langue
Modifié par JENCAL (19 Oct 2015 - 17:25)
Bonjour,

Je suis tout à fait d'accord avec toi concernant les bases html/php. Comme je le disais en introduction, j'ai acheté "PHP & MySQL pour les Nuls". Malheureusement, rien dans ce bouquin ne répond à mon problème de formulaire de contact Smiley decu . Je suis infographiste de formation (Illustrator, Photoshop, Quark XPress, etc.), donc tout l'aspect technique des sites m'est étranger. Jusqu'à maintenant, j'utilise Web Acappella. Il permet de se concentrer sur le design en le laissant traiter des aspects techniques. Mais il a ses limites...

Je comprends que je ne couperais pas à une formation de base si je souhaite modifier un template....

Je vais travailler sur tes derniers conseils.

Merci encore.

A suivre...
Modifié par lapkay (20 Oct 2015 - 10:26)
Bonjour à tous,

Avec l'aide de vos services et un peu d’opiniâtreté, j'ai fini par y arrivé !
Voici le code du "send.php", il pourra toujours servir à quelqu'un.

<?php
$mail = 'nom@mail.com'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Message de : \n".$_POST['name']."\n". "Email : \n".$_POST['address']."\n".$_POST['message']."\n";
$message_html = "<html><head></head><body>".$message_txt."</body></html>";
//==========

//=====Lecture et mise en forme de la pièce jointe.
$fichier = fopen("image.jpg", "r");
$attachement = fread($fichier, filesize("image.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========

//=====Création de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========

//=====Définition du sujet.
$sujet = "Informations";
//=========

//=====Création du header de l'e-mail.
$header = "From: \"societe\"<nom@mail.com>".$passage_ligne;
$header.= "Reply-to: \"societe\" <nom@mail.com>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========

//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========

$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;

//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========

//=====On ferme la boundary alternative.
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========

$message.= $passage_ligne."--".$boundary.$passage_ligne;
//==========

//=====Récupération des infos
//$name = $_POST['name'];
//$address = $_POST['address'];
//$corp_message = $_POST['message'];
// mail()
//==========

//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);

//==========

?>

Merci encore aux contributeurs de ce post, sans lesquels je serais encore en galère.

Sujet résolu Smiley biggrin Smiley biggrin