Exemple de formulaire de contact en ajax

Exemple de formulaire de contact en ajax

Messagede Devorg le Ven 25 Avr 2008 12:41

Voici le script d'un forumulaire de contact en ajax

pour commencer créez un fichier contact_forum.php et mettez le code ci dessous dedans :

Code: Tout sélectionner
<script type="text/javascript">
url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);
var ajax_get_error = false;
function ajax_do (url) {
   if (url.substring(0, 4) != 'http') {
      url = base_url + url;
   }
   var jsel = document.createElement('SCRIPT');
   jsel.type = 'text/javascript';
   jsel.src = url;
   document.body.appendChild (jsel);
   return true;
}
function ajax_get (url, el) {
   if (typeof(el) == 'string') {
      el = document.getElementById(el);
   }
   if (el == null) { return false; }
   if (url.substring(0, 4) != 'http') {
      url = base_url + url;
   }
   getfile_url = base_url + 'getfile.php?url=' + escape(url) + '&el=' + escape(el.id);
   ajax_do (getfile_url);
   return true;
}

function submit_form() {
   
   // on set les variables
   var name = document.getElementById('name').value;
   var email = document.getElementById('email').value;
   var comment = document.getElementById('comment').value;
   
   //on envoie vers le fichier contact_forum-check.php
   url = 'contact_forum-check.php?name=' + escape(name) + '&email=' + escape(email) + '&comment=' + escape(comment);
   
   // on renvoie les rĂ©sultats dans le div id result
   ajax_get (url, 'result');
}
</script>

<dl>
<dt>Votre nom :</dt>
<dd><input type="text" name="name" id="name" value="" size="60" /></dd>
<dt>Votre email :</dt>
<dd><input type="text" name="email" id="email" value="" size="60" /></dd>
<dt>Votre message :</dt>
<dd><textarea name="comment" id="comment" cols="90" rows="8" /></textarea></dd>
<dd><input type="button" name="Envoyer" value=" Envoyer votre message " onClick="submit_form();"><br />
<div id="result">&nbsp;</div>
</dd>
</dl>


Ensuite, créez un fichier getfile.php (ne rien modifier dans ce fichier) et mettez le code ci dessous dedans

Code: Tout sélectionner
<?php
// Get URL and div
if (!isset($_GET['url'])) { die(); } else { $url = $_GET['url']; }
if (!isset($_GET['el'])) { die(); } else { $el = $_GET['el']; }
// Make sure url starts with http
if (substr($url, 0, 4) != 'http') {
        // Set error
        echo 'alert(\'Security error; incorrect URL!\');';
        die();
}
// Try and get contents
$data = @file_get_contents($url);
if ($data === false) {
        // Set error
        echo 'alert(\'Unable to retrieve "' . $url . '"\');';
        die();
}
// Escape data
$data = str_replace("'", "\'", $data);
$data = str_replace('"', "'+String.fromCharCode(34)+'", $data);
$data = str_replace ("\r\n", '\n', $data);
$data = str_replace ("\r", '\n', $data);
$data = str_replace ("\n", '\n', $data);
?>
el = document.getElementById('<?php echo $el; ?>');
el.innerHTML = '<?php echo $data; ?>';


Ensuite, créez un fichier contact_forum_check.php et mettez le code ci dessous dedans

Code: Tout sélectionner
<?php

// date du jour
$date = date("d M Y Ă  H:i:s");

// fonction verif format email
function CheckEmail($email_auteur){
   $motif1  = "^[[:alnum:]]([[:alnum:]\._-]{0,})[[:alnum:]]";
   $motif1 .= "@";
   $motif1 .= "[[:alnum:]]([[:alnum:]\._-]{0,})[\.]{1}([[:alpha:]]{2,})$";
   $motif2 = "[\.]{2,}";
   return (ereg($motif1, $email_auteur) && !ereg($motif2, $email));
}


if (empty($_GET['name'])) { // SI PAS DE NOM
   die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Veuillez entrer votre nom...</font><br/>");
}

if (empty($_GET['email'])) { // SI PAS D'EMAIL
   die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Veuillez entrer votre email...</font><br/>");
}

if(!CheckEmail($_GET['email'])&&($_GET['email'])){ // VERFIFE LE FORMAT DE l'EMAIL
   die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Le format de votre adresse e-mail n'est pas valide...</font><br/>");
}

if (empty($_GET['comment'])) { // SI PAS COMMENTAIRE
   die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Veuillez entrer votre message...</font><br/>");
}
// SI TOUT EST BON
   echo "<br><font style=\"color:#1A7917\"><img src='yes.gif' alt='' /> Votre email a Ă©tĂ© envoyĂ© avec succès...<br>Nous prendrons contact avec vous dans les meilleurs dĂ©lais.</font><br/>";
   $recipient = "votreemail@toto.fr";
   $subject = "Formulaire de contact";
   $mailheaders = "From: <".$_GET['email']."> \r\n";
   $mailheaders .= "Reply-To: <".$_GET['email']."> \r\n";
   $mailheaders .= "Bcc: ".$adminemail2." \r\n";
   $mailheaders .= "Return-Path: <votreemail@toto.fr> \n";
   $mailheaders .= "X-Sender: <votreemail@toto.fr> \n";
   $mailheaders .= "X-Mailer: PHP \n";
   $mailheaders .= "X-Priority: 1 \n";
   $mailheaders .= "MIME-Version: 1.0 \n";
   $mailheaders .= "Content-Type: text/html; charset=iso-8859-1 \n";
   $msg = "<br>\n";
   $msg .= "$date |  ".stripslashes($_GET['name'])." <br>\n";
   $msg .= " <br>\n";
   $msg .= stripslashes($_GET['comment'])." <br>\n";   
   $msg .= "<br>\n";
   $msg .= "<br>\n";
   mail($recipient, $subject, $msg, $mailheaders) or die("Impossible d'envoyer le mail...");
?>


Uploadez les 3 fichiers php crées sur votre serveur, et lancez contact_forum.php
formulaire-ajax-demo.zip
Archive des 3 fichiers crées compressée en .zip
(2.25 Ko) Téléchargé 17 fois




VoilĂ , ca peut servir Ă  certains.
Ca peut sembler basique Ă  d'autres

Mais aussi ca peut pousser d'autres membres Ă  poster des scripts tout fait en AJAX...


Sujet remonté par Devorg le Ven 25 Avr 2008 12:41.
Avatar de l’utilisateur
Devorg
Administrateur
Administrateur
 
Messages: 297
Inscription: Lun 7 Avr 2008 14:07

Retourner vers Languages du web

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron