Comprendre le bitcoin, l'intelligence artificielle, faire un site web... En 3 minutes en vidéo!

Problème pour ajouter un formulaire de contact à mon site

Forum informatique > Aide création et gestion de site > Problème pour ajouter un formulaire de contact à mon site

<<<1>>>

[Page 1 sur 1 - 3 messages]
Informations Messages

Babbo7529

Avatar de Babbo7529
10 messages
Barrette de RAM
Barrette de RAM

Lien direct Le 19 Septembre 2011 à 16h31

Bonjour,
J'ai trouvé le formulaire de contact ci-dessous mais je n'arrive pas à l'inclure dans mon site (j’obtiens une page blanche) :


<?php 
define( 'MAIL_TO', /* >>>>> */' '/* <<<<< */ ); //ajouter votre courriel
define( 'MAIL_FROM', '' ); // valeur par défaut
define( 'MAIL_OBJECT', '' ); // valeur par défaut
define( 'MAIL_MESSAGE', '' ); // valeur par défaut

$mailSent = false; // drapeau qui aiguille l'affichage du formulaire OU du récapitulatif
$errors = array(); // tableau des erreurs de saisie

if( filter_has_var( INPUT_POST, 'send' ) ) // le formulaire a été soumis avec le bouton Envoyer
{
$from = filter_input( INPUT_POST, 'from', FILTER_VALIDATE_EMAIL );
if( $from === NULL || $from === MAIL_FROM ) // si le courriel fourni est vide OU égale à la valeur par défaut
{
$errors[] = 'Vous devez renseigner votre adresse de courrier électronique.';
}
elseif( $from === false ) // si le courriel fourni n'est pas valide
{
$errors[] = 'L\'adresse de courrier électronique n\'est pas valide.';
$from = filter_input( INPUT_POST, 'from', FILTER_SANITIZE_EMAIL );
}

$object = filter_input( INPUT_POST, 'object', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );
if( $object === NULL OR $object === false OR empty( $object ) OR $object === MAIL_OBJECT ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut
{
$errors[] = 'Vous devez renseigner l\'objet.';
}


$message = filter_input( INPUT_POST, 'message', FILTER_UNSAFE_RAW );
if( $message === NULL OR $message === false OR empty( $message ) OR $message === MAIL_MESSAGE ) // si le message fourni est vide ou égale à la valeur par défaut
{
$errors[] = 'Vous devez écrire un message.';
}

if( count( $errors ) === 0 ) // si il n'y a pas d'erreurs
{
if( mail( MAIL_TO, $object, $message, "From: $from\nReply-to: $from\n" ) ) // tentative d'envoi du message
{
$mailSent = true;
}
else // échec de l'envoi
{
$errors[] = 'Votre message n\'a pas été envoyé.';
}
}


J'ai également celui-ci qui fonctionne mais envoie un le message d'erreur suivant au moment de l'envoi :

Citation

Warning: mail() has been disabled for security reasons in /var/www/p/ph/phi/philippe.conte.perso.sfr.fr/public_html/Parc_aigles/contact.php on line 142



Voici le formulaire :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Studio à vendre à Gouvieux</title>
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
<link rel="icon" href="./favicon.ico" type="image/ico" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Description" content="Studio à vendre à Gouvieux" />
<meta name="Keywords" content="[...]" />

<link href="./styles/accueil.css" rel="stylesheet" type="text/css">
<style type="text/css">
body.c7 {background-image: url(http://philippe.conte.perso.sfr.fr/Parc_aigles/images/fond01.gif);}
p.c4 {text-align: center}
div.c3 {text-align: center}
li.c2 {list-style: none; display: inline}
h1.c1 {font-size: 30pt}
</style>
</head>
<body class="c7">
<div id="global">
<div id="entete">
<h1 class="c1">Studio à vendre à Gouvieux</h1>
</div>
<div class="c3"id="navigation">
<ul>
<li><a href="index.html" title="Retour à l'accueil">Accueil</a></li>
<li><a href="visite.htm" title="Visitez depuis votre chaise">Visite virtuelle</a></li>
<li><a href="dpe.htm" title="Diagnostic de Performance Énergetique">D.P.E.</a></li>
<li><a href="tourisme.htm" title="À proximité">À proximité</a></li>
<li><a href="mentions-legales.htm" title="Mentions légales">Mentions légales</a></li>
<li><a href="mailto:[email protected]" title="Prendre contact">Contact</a></li>
<li><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a></li>
<li><a href="http://www.planet-work.fr/" rel="external"><img alt="Hebergement par Planet-Work" src="http://www.planet-work.fr/banners/100x35/PW_hosted_white.gif" border="0" height="35" width="100"></a></li>
<li><a href="http://www.referencementgratuit.fr" target="_blank"><img src="http://www.referencementgratuit.fr/refgratuit-88x15.gif" alt="Referencement" border="0"></a></li>J'ai également celui-ci qui fonctionne mais envoie un le message d'erreur suivant au moment de l'envoi :
<li><a><small>Site enrégistré à la CNIL sous le numéro 1486545</small></a></li>
<li><a><strong>Dernière mise à jour le<br>
15 septembre 2011</strong></a></li>
</ul>
</div>
<div id="contenu" class="c4" align=center>
<h3><font size=6>Formulaire de contact</font></h3>
<br>
<?php
/*
CONFIGURATION
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = ' ';

// copie ? (envoie une copie au visiteur)
$copie = 'oui';

// Action du formulaire (si votre page a des paramètres dans l'URL)
// si cette page est index.php?page=contact alors mettez index.php?page=contact
// sinon, laissez vide
$form_action = '';

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$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.";

/*
FIN DE LA CONFIGURATION
*/

/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}

// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

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

$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
$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']))
{
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
$err_formulaire = (IsEmail($email)) ? false : true;

if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

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

// Remplacement de certains caractères spéciaux
$message = html_entity_decode($message);
$message = str_replace(''',"'",$message);
$message = str_replace('’',"'",$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);

// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
$err_formulaire = true;
};
}; // fin du if (!isset($_POST['envoi']))

if (($err_formulaire) || (!isset($_POST['envoi'])))
{
// afficher le formulaire
echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
echo ' <fieldset><legend><strong>Vos coordonnées</strong></legend>'."\n";
echo ' <p>'."\n";
echo ' <label for=" nom ">Nom :</label>'."\n";
echo ' <input type="text" id="nom " name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n";
echo ' </p>'."\n";
echo ' <p>'."\n";
echo ' <label for="email">Email :</label>'."\n";
echo ' <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n";
echo ' </p>'."\n";
echo ' </fieldset>'."\n";

echo ' <fieldset><legend><strong>Votre message :</strong></legend>'."\n";
echo ' <p>'."\n";
echo ' <label for="objet">Objet :</label>'."\n";
echo ' <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n";
echo ' </p>'."\n";
echo ' <p>'."\n";
echo ' <label for="message">Message :</label>'."\n";
echo ' <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
echo ' </p>'."\n";
echo ' </fieldset>'."\n";

echo ' <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer" /></div>'."\n";
echo '</form>'."\n";
};
?>
</div>
</div>
</body>
</html>



Quelqu'un pourrait-il m'aider ?
Merci d'avance.
Cordialement

 

Publicité

salva57

Avatar de salva57
323 messages
Processeur
Processeur

Lien direct Le 25 Septembre 2011 à 13h56

Bonjour,

Je suis pas spécialiste en Php mais en cherchant sur Google j'ai trouvé cela qui devrait t'aider

http://www.commentcamarche.net/forum/affich-11912997-pb-avec-la-fonction-mail

@+


 

Jester

Avatar de Jester
17 messages
Barrette de RAM
Barrette de RAM

Lien direct Le 18 Novembre 2011 à 17h49

Salut,

Ce sera très simple en faite.

Dans le premier formulaire Tu as que le traitement (partie php) qui s’exécute quand le visiteur à cliquer sur envoyer, or tu n'as pas de formulaire html que tu vois en premier.
Ca devrais ce présenter comme ça :


if ($_POST['contenue'] != NULL)
{
//Traitement ici
}
else
{
//affichage du formulaire de contact
}



Le problème est que tu n'as pas ce "else"

Pour le deuxième tous ce résume à ce message :


Citation de Babbo7529



Citation

Warning: mail() has been disabled for security reasons in /var/www/p/ph/phi/philippe.conte.perso.sfr.fr/public_html/Parc_aigles/contact.php on line 142





Traduction : Attention : fonction mail() est désactivée pour des raison de sécurité.

Ce qui veux dire que tu ne peu pas utiliser l'envoie de mail par formulaire via cette hébergement.

++

Seul un développeurs pour avoir plusieurs string dans l'array :)
 

<<<1>>>

[Page 1 sur 1 - 3 messages]

Forum informatique > Aide création et gestion de site > Problème pour ajouter un formulaire de contact à mon site