Aller au contenu

formulaire PHP qui ne fonctionne pas


Messages recommandés

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 ! :-)

 

 

 

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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 :&nbsp;</b></label><input type="text" name="nnom" id="inom" value="" autocomplete="off" placeholder="votre nom" /><br />
	<label><b>Votre prénom :&nbsp;</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é par Fenrir
Lien vers le commentaire
Partager sur d’autres sites

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é... :mellow: 

 

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é par pyjama11
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.