> Tous les forums > Forum des Webmasters
 Formulaire d'abonnement avec formmail sur OVHSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
yannos123
  Posté le 09/03/2016 @ 16:54 
Aller en bas de la page 
Petit astucien

Bonjour,

J'ai beau écumer les forums, à la lecture du sujet, je ne trouve pas de solution.

J'ai un petit formulaire sur mon site hébergé sur OVH avec juste trois cases à remplir (un nom, un email, un message) et un bouton envoyer.

Voici le code :

<form method=POST action=mail.php>
<input type="text" placeholder="Votre nom">
<input type="text" class="email" placeholder="Votre email">
<textarea placeholder="Votre message" required=""></textarea>
<input type="submit" value="Envoyer">
</form>

J'ai installé mail.php à la racine du site.

Voici son code :

<?php
$TO = "contact@monemail.pro ";

$h = "From: " . $TO;
$h .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$h .='Content-Transfer-Encoding: 8bit';
$message = "";
$subject= "Renseignement"; //il manque le sujet !

while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
//test si bien envoyé
if(mail($TO, $subject, $message, $h)){

Header("Location: merci.html"); //renvoi vers la page merci

}else{

echo "pb d'envoi du mail";
}

?>

**********************************************************

Je reçois bien l'email mais vide et avec juste une entête à rallonge du genre :

"contact@monemail.pro Content-Type: text/plain@20gp.ovh.net"; <charset=@20gp.ovh.net>; <iso-8859-1@20gp.ovh.net>

Si quelqu'un peut m'aider, grand merci !

Publicité
Anonyme
 Posté le 09/03/2016 à 18:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir,

J'ai eu le même problème chez ovh il y a quelques années

Je me suis fabriqué un autre script qui fonctionne a merveille et que je vais t'envoyer par le forum. Je te fais cela demain matin si tu est d'accord.

yannos123
 Posté le 09/03/2016 à 19:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
SW-30190 a écrit :

Bonsoir,

J'ai eu le même problème chez ovh il y a quelques années

Je me suis fabriqué un autre script qui fonctionne a merveille et que je vais t'envoyer par le forum. Je te fais cela demain matin si tu est d'accord.

Ah merci, c'est cool !

Bonne soirée.

Anonyme
 Posté le 10/03/2016 à 09:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Donc comme prévu voici mon formulaire sous PHP

Il se compose de 3 fichiers PHP que tu mettras sous la racine du site (WWW) et du formulaire lui-même avec les différents champs.

Footer.php et Header.php qui sont vides avant et apres l'envoie (tu crée 2 fichiers vides au format php).

envoie.php qui contient tous les éléments et que tu peux modifier à ta guise. Il fait également les tests si le champ est vide.

<?
include("header.php");
include("config.php");

$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$sonmail = $_POST["sonmail"];


if(empty($prenom) OR empty($sonmail) OR empty($urlsite) OR empty($commentaire))
{
print '<center><b><font face="verdana" size="4">Erreur , champs manquants :</b></font></center><br><br>';
if(empty($prenom)) { print '<center><font face="verdana" size="2">Vous n\'avez pas saisi votre prénom !<br>'; }
if(empty($sonmail)) { print '<center>Vous n\'avez pas saisi votre adresse email !<br>'; }
if(empty($nom)) { print '<center>Vous n\'avez pas saisi votre nom !<br>'; }
print '<p align="center"><a href="javascript:history.back()">Retour</a>'; include("footer.php"); exit;
}
else
{
$sonmail = $_POST['sonmail'];
$copie = $_POST["copie"];
$point = strpos($sonmail,".");
$arobas = strpos($sonmail,"@");
if($point == '')
{
echo '<center><br>Votre adresse email est invalide<br><p align="center"><a href="javascript:history.back()">Retour</a><br>'; include("footer.php"); exit;
}
elseif($arobas == '')
{
echo '<center><br>Votre adresse email est invalide<br><p align="center"><a href="javascript:history.back()">Retour</a><br>'; include("footer.php"); exit;
}
else
{
if($copie == "oui" ) {
Mail("$sonmail","$sujet","$m1","from: $from");
Mail("$votremail","$sujet","$m2","from: $votremail");
echo "<center>Votre message a bien été envoyé !<br><br>Un email de confirmation a été envoyé à l'adresse : $sonmail<br><br>Merci pour votre message , A bientôt . L'équipe $votresite";exit;
} else {
}
echo "<center>Votre message a bien été envoyé !<br>Merci pour votre message , A bientôt . L'équipe $votresite";
{
Mail("$votremail","$sujet","$m2","from: $votremail");
}
include("footer.php");
}
}
?>

Et le formulaire lui même soit dans une page HTML soit dans une page PHP que tu peux modifier également à ta guise.

<html>

<head>

<title>formulaire</title>
</head>

<body>
<form name="mxform" method="post" action="envoi.php">
<p>&nbsp;</p>
<div align="center">
<center>
<table border="0" cellpadding="0" width="100%">
<tr>
<td width="1%">Nom :</td>
<td width="50%"><input type="text" name="nom" size="50"></td>
</tr>
<tr>
<td width="1%">Prénom :</td>
<td width="50%"><input type="text" name="prenom" size="20"></td>
</tr>
<tr>
<td width="1%">Mail : </td>
<td width="50%"><input type="text" name="sonmail" size="20"></td>
</tr>

<tr>
<td width="1%"></td>
<td width="50%"></td>
</tr>
</table>
</center>
</div>
<p><input type="submit" value="Envoyer" name="B1"><input type="reset" value="Rétablir" name="B2"></p>
</form>

</body>

</html>

Voila, si tu as des problèmes, n'hésite pas.

yannos123
 Posté le 10/03/2016 à 16:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour ton script mais ça ne fonctionne pas.

Sur Ovh, j'ai la page : "Erreur, champs manquants"

et testé sur Free j'ai :

Warning: include(config.php) [function.include]: failed to open stream: No such file or directory in /mnt/105/sdb/b/6/11n/envoi.php on line 3

Warning: include() [function.include]: Failed opening 'config.php' for inclusion (include_path='/mnt/105/sdb/b/6/11n/include:.:/usr/php5/lib/php') in /mnt/105/sdb/b/6/11n/envoi.php on line 3

Erreur , champs manquants :



Retour

Une idée ?

Anonyme
 Posté le 10/03/2016 à 17:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ouupppsss il manquait le fichier config.php que voici

<?
$votresite=""; // Mettez le nom de votre site ici
$urldevotresite=""; // URL de votre site
$from="contact@domaine.com"; // L'adresse email de l'expediteur
$votremail=""; // Votre adresse email où sera envoyé le mail quand on vous contacte
$votresite=""; // Nom de votre site ici
$urldevotresite=""; // L'url de votre site ici


$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$sonmail = $_POST["sonmail"];


$m1="Bonjour $prenom ,
Votre email nous a bien été envoyé .\n
Une réponse vous sera retournée au plus vite .\n
Voici un rappel de votre message : \n
Votre Nom : $nom \n
Votre Prénom : $prenom \n
Votre email : $sonmail \n
Sujet du message : $sujet \n
URL de votre site : $urlsite \n
Votre message :\n
$commentaires \n\n
A bientôt ! L'équipe du site $votresite \n
$urldevotresite \n\n";

$m2="Un mail vient de vous être envoyé .\n
Son adresse email : $sonmail \n
Son nom : $nom \n
Son prénom : $prenom \n
telephone : $telephone \n
Son message : $commentaires";
?>

<p>&nbsp;</p>

yannos123
 Posté le 10/03/2016 à 17:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Et il va où ce fichier de config ? Sur le serveur à côté des autres ?

Anonyme
 Posté le 10/03/2016 à 17:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Oui a la racine comme les autres

yannos123
 Posté le 10/03/2016 à 17:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Marche pas. Même résultat que précédemment.

C'est pourtant simple.

3 champs : nom, email et message.

Un bouton d'envoi et réception d'un email avec les contenus des 3 champs et une redirection vers une page merci.

Je fais un refresh vers la page précédente si il le faut.

Et c'est tout.

J'ai bien trouvé un script qui fonctionne mais il fallait faire une iframe du formulaire depuis Free, chose que je veux éviter.

Merci en tout cas de ton aide.

Publicité
Anonyme
 Posté le 10/03/2016 à 17:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bizarre, car je l'utilise a chaque fois que j'en ais besoin pour un des sites que je construis.

yannos123
 Posté le 13/03/2016 à 19:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut,

J'ai enfin trouvé mon bonheur et la solution ici : Formulaire basique

Et j'ai modifié le code avec mes besoin.

Le code html :

<form name="contactform" method="post" action="send_form_email.php">

<label for="first_name"></label>

<input type="text" name="first_name" placeholder="Nom">

<label for="email"></label>

<input type="text" name="email" placeholder="Email">

<label for="comments" ></label>

<textarea name="comments" placeholder="Message"></textarea>

<td colspan="2" style="text-align:center">

<input type="submit" value="Envoyer"> <a href="email_form.php"></a>


</form>

Le code php :

<!DOCTYPE HTML>
<html>
<head>
<META http-equiv="refresh" content="3; URL=index.html">
</head>
<?php

