Bonjour
J’ai un léger problème à vous soumettre !
Il s’agit de l’ajout d’un snippet dans mon site, mais je n’arrive pas à le faire et j’aurais besoin d’un peu d’aide !
Mon script PHP permet l’envoi d’un mail avec la fonction mail() de php.
Le pb, c’est que je ne sais pas comment l’ajouter à MODx... La démarche que j’ai suivi :
Ressources -> Gestion des ressources -> Snippet -> Nouveau Snippet. Là-dedans, j’ai mis un nom de snippet ( [[email_contact]] ), et le code PHP de mon script. Seule chose, c’est que, dès que j’appelle mon snippet directement dans la template de ma page (juste avant mon formulaire d’envoi de mail), ça me dit "Error while inserting event log into database".
Je ne comprends donc pas pourquoi. Si vous pouvez m’aider, je suis ouvert à toutes les réponses !
Voici mon code PHP:
<?php
if(isset($_POST['message']))
{
$verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
$message=preg_replace('#(<|>)#', '-', $_POST['message']);
$message=str_replace('"', "'",$message);
$message=str_replace('&', 'et',$message);
$nom=preg_replace('#(<|>)#', '-', $_POST['nom']);
$nom=str_replace('"', "'",$nom);
$nom=str_replace('&', 'et',$nom);
$prenom=preg_replace('#(<|>)#', '-', $_POST['prenom']);
$prenom=str_replace('"', "'",$prenom);
$prenom=str_replace('&', 'et',$prenom);
$societe=preg_replace('#(<|>)#', '-', $_POST['societe']);
$societe=str_replace('"', "'",$societe);
$societe=str_replace('&', 'et',$societe);
$objet=preg_replace('#(<|>)#', '-', $_POST['objet']);
$objet=str_replace('"', "'",$objet);
$objet=str_replace('&', 'et',$objet);
$email=stripslashes(htmlentities($_POST['email']));
$message=stripslashes(htmlspecialchars($message));
$nom=stripslashes(htmlspecialchars($nom));
$prenom=stripslashes(htmlspecialchars($prenom));
$societe=stripslashes(htmlspecialchars($societe));
$objet=stripslashes(htmlspecialchars($objet));
$envoi=htmlentities($_POST['envoi']);
if((empty($message))or(empty($objet))or(!preg_match($verif,$email)))
{
if(empty($email)and(empty($message))and(empty($objet)))
{
echo '<p class="error">Tous les champs sont vides.</p>';
$message='';$email='';$objet='';
}
else
{
if(!preg_match($verif,$email))
echo'<p class="error">Votre adresse e-mail n\'est pas valide.</p>';
else
echo'<p class="error">Il faut remplir tous les champs !</p>';
}
}
elseif((!empty($message))or(!empty($objet))or(preg_match($verif,$email)))
{
$objet='[INTERSA-contact] : '.$objet;
$headers='From: '.$email."\r\n".'Subject: '.$objet."\r\n".'Content-type:text/plain;charset=iso-8859-1'."\r\n".'Sent: '.date('l, F d, Y H:i');
if(mail('[email protected]',$objet,"Nom : $nom \nPrénom : $prenom \nSociété : $societe \n\nMessage : \n$message",$headers))
echo '<p>Votre message a bien été envoyé. Merci.</p>';
else
echo '<p class="error">Un problème est survenu durant l\'envoi du mail.</p>';
}
else
{
echo '<p class="error">Une condition innatendue est survenue lors de l\'exécution du script.</p>';
}
return " ";
}
?>