J'ai téléchargé un template de site "one page".
J'ai pu me l'approprier jusqu'à une certaine limite je l'avoue, raison pour laquelle je viens vers vous.
Je voudrais envoyer un email grâce à un formulaire html avec une méthode post ; chose à priori simple et pourtant...
D'une part, après divers test, je crois comprendre que le script php destinataire reçoit des variables vides, ou alors que rien n'est transmis. En tout cas les $_POST['name'] (par exemple) sont vides. Y a t-il des choses à faire pour qu'un post fonctionne qui ne serait pas bien effectué dans ce code ?
D'autre part, je suis face à une véritable énigme, créée par l'inconnu. Je m'explique. Il y a à la fin de la balise <form> 2 div qui sont appelées et j'ai l'impression qu'elles s'affichent selon un résultat renvoyé par le code php destinataire du formulaire. Pourtant il n'y a pas de if dans le code html et je ne vois rien de très explicite, en tout cas je ne le comprends pas, dans le code php.
Pourriez-vous m'aider à y voir clair svp ?
Merci d'avance,
Vince
Mon code html :
<form>
<div class="row">
<div class="col-lg-4">
<address>
<div class="address-row">
<div class="address-sign">
<i class="icon-map-marker"></i>
</div>
<div style="address-info">
<b>Single Page Responsive Template</b>,<br>
Using Twitter Bootstrap 3,<br>
EGrappler.com
</div>
</div>
</address>
<div class="visible-xs visible-sm">
<br class="gap-30" />
<hr class="gap-divider" />
<br class="gap-30" />
</div>
</div>
<div class="col-lg-7 col-lg-offset-1">
<form method="post" action="send_form_email.php" id="contactform">
<div class="form-group">
<div class="row">
<div class="col-lg-6">
<input type="text" class="form-control" id="name" name="name" placeholder="Your Name *"><br
class="gap-15" />
</div>
<div class="col-lg-6">
<input type="text" class="form-control" id="email" name="email" placeholder="Your Email *">
</div>
</div>
</div>
<div class="form-group">
<textarea class="form-control" id="message" name="message" rows="8"></textarea>
</div>
<button id="button-send" class="btn btn-block btn-success" type="submit" form="contactform">
Send Message Now
</button>
<div id="success">
Your message has been sent successfully!</div>
<div id="error">
Unable to send your message, please try later.</div>
</form>
</div>
</div>
</form>
</div>
</div>
Mon code php :
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
// EDIT THE 2 LINES BELOW AS REQUIRED
$send_email_to = "[email protected]";
$email_subject = "Pre-inscription a Pay Fair";
function send_email($name,$email,$email_message)
{
global $send_email_to;
global $email_subject;
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= "From: ".$email. "\r\n";
$message = "<strong>Email = </strong>".$email."<br>";
$message .= "<strong>Name = </strong>".$name."<br>";
$message .= "<strong>Message = </strong>".$email_message."<br>";
@mail($send_email_to, $email_subject, $message,$headers);
return true;
}
function validate($name,$email,$message)
{
$return_array = array();
$return_array['success'] = '1';
$return_array['name_msg'] = '';
$return_array['email_msg'] = '';
$return_array['message_msg'] = '';
if($email == '')
{
$return_array['success'] = '0';
$return_array['email_msg'] = 'Saisissez votre email svp';
mail("[email protected]","erreur","Saisissez votre email svp");
}
else
{
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email)) {
$return_array['success'] = '0';
$return_array['email_msg'] = 'Saisissez un email valide svp';
mail("[email protected]","erreur","Saisissez un email valide svp");
}
}
if($name == '')
{
$return_array['success'] = '0';
$return_array['name_msg'] = 'Saisissez votre nom svp';
mail("[email protected]","erreur","Saisissez votre nom svp");
}
else
{
$string_exp = "/^[A-Za-z .'-]+$/";
if (!preg_match($string_exp, $name)) {
$return_array['success'] = '0';
$return_array['name_msg'] = 'Saisissez un nom valide svp';
mail("[email protected]","erreur","Saisissez un nom valide svp");
}
}
if($message == '')
{
$return_array['success'] = '0';
$return_array['message_msg'] = 'Saisssez un message svp';
mail("[email protected]","erreur","Saisissez votre message svp");
}
else
{
if (strlen($message) < 2) {
$return_array['success'] = '0';
$return_array['message_msg'] = 'Saisissez un message valide svp';
mail("[email protected]","erreur","Saisissez un message valide svp");
}
}
return $return_array;
}
$return_array = validate($name,$email,$message);
if($return_array['success'] == '1')
{
mail("[email protected]","succes","message");
send_email($name,$email,$message);
}
header('Content-type: text/json');
echo json_encode($return_array);
die();
?>