Un formulaire de contact en PhP ?

Ressources, trucs et astuces pour faire tourner Joomla! 1.5.x

Moderators: sarki, Aidan38

Forum rules
Règles du forum
User avatar
Tiko
Joomla! Apprentice
Joomla! Apprentice
Posts: 21
Joined: Wed Apr 30, 2008 9:06 pm
Location: Burgundy
Contact:

Un formulaire de contact en PhP ?

Postby Tiko » Sun May 11, 2008 9:31 pm

Inserer un formulaire de contact en PhP dans un article en Jommla! 1.5.X est un jeu d'enfant ! ;)

On suppose que votre code PhP est prêt : mon_formulaire.php

Sinon, voila le mien (c'est cadeau pour cette fois:)) :
<?php
$destinataire = "XXXXX@XXXXX.XX";
// copie ?
$copie = "oui";
$err_formulaire = true;
$reponse = NULL;

// Messages de confirmation du mail
$message_envoye = "Votre message a bien été envoyé !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Message d'erreur du formulaire
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";


//Cette fonction sert à vérifier la syntaxe d'un email
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};


// cette fonction sert à nettoyer et enregistrer un texte
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text

// magic quotes ?
if(get_magic_quotes_gpc())$text = stripslashes($text);

return $text;
};


// on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';


if (isset($_POST['envoi']))
{
$err_formulaire = false; //pour ne pas réafficher le formulaire si envoi du mail

// On va vérifier les variables et l'email ...
// soit l'email est vide si erroné, soit il vaut l'email entré
if(!IsEmail($email)) {$email = ''; $err_formulaire = true;}

if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis on envoie le mail
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= 'From: '.$nom.' <'.$email.'>' . "\r\n";

// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};

// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
$reponse = $message_envoye;
}
else
{
$reponse = $message_non_envoye;
};
}
else
{
// une des 3 variables (ou plus) est vide ...
$reponse = $message_formulaire_invalide;
$err_formulaire = true; // sert pour remplir le formulaire en cas d'erreur si besoin
};
}; // fin du if (!isset($_POST['envoi']))
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>

<?php
if (isset($reponse))
{?>
<p style="font-family:Arial, Helvetica, sans-serif; font-size:14px; font-weight:bold"><?php echo $reponse;?></p>
<?php }

if ($err_formulaire)
{?>
<form style="font-family:verdana,geneva;" id="contact" method="post" action="">
<fieldset style="background-color:#eeeeee">
<legend style="color:#CC6600;font-family:verdana,geneva;font-size:18px; font-weight:bold">Vos coordonne&eacute;s :</legend>
<p>
<label for="nom">Nom &amp; pr&eacute;nom:</label>
<input type="text" id="nom" name="nom" value="<?php echo htmlentities($nom)?>" tabindex="1" />
</p>
<p>
<label for="email">Adresse email :</label>
<input type="text" id="email" name="email" value="<?php echo htmlentities($email)?>" tabindex="2" />
</p><br/>
</fieldset>
<fieldset style="background-color:#eeeeee"><legend style="color:#CC6600;font-family:verdana,geneva;font-size:18px; font-weight:bold">Votre message :</legend>
<p>
<label for="objet">Objet :</label>
<input type="text" id="objet" name="objet" value="<?php echo htmlentities($objet)?>" tabindex="3" />
</p>
<p>
<label for="message">Texte :</label>
<textarea id="message" name="message" tabindex="4" cols="50" rows="8"><?php echo htmlentities($message)?></textarea>
</p>
<br />
</fieldset>
<div style="text-align:center;"><input type="submit" name="envoi" value="Valider" /></div>
</form>
<?php } ?>
</body>
</html>


0. Expediez votre formulaire via votre FTP a l'endroit exact :/modules/mod_jumi/....

1. téléchargez Jumi parce que c'est celui que j'ai utilisé pour ce tuto.

2. installez-le via le panneau d'administration comme tout bon composant Joomla

3. rendez-vous dans la gestion des modules, puis ouvrez Jumi.

4. a droite, dans le menu "paramètres", repérez la ligne File Pathname
et inscrivez : modules/mod_jumi/mon_formulaire.php

5. en dessous, dans le cadre Argument Values, inscrivez tel quel : [modules/mod_jumi/mon_formulaire.php]

6. vérifiez que vous affectez ce code au bon article, que vous le publiez bien, sauvez et enregistrez.

7. vérifiez votre page ou se trouve votre code, cela fonctionne !! ;)

8. passez une excellente journée !

9. Questions sur le forum SVP

User avatar
mejean
Joomla! Hero
Joomla! Hero
Posts: 2716
Joined: Thu Aug 18, 2005 12:28 pm
Location: viewforum.php?f=19
Contact:

Re: Un formulaire de contact en PhP ?

Postby mejean » Sat Dec 27, 2008 8:56 pm

Attention à vos paramètres des articles. Joomla! 1.5 à partir de la version 1.5.8 filtre certaines balises.
Jérôme Bussière - simple utilisateur
www.cardabelle.net


Return to “1.5 - Ressources”

Who is online

Users browsing this forum: No registered users and 1 guest