Script de contact compatible avec le thème defaut

Salut.

Le script :
http://wiki.pluxml.org/?page=creer_un_formulaire_de_contact

Ne va plus très bien avec le thème defaut de PluXML ;) Alors voici une petite modification compatible et qui apporte un champ de saisi pour l'adresse du site (en facultatif), et avec une petite amélioration des erreurs (Erreur en rouge).

Voir : http://www.loup-des-neiges.com/?static2/contact

Configuration :
Rien ne change ;)
Copiez collez le code ci-dessous en renseignant votre adresse email dans la variable $email (Ligne 3)
Pour personnalisé le titre du message (facultatif),ligne 28 modifiez :
if(mail($email,'TITRE DU MESSAGE',$corps, $headers))
Le script :
<?php
if(!defined('PLX_ROOT')) exit;
$email = 'VOTRE ADRESSE E-MAIL';
$capcha = new plxCapcha();
$erreur = '';
$succes = '';
if(!empty($_POST)) {
	if($_POST['rep2'] == md5($capcha->gds.$_POST['rep'])) {
		$_POST['nom'] = trim($_POST['nom']);
		$_POST['content'] = trim($_POST['content']);
		$_POST['ip'] = plxUtils::getIp();
		if(empty($_POST['nom']) OR empty($_POST['mail']) OR empty($_POST['content']))
			$erreur = '<span style="color: red;">Merci de remplir tous les champs obligatoires !</span>';
		if($erreur == '' AND !plxUtils::checkMail(trim($_POST['mail'])))
			$erreur = '<span style="color: red;">L\'adresse mail saisie n\'est pas valide.</span>';
		if($erreur == '') {
			$corps = 'Nom : '.$_POST['nom']."\n";
			$corps .= 'Site : '.$_POST['site']."\n";
			$corps .= 'E-mail : '.$_POST['mail']."\n";
			$corps .= 'Adresse IP : '.$_POST['ip']."\n";
			$corps .= 'Message : '."\n";
			$corps .= $_POST['content'];
			$corps = str_replace("\r"," ",$corps);
			$headers = 'From: '.$_POST['mail']."\n";
			$headers .= 'MIME-Version: 1.0'."\n";
			$headers .= 'Content-type: text/plain; charset="'.PLX_CHARSET.'"'."\n";
			$headers .= 'Content-transfer-encoding: 8bit'."\n";
			if(mail($email,'PluXML, contact depuis votre blog',$corps, $headers))
				$succes = 'Merci de nous avoir contacté, nous vous répondrons le plus rapidement possible.';
			else
				$erreur = '<span style="color: red;">Une erreur s\'est produite au cours de l\'envoi de votre message ...</span>';
		}
	} else {
		$erreur = '<span style="color: red;">La vérification anti-spam a échouée !</span>';
	}
} else {
	$erreur = 'Merci de remplir le formulaire ci-dessous :';
	$_POST['nom'] = '';
	$_POST['site'] = 'http://';
	$_POST['mail'] = '@';
	$_POST['content'] = '';
}
?>
<div id="form">
	<p class="message_contact"><?php echo (!empty($erreur))?$erreur:$succes; ?></p>
	<?php if(!empty($erreur) OR empty($_POST)): ?>
		<form action="#form" method="post">
			<fieldset>
				<div class="form_left">
					<label>Nom :</label>
					<input name="nom" type="text" size="20" value="<?php echo plxUtils::strCheck($_POST['nom']) ?>" maxlength="30" /><br />
					<label>Site (facultatif) :</label>
					<input name="site" type="text" size="20" value="<?php echo plxUtils::strCheck($_POST['site']) ?>" /><br />
					<label>E-mail :</label>
					<input name="mail" type="text" size="20" value="<?php echo plxUtils::strCheck($_POST['mail']) ?>" /><br />
				</div>
				<label>Message :</label>
				<textarea name="content" cols="35" rows="6"><?php echo plxUtils::strCheck($_POST['content']) ?></textarea>
				<div class="clearer"></div>
				<p class="button">
				<?php echo $capcha->q(); ?> : <input name="rep" type="text" size="10" />
				<input name="rep2" type="hidden" value="<?php echo $capcha->r(); ?>" />
				<span><input type="submit" value="Envoyer" /> <input type="reset" value="Effacer" /></span>
				</p>
			</fieldset>
		</form>
	<?php endif; ?>
</div>

Réponses

  • ah oui c'est mieux en effet, mais pourquoi demander le mél ?
  • février 2010 modifié
    antistress a écrit:
    mais pourquoi demander le mél ?
    C'est mieux d'avoir le mail pour pouvoir répondre aux messages, non ?
    Sinon pour le site (en champ facultatif), c'est utile dans certaines situations. ;)
  • ah oui, c'est l'url du site dont je voulais parler !
    tu penses à quoi en particulier ?
  • Un contact entre webmaster par exemple. M'enfin après, vous pouvez toujours delete le champ site :)
    C'est surtout pour la mise en page du thème d'origine avec les commentaires ;)
  • je l'ai adopté en tout cas, merci :-)
  • Ca serait bien de le mentionner dans le wiki, d'ailleurs
Connectez-vous ou Inscrivez-vous pour répondre.