Fonctionnement "Contact Form" html/php
deadwingtree
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Je suis quasi débutant en html/php...
Je viens d'ajouter un formulaire de contact sur mon site, mais je ne sais pas trop bien comment le faire fonctionner. Ci-dessous, vous trouverez des extraits de code HTML et PHP.
Si quelqu'un pouvait m'aider, je lui en serai très reconnaissant !
Merci d'avance !
Alex
Je suis quasi débutant en html/php...
Je viens d'ajouter un formulaire de contact sur mon site, mais je ne sais pas trop bien comment le faire fonctionner. Ci-dessous, vous trouverez des extraits de code HTML et PHP.
Si quelqu'un pouvait m'aider, je lui en serai très reconnaissant !
Merci d'avance !
Alex
<div class="row"> <div class="span9"> <form id="contact-form" class="contact-form" action="#"> <p class="contact-name"> <input id="contact_name" type="text" placeholder="Nom" value="" name="name" /> </p> <p class="contact-email"> <input id="contact_email" type="text" placeholder="Email" value="" name="email" /> </p> <p class="contact-message"> <textarea id="contact_message" placeholder="Message" name="message" rows="15" cols="40"></textarea> </p> <p class="contact-submit"> <a id="contact-submit" class="submit" href="#">Envoyer</a> </p> <div id="response"> </div> </form> </div>
<?php /* * Contact Form Class */ header('Cache-Control: no-cache, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Content-type: application/json'); $admin_email = 'your@yourdomain.com'; // Your Email $message_min_length = 5; // Min Message Length class Contact_Form{ function __construct($details, $email_admin, $message_min_length){ $this->name = stripslashes($details['name']); $this->email = trim($details['email']); $this->subject = 'Contact from Your Website'; // Subject $this->message = stripslashes($details['message']); $this->email_admin = $email_admin; $this->message_min_length = $message_min_length; $this->response_status = 1; $this->response_html = ''; } private function validateEmail(){ $regex = '/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i'; if($this->email == '') { return false; } else { $string = preg_replace($regex, '', $this->email); } return empty($string) ? true : false; } private function validateFields(){ // Check name if(!$this->name) { $this->response_html .= '<p>Please enter your name</p>'; $this->response_status = 0; } // Check email if(!$this->email) { $this->response_html .= '<p>Please enter an e-mail address</p>'; $this->response_status = 0; } // Check valid email if($this->email && !$this->validateEmail()) { $this->response_html .= '<p>Please enter a valid e-mail address</p>'; $this->response_status = 0; } // Check message length if(!$this->message || strlen($this->message) < $this->message_min_length) { $this->response_html .= '<p>Please enter your message. It should have at least '.$this->message_min_length.' characters</p>'; $this->response_status = 0; } } private function sendEmail(){ $mail = mail($this->email_admin, $this->subject, $this->message, "From: ".$this->name." <".$this->email.">\r\n" ."Reply-To: ".$this->email."\r\n" ."X-Mailer: PHP/" . phpversion()); if($mail) { $this->response_status = 1; $this->response_html = '<p>Thank You!</p>'; } } function sendRequest(){ $this->validateFields(); if($this->response_status) { $this->sendEmail(); } $response = array(); $response['status'] = $this->response_status; $response['html'] = $this->response_html; echo json_encode($response); } } $contact_form = new Contact_Form($_POST, $admin_email, $message_min_length); $contact_form->sendRequest(); ?>
A voir également:
- Fonctionnement "Contact Form" html/php
- Fonctionnement processeur - Guide
- Fonctionnement du protocole http - Guide
- Editeur html - Télécharger - HTML
- Recuperer contact carte sim - Guide
- Html br - Forum HTML
1 réponse
Bonjour,
Déjà.. il te manque la méthode d'envoie des données dans ton FORM
et dans ce cas là.. il faut modifier ton bouton en remplaçant ton lien
par
ou alors... vu que tu ne sembles pas utiliser de bouton "submit" mais un lien ... c'est qu'il doit y avoir du javascript quelque part... et que tu ne nous as pas donné !
Par contre.. un conseil...
Places le code de ta CLASS dans un fichier PHP à part.
form.class.php
Tu n'auras plus qu'à l'inclure dans ta page ...
Déjà.. il te manque la méthode d'envoie des données dans ton FORM
<form id="contact-form" class="contact-form" action="#" method="post">
et dans ce cas là.. il faut modifier ton bouton en remplaçant ton lien
<p class="contact-submit"> <a id="contact-submit" class="submit" href="#">Envoyer</a> </p>
par
<p class="contact-submit"> <input id="contact-submit" class="submit" type="submit" value="Envoyer"> </p>
ou alors... vu que tu ne sembles pas utiliser de bouton "submit" mais un lien ... c'est qu'il doit y avoir du javascript quelque part... et que tu ne nous as pas donné !
Par contre.. un conseil...
Places le code de ta CLASS dans un fichier PHP à part.
form.class.php
<?php /* * Contact Form Class */ header('Cache-Control: no-cache, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Content-type: application/json'); class Contact_Form{ function __construct($details, $email_admin, $message_min_length){ $this->name = stripslashes($details['name']); $this->email = trim($details['email']); $this->subject = 'Contact from Your Website'; // Subject $this->message = stripslashes($details['message']); $this->email_admin = $email_admin; $this->message_min_length = $message_min_length; $this->response_status = 1; $this->response_html = ''; } private function validateEmail(){ $regex = '/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i'; if($this->email == '') { return false; } else { $string = preg_replace($regex, '', $this->email); } return empty($string) ? true : false; } private function validateFields(){ // Check name if(!$this->name) { $this->response_html .= '<p>Please enter your name</p>'; $this->response_status = 0; } // Check email if(!$this->email) { $this->response_html .= '<p>Please enter an e-mail address</p>'; $this->response_status = 0; } // Check valid email if($this->email && !$this->validateEmail()) { $this->response_html .= '<p>Please enter a valid e-mail address</p>'; $this->response_status = 0; } // Check message length if(!$this->message || strlen($this->message) < $this->message_min_length) { $this->response_html .= '<p>Please enter your message. It should have at least '.$this->message_min_length.' characters</p>'; $this->response_status = 0; } } private function sendEmail(){ $mail = mail($this->email_admin, $this->subject, $this->message, "From: ".$this->name." <".$this->email.">\r\n" ."Reply-To: ".$this->email."\r\n" ."X-Mailer: PHP/" . phpversion()); if($mail) { $this->response_status = 1; $this->response_html = '<p>Thank You!</p>'; } } function sendRequest(){ $this->validateFields(); if($this->response_status) { $this->sendEmail(); } $response = array(); $response['status'] = $this->response_status; $response['html'] = $this->response_html; echo json_encode($response); } }//Fin de la class ?>
Tu n'auras plus qu'à l'inclure dans ta page ...
<?php //import du fichier class Form require_once("form.class.php"); //déclaration des variables $admin_email = 'your@yourdomain.com'; // Your Email $message_min_length = 5; // Min Message Length //Si le Submit POST est envoyé : if(isset($_POST)){ try { $contact_form = new Contact_Form($_POST, $admin_email, $message_min_length); $contact_form->sendRequest(); } catch (Exception $e) { echo 'Exception reçue : ', $e->getMessage(), "\n"; } }// fin du traitement du submit ?> <div class="row"> <div class="span9"> <form id="contact-form" class="contact-form" method="post" action="#"> <p class="contact-name"> <input id="contact_name" type="text" placeholder="Nom" value="" name="name" /> </p> <p class="contact-email"> <input id="contact_email" type="text" placeholder="Email" value="" name="email" /> </p> <p class="contact-message"> <textarea id="contact_message" placeholder="Message" name="message" rows="15" cols="40"></textarea> </p> <p class="contact-submit"> <input id="contact-submit" class="submit" type="submit" value="Envoyer"> </p> <div id="response"> </div> </form> </div>