web-dev-qa-db-fra.com

Envoi de données de formulaire via PHPMailer - Comment agir PHP script d'un formulaire

Quelques points faciles sur l'offre ...

Je souhaite utiliser un script PHP à partir d'une page WordPress, mais quel est le meilleur endroit pour stocker le script? Le script fonctionne parfaitement avec un environnement autre que WordPress dans une structure de répertoire HTML plate.

et je veux agir à partir de la page en utilisant le code suivant:

<form class="contact_form" form action="phpmailersub.php" method="post" enctype="multipart/form-data" name="contact_form" onsubmit="return validateForm()">

Qu'est-ce qui ira ensuite dans le formulaire action = "fichier"?

Actuellement, l'action de soumission recherche une page http://current/route/to/contact-test/phpmailersub.php, mais WordPress ne peut évidemment pas la trouver.

Votre aide serait très appréciée! Si je peux faire quelque chose pour articuler ma requête ou si vous avez besoin de matériel supplémentaire, je ferai de mon mieux pour vous aider.

UPDATE

Actuellement, le fichier PHP (phpmailersub.php) et class.phpmailer.php se trouvent dans: http://damtech.it/demo/etap/wp-content/plugins/phpmailersub.php

et mon code actuel ressemble à ceci:

<form class="contact_form" action="&lt;?php bloginfo('http://damtech.it/demo/etap/wp-content/plugins/'); ?&gt;&lt;p&gt;/phpmailersub.php" enctype="multipart/form-data" method="post" name="contact_form" onsubmit="return validateForm()">
<table class="contact">
<tbody>
<tr>
<td class="third"><input type="text" name="cf_mercury" required="" /></td>
<td><span style="color: #3c4247;">   Name</span><span style="color: #3492d1;">*</span></td>
</tr>
<tr>
<td class="third"><input type="email" name="cf_jupiter" required="" />
<span class="form_hint">Correct format "[email protected]"</span></td>
<td>   <span style="color: #3c4247;">E-mail</span><span style="color: #3492d1;">*</span></td>
</tr>
<tr>
<td colspan="2"><textarea name="cf_uranus" required="" rows="6"></textarea></td>
</tr>
</tbody>
</table>
<table class="contact">
<tbody>
<tr>
<td width="50%"><button class="submit" onclick="document.getElementById('contact_form').submit()" type="submit">Send message</button></td>
<td style="text-align: right;" width="50%"><span class="c-clear"><button class="reset" style="color: #3c4247; letter-spacing: -0.5px;" onclick="document.getElementById('contact_form').reset()" type="reset">reset</button></span></td>
</tr>
</tbody>
</table>
</form>
2
Paul

Vous êtes réellement plus proche dans votre première tentative.

Ma recommandation serait de créer un dossier appelé "scripts" dans la racine WP et de placer vos fichiers de script PHP ici ainsi que vos pièces jointes. Vous devrez ensuite déclarer le chemin complet dans votre attribut d'action car le script ne partage pas le même chemin de fichier que dans votre "structure de fichier HTML plat".

Votre code d'action sera alors action="http://damtech.it/demo/etap/scripts/phpmailersub.php"

Aussi simple que ça. Pas besoin de créer un plugin du tout (bien que cela puisse être une meilleure pratique). N'oubliez pas de modifier les détails dans phpmailersub.php afin de prendre en compte les modifications apportées en termes de chemins de pièces jointes (chemin du serveur), de pages orientées, etc.

1
BarmyArmy

N'appelez pas vos fichiers PHP directement. Cela casserait, car dans certaines configurations, le répertoire plugin pourrait être situé sur un autre domaine , et votre fichier fonctionnerait maintenant sans le contexte WordPress.

Utilisez l'URL actuelle comme URL d'action de formulaire ( ou admin-post.php ), puis testez si la demande est une demande POST et gérez la soumission du formulaire. Puis redirigez vers la page d'origine avec un en-tête de statut 303 .

3
fuxia

En supposant qu’aucun plug-in de formulaire de contact ne corresponde à vos besoins, la bonne façon de le faire dans wordpress est d’écrire et d’ajouter un modèle de page approprié à votre thème, qui contient et gère votre formulaire. Une fois cela fait, vous associez la page dans laquelle le formulaire doit être affiché avec le modèle de page, puis le chemin de votre action est simplement "".

2
Mark Kaplun