[résolu, par une alternative] Pas d'envoi de mail avec plxMyContact

antistressantistress Member
2 nov. modifié dans Plugins

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>

Réponses

  • bazooka07bazooka07 Member

    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-")

  • antistressantistress Member
    2 nov. modifié

    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 !

  • bazooka07bazooka07 Member

    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.

  • Tu dois ajouter ce fichier dans le dossier du thème : themes/defaut

    ok, fait

    Ensuite tu crées une nouvelle page statique et tu choisis static-contact.php comme modèle

    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 ?

  • bazooka07bazooka07 Member

    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

    if(version_compare(PLX_VERSION, '5.8.3', '<=')) {
    

    par

    if(version_compare(PLX_VERSION, '6.0.0', '<')) {
    

    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.

  • bazooka07bazooka07 Member
    2 nov. modifié

    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.

  • 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)

  • bazooka07bazooka07 Member

    Non, il faut accéder à ton site avec Firefox, Chrome, Opéra .
    Voir copie d'écran

  • 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 ?

  • bazooka07bazooka07 Member

    Je vous ai modifié le thème defaut de PluXml pour avoir le formulaire de contact sans avoir besoin de plugin.

    • Déplacer vous dans le dossier themes de votre site
    • renommer le dossier defaut en defaut.bak
    • télécharger l'archive zip dans ce dossier avec le lien suivant http://kazimentou.free.fr/shutter/theme-default-contact/kzDefaut-Contact.zip
    • déplier l'archive
    • retourner dans l'administration de PluXml
    • créer une page statique en choisissant static-contact.php comme gabarit ou modèle
      Le formulaire ressemble à ceci :
      formulaire
      Après envoi, on affiche cela :
      notification
      Et dans sa boite mail on retrouve ceci :
      Vous avez un message
      Et cela s'affiche dans toutes les langues de PluXml
  • cpalocpalo Member

    @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?

  • bazooka07bazooka07 Member

    Oui la version 6.0 est sur la branche master dans le dépôt Github.

    git clone https://github.com/kazimentou/PluXml.git
    

    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 :

    <?= defined('NOUVEAU_MOT') ? NOUVEAU_MOT : VIEUX_MOT ?>
    

    Mais si personne n'essaye, on n'avancera pas.

  • 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 ?

Connectez-vous ou Inscrivez-vous pour répondre.