[résolu, par une alternative] Pas d'envoi de mail avec plxMyContact
antistress
Member
Bonjour,
Avec la dernière version de PluXml et du plugin, toute la procédure fonctionne sauf qu'aucun mail n'est envoyé.
Pourtant dans les paramètres de PluXml le mail est activé et le mail-test fonctionne (et j'ai vérifié les indésirables)
Avant j'avais collé le code formulaire de contact jadis proposé dans le wiki (Page statique Pluxml : formulaire de contact # revision 1.2 pour PluXml 5.1.2) dans une page statique mais je me suis aperçu que le capcha est devenu insoluble...
Merci d'avance
<?php
# Page statique Pluxml : formulaire de contact
# revision 1.2 pour PluXml 5.1.2
if(!defined('PLX_ROOT')) exit;
# Renseignez ici votre adresse mail
$email = 'mon-mél';
# Notre capcha
$capcha = new plxCapcha();
# Nos variables
$erreur = '';
$succes = '';
if(!empty($_POST)) { # Formulaire valide
if($_POST['rep2'] == sha1($_POST['rep'])) { # Capcha valide 5.1b
$_POST['nom'] = trim($_POST['nom']);
$_POST['content'] = trim($_POST['content']);
$_POST['ip'] = plxUtils::getIp();
# On verifie les donnees
if(empty($_POST['nom']) OR empty($_POST['mail']) OR empty($_POST['content']))
$erreur = 'Merci de remplir tous les champs obligatoires';
if($erreur == '' AND !plxUtils::checkMail(trim($_POST['mail'])))
$erreur = 'L\'adresse mail saisie n\'est pas valide';
# On peut envoyer si pas d'erreur
if($erreur == '') {
$corps = 'Son nom : '.$_POST['nom']."n";
$corps .= 'Son mail : '.$_POST['mail']."n";
$corps .= 'Son adresse IP : '.$_POST['ip']."n";
$corps .= 'Son message : '."n";
$corps .= $_POST['content'];
# On peut retirer certains caracteres (enlever // de la ligne suivante)
//$corps = str_replace("r"," ",$corps);
# On envoi le mail
$headers = 'From: '.$_POST['mail']."\r\n";
$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/plain; charset="'.PLX_CHARSET.'"'."\r\n";
$headers .= 'Content-transfer-encoding: 8bit'."\r\n";
if(mail($email,'## Pluxml ## contact depuis votre formulaire de contact',$corps, $headers))
$succes = 'Message envoyé :-)';
else
$erreur = 'Une erreur s\'est produite au cours de l\'envoi de votre message...';
}
} else { # Capcha non valide
$erreur = 'la vérification anti-spam a échouée';
}
} else {
# Initialisation
$erreur = 'Merci de remplir le formulaire ci-dessous';
$_POST['nom'] = '';
$_POST['content'] = '';
$_POST['mail'] = '';
}
?>
<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">
<label for="nom">Votre nom :<br />
</label><input name="nom" type="text" size="30" value="<?php echo plxUtils::strCheck($_POST['nom']) ?>" maxlength="30" /><br />
<label for="mail">Votre e-mail :<br />
</label><input name="mail" type="text" size="30" value="<?php echo plxUtils::strCheck($_POST['mail']) ?>" /><br /><br />
<label for="content">Votre message :<br />
</label><textarea name="content" cols="60" rows="12"><?php echo plxUtils::strCheck($_POST['content']) ?></textarea><br />
<br />
<label for="rep">Vérification anti-spam :</label>
<p><?php echo $capcha->q(); ?> : <input name="rep" type="text" size="10" /></p>
<input name="rep2" type="hidden" value="<?php echo $capcha->r(); ?>" />
<p><input type="submit" value="Envoyer" /> <input type="reset" value="Effacer" /></p>
</form>
<?php endif; # Fin du if si mail envoye ?>
</div>
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Crée une page statique avec ce modèle de page statique (template) sur Github :
https://gist.github.com/bazooka07/7a87777795ca7188d62d96eaca300636
à insérer dans ton thème avec un fichier static-contact.php ( doit commencer par "static-")
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
J'ai ajouté ce code dans une page statique dont j'ai choisi pour url dans la console "static-contact"
mais cela me donne un fichier htdocs/data/statiques/006.static-contact.php (précédé d'un numéro)
et j'obtiens une page blanche avec juste indiqué "Contact"
http://libre-ouvert.tuxfamily.org/index.php?static6/static-contact
Comment faire ?
Merci d’avance !
Non !
Tu dois ajouter ce fichier dans le dossier du thème : themes/defaut
Ensuite tu crées une nouvelle page statique et tu choisis static-contact.php comme modèle.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
ok, fait
là je suis perdu par contre !
Depuis la console je sais créer une page statique, mais je fais comment exactement ce que tu demandes ?
Pardon, tu sais créer un fichier xml avec vim ?
Tu te connectes sur le back-office de PluXml et tu crées une page statique en cliquant sur le panneau de gauche.
Dans le code que j'ai donné il faut remplacer la ligne de code
par
J'ai créé ce modèle avec la prochaine version de PluXml qui possède un auto-loader de class pour PHP.
Il faut aussi compléter les fichiers de langue du thème.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Je viens de tester sur mon PC avec un compte free.fr.
Cela marche.
Il faut mettre à jour le fichier de langues du thème et régler le CSS.
Je verrai cela ce soir ou demain.
A noter : avec cette méthode, vous pouvez créer autant de modèles pour pages statiques que de formulaires de contact.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
J'ai modifié ton fichier static-contact.php comme indiqué, que j'ai versé dans mon dossier de thème courant
Après je suis perdu : j'ai actuellement une page statique vierge que j'ai nommée Contact avec pour url contact
Comment je fais le lien entre cette page statique visible dans le back-office de PluXml et le fichier déposé dans mon dossier de thème courant ?
(J'ai Gedit comme éditeur de texte et FileZilla pour accéder à mon arborescence)
Non, il faut accéder à ton site avec Firefox, Chrome, Opéra .
Voir copie d'écran
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Ha merci, j'ai compris et ça marche
Je n'avais pas fait défiler la page (la zone de saisie faisait tout l'écran...) pb chaise/clavier toussa
resterait à peaufiner (ne pas reprendre les intitulés dans les zones de saisie, franciser) mais je ne vais pas te prendre plus de temps.
Top !
Ce sera inclus dans la prochaine version par défaut ?
me demande pourquoi le plugin ne marche pas, peut être un bogue que je devrais remonter ?
Je vous ai modifié le thème defaut de PluXml pour avoir le formulaire de contact sans avoir besoin de plugin.
Le formulaire ressemble à ceci :
Après envoi, on affiche cela :
Et dans sa boite mail on retrouve ceci :
Et cela s'affiche dans toutes les langues de PluXml
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
@bazooka07
Bonjour
Grand merci pour ce template.... qui était très attendu.. super
Cette version 6 dont tu parles, c'est celle qui figure sur github en master?
Oui la version 6.0 est sur la branche master dans le dépôt Github.
Il y a du ménage de fait dans les fichiers de langue car il y avait pas mal de doublons.
Cela peut tanguer un peu avec certains plugins qui ne vont pas retrouver les vieilles constantes de langue. Cela se corrige facilement :
Mais si personne n'essaye, on n'avancera pas.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Merci bazooka07 mais je suis embêté car j'utilise un mod du thème 5.5 comme tu peux le voir sur mon site
du coup je vais rester comme cela pour l'instant.
Sinon ce sera inclus dans la prochaine version par défaut ?
Si tu veux je peux passer sur la version de dév pour tester, et reporter mes modifications sur le thème de cette version ?