if(isset($_POST['email'])) {



// EDIT THE 2 LINES BELOW AS REQUIRED

$email_to = "mon email de renvoi";

$email_subject = "Formulaire demande de renseignements";





function died($error) {

// your error code can go here

echo "We are very sorry, but there were error(s) found with the form you submitted. ";

echo "These errors appear below.<br /><br />";

echo $error."<br /><br />";

echo "Please go back and fix these errors.<br /><br />";

die();

}



// validation expected data exists

if(!isset($_POST['first_name']) ||

!isset($_POST['email']) ||

!isset($_POST['comments'])) {

died('We are sorry, but there appears to be a problem with the form you submitted.');

}



$first_name = $_POST['first_name']; // required

$email_from = $_POST['email']; // required

$comments = $_POST['comments']; // required



$error_message = "";

$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

if(!preg_match($email_exp,$email_from)) {

$error_message .= 'The Email Address you entered does not appear to be valid.<br />';

}

$string_exp = "/^[A-Za-z .'-]+$/";

if(!preg_match($string_exp,$first_name)) {

$error_message .= 'The First Name you entered does not appear to be valid.<br />';

}

if(strlen($comments) < 2) {

$error_message .= 'The Comments you entered do not appear to be valid.<br />';

}

if(strlen($error_message) > 0) {

died($error_message);

}

$email_message = "Demande LaPoz.\n\n";



function clean_string($string) {

$bad = array("content-type","bcc:","to:","cc:","href");

return str_replace($bad,"",$string);

}



$email_message .= "Nom: ".clean_string($first_name)."\n";

$email_message .= "Email: ".clean_string($email_from)."\n";

$email_message .= "Commentaires: ".clean_string($comments)."\n";





// create email headers

$headers = 'From: '.$email_from."\r\n".

'Reply-To: '.$email_from."\r\n" .

'X-Mailer: PHP/' . phpversion();

@mail($email_to, $email_subject, $email_message, $headers);

?>



<!-- include your own success html here -->



<center>Merci de nous avoir contacté. A bientôt !</center>



<?php

}

?>

J'ai effacé les lignes en trop par rapport à mon formulaire et j'ai ajouté un meta-refresh pour rediriger vers la page d'accueil.

Merci à tous ceux qui se sont penchés sur le sujet.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
65,99 €Kit de 16 Go (2 x 8 Go) de mémoire DDR4 Crucial Ballistix 3200 MHz à 65,99 €
Valable jusqu'au 18 Septembre

Cdiscount fait une promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Crucial Ballistix 3200 MHz CL16 qui passe à 65,99 € avec le code promo SEPT. On le trouve ailleurs à plus de 85 €. Une très bonne affaire !


> Voir l'offre
449,99 €PC Portable 15,6 pouces HUAWEI MateBook D (FHD, Core i3, 8Go RAM, 256Go SSD) à 449,99 €
Valable jusqu'au 16 Septembre

Cdiscount fait une promotion sur le PC portable 15,6 pouces Full HD HUAWEI MateBook D qui passe à 449,99 € avec le code promo 20BRI alors qu'on le trouve ailleurs à partir de 599 €. Ce portable possède un processeur Intel Core i3-10110U,, de 8 Go de RAM, d'un SSD 256 Go et tourne sous Windows 10. Son poids plume de 1,53 Kg et son autonomie de 7 heures vous permettront de l'emmener facilement partout avec vous. Possède un capteur d'empreinte digitale intégré au bouton d'alimentation. Pratique pour déverrouiller son ordinateur facilement et en toute sécurité. 


> Voir l'offre
89,99 €Amazon Fire TV Cube à 89,99 €
Valable jusqu'au 18 Septembre

Amazon fait une belle promotion sur son Fire TV Cube qui passe à 89,99 € au lieu de 119,99 €. Fire TV Cube est l'appareil Fire TV le plus rapide et le plus puissant (4K ultra HD, 6 coeurs, 16 Go, Ethernet, Dolby Atmos) : il vous livre une expérience d'utilisation fluide et rapide pour profiter de vos films et séries préférés (Netflix, Prime Video, Disney+, Molotov, YouTube). Fire TV Cube vous permet de poser la télécommande et de vous plonger dans vos films et séries préférés en utilisant uniquement le son de votre voix. Vous pouvez aussi demander à Alexa de régler le volume ou de couper le son de votre TV ou barre de son compatible. 


> Voir l'offre

Sujets relatifs
Formulaire qui ne fonctionne pas avec Joomla
Pas de mail recu avec formulaire html et php
Utilité d'un captcha avec un formulaire
Formulaire php avec upload de 2 fichiers. Formail
Help Malcom : formulaire mail php avec copie caché
Formulaire HTML avec DreamWeaver CS3
Formulaire avec Webcreator Pro4
soucis formulaire avec mysql
formulaire avec adresse mail à saisir
formulaire avec contrôle anti-spam
Plus de sujets relatifs à Formulaire d''abonnement avec formmail sur OVH
 > Tous les forums > Forum Forum des Webmasters