it-swarm.com.de

Formulardaten über PHPMailer senden - Vorgehensweise PHP Skript aus einem Formular

Einige einfache Punkte im Angebot ...

Ich möchte ein PHP -Skript von einer WordPress-Seite aus ausführen, aber wo ist der beste Ort, um das Skript zu speichern? Das Skript funktioniert einwandfrei mit einer Nicht-WordPress-Umgebung in einer flachen HTML-Verzeichnisstruktur.

und ich möchte es von der Seite aus mit dem folgenden Code ausführen:

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

Was wird dann in Form action = "file" gehen?

Gegenwärtig sucht die Übermittlungsaktion nach einer Seite http://current/route/to/contact-test/phpmailersub.php, aber WordPress kann sie offensichtlich nicht finden.

Ihre Hilfe wäre sehr dankbar! Wenn ich etwas tun kann, um meine Anfrage zu formulieren, oder wenn Sie zusätzliches Material benötigen, werde ich mein Bestes geben, um Ihnen zu helfen.

UPDATE

Derzeit befinden sich die PHP -Dateien (phpmailersub.php) und class.phpmailer.php in: http://damtech.it/demo/etap/wp-content/plugins/phpmailersub.php

und mein aktueller Code sieht so aus:

<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

Sie sind tatsächlich in Ihrem ersten Versuch näher.

Meine Empfehlung wäre, einen Ordner mit dem Namen "scripts" im WP Stammverzeichnis zu erstellen und Ihre PHP Skriptdateien sowie Ihre Anhänge hier abzulegen. Sie müssen dann den vollständigen Pfad in Ihrem Aktionsattribut deklarieren, da das Skript jetzt nicht denselben Dateipfad wie in Ihrer "flachen HTML-Dateistruktur" verwendet.

Ihr Aktionscode lautet dann action="http://damtech.it/demo/etap/scripts/phpmailersub.php"

So einfach ist das. Es muss überhaupt kein Plugin erstellt werden (obwohl dies eine bessere Übung sein kann). Vergessen Sie nicht, die Details in phpmailersub.php zu ändern, um den Änderungen in Bezug auf Anhangspfade (Serverpfad), Seitenanweisungen usw. Rechnung zu tragen.

1
BarmyArmy

Rufen Sie Ihre PHP -Dateien nicht direkt auf. Dies führt zu einer Unterbrechung, da sich in einigen Setups das Verzeichnis plugin möglicherweise in einer anderen Domäne befindet und Ihre Datei jetzt ohne den WordPress-Kontext ausgeführt wird.

Verwenden Sie die aktuelle URL als Formularaktions-URL ( oder admin-post.php ), testen Sie dann, ob die Anforderung eine POST-Anforderung ist, und behandeln Sie die Formularübermittlung. Kehren Sie dann mit einem 303-Statusheader zur ursprünglichen Seite zurück.

3
fuxia

Vorausgesetzt, es gibt kein Kontaktformular-Plug-in, das Ihren Anforderungen entspricht, besteht die richtige Methode in WordPress darin, eine entsprechende Seitenvorlage zu Ihrem Thema zu schreiben und hinzuzufügen, die Ihr Formular enthält und verarbeitet. Anschließend ordnen Sie der Seitenvorlage die Seite zu, auf der das Formular angezeigt werden soll, und Ihr Aktionspfad lautet einfach "".

2
Mark Kaplun