Wie Kann der Submit-Button des HTML Formulars senden Sie eine Mail an webmaster ohne Eröffnung des Benutzers E-Mail-client, und leiten Sie zu einer anderen Seite danach?
Ich habe eine sehr einfache HTML-Formular:
<form method="post" action="http://someurl.com" target="_new">
<input name="name" value="" type="text" placeholder="Your First Name" />
<input name="from" value="" type="text" placeholder="Your Best Email" />
<input type="image" name="image" src="images/submit.gif" type="submit" />
</form>
Beim form submit, möchte ich für die Umleitung auf die angegebene URL in der form-action-oben-UND auch für Sie, senden Sie mir eine E-Mail OHNE Sie zu ÖFFNEN BENUTZERS E-MAIL-CLIENT die Benachrichtigung eines Benutzers ausfüllen des Formulars.
Für das, was ich online erfasst und von dieser Website als gut, ich müsste so etwas wie unten im php-Formular
<?php
///subscribe form
$recipient = "[email protected]"; /// Your Email address
if (isset($_POST['email']))
{
//Send Mail To Webmaster
$email = $_POST['email'] ;
$subject = 'New Subscriber';
$message = $email . ' has been subscribed to your website.';
mail("$recipient", $subject,
$message, "From:" . $recipient);
;}
?>
Aber ich bin nicht kompetent genug, zum erstellen von AJAX-code zu kombinieren, die zwei von Ihnen?
ICH SCHÄTZE IHRE HILFE, BITTE GENAU! Ich habe gesehen Tonnen von Antworten auf ähnliche Fragen mit generischen Antworten, wenn Sie wissen, ich habe mit php, ajax etc. bitte geben Sie an, wie und liefern ein Beispiel-code. dh. muss ich eine Datei erstellen mit diesem code und wie kann ich das aufrufen der Datei und machen es zu arbeiten aus meiner HTML-Formular? etc.
UPDATE, ok, fand ich script.js unten was ist, was fordert die oben genannten php-Datei aufgerufen mail.php
ES FUNKTIONIERT! aber ... es sendet die E-Mail an mich mit der E-Mail die Identifikationsdaten der person, die den Bogen ausgefüllt haben, nicht der name.
$(function() {
$(".submit-btn").click(function() {
var x=$(".mail-input").val();
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
var email = $(".mail-input").val();
var dataString = 'email='+ email;
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
$(".mail-input").css({"background-color":"rgba(216, 70, 55, 0.64)"});
}
else
{
$.ajax({
type: "POST",
url: "mail.php",
data: dataString,
success: function(){
window.location.href = "http://someurl.com";
}
});
}
return false;
});
KANN MIR JEMAND SAGEN, wie erfassen Sie auch das Feld name, Daten von meinem Formular aus und senden Sie es an die E-Mail als gut, sieht aus wie der code oben ist gedacht für ein Formular mit nur einem Feld E-Mail und sendet diese Daten an den webmaster, ich muss hinzufügen das Feld name aus meinem Formular den code.
Dank!
InformationsquelleAutor JQNoob | 2013-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht ajax für diese, nur die form der Aktion, um Ihre php-Skripte url.
Umleiten der Benutzer, Sie können die php-Funktion Lage (demo drin ist). Legen Sie einfach den Anruf, um
location
nach dem Aufrufmail
.InformationsquelleAutor peaceman
Okay, ein paar Dinge:
Ich bin mir nicht sicher ob ich das Lesen der Beispiel-php-richtig, aber wollen Sie das setzen der From-Adresse den Wert in
$_POST['email']
? Wenn ja, ist dies sehr schlechte Praxis, und wird wahrscheinlich dazu führen, dass Ihr web-host deaktivieren Sie Ihre Fähigkeit zum senden von E-Mails von Ihren Servern. Stellen Sie sicher, dass die " Von " - Adresse ist eine, die Sie besitzen oder kontrollieren, nicht einer durch den Benutzer bereitgestellt werden. Siehe meine Kommentare und andere für ein Frage, wo war dies die Absicht.Wenn Sie möchten, senden Sie die E-Mail und dann umleiten, umleiten aus dem Skript behandelt das senden der E-Mail anstelle der Einstellung die redirect-URL in der form:
<form method="post" action="/form_handler.php" target="_new"></form>
Neben einer Menge anderer Probleme mit der grob vereinfachte Skript oben (es ist nicht bereinigt, die Benutzer-Eingabe, er ist sehr offen für einen DoS-Angriff, etc), es ist nicht immer eine gute Idee, einen außen-abhängigen Ereignis--wie Sie die Verbindung zu einem E-Mail-server und senden einer E-Mail auftreten, in der eigentlichen Anfrage - /Antwort-der-Formular-Skript. Dies ist etwas, was ich die harte Tour gelernt haben. Wenn aus irgendeinem Grund die E-Mail nicht reagiert oder den mail-server friert beim senden, etc., der Benutzer ist Links, dort zu sitzen, zu warten, das Skript zu bewegen auf den nächsten Teil (in diesem Fall den redirect) und hat keine Ahnung, warum die Seite nicht aktualisiert wird (und fyi, das ist ein Problem mit AJAX so gut, es hat nur leicht andere lästige Symptome und kann schwerer zu Debuggen, also nicht denken, das ist die einfache Lösung). Sie betrachten wünschen können, die Speicherung der Besucher die E-Mail-Adresse und andere details mit einer lokalen Datenbank oder ähnliches und senden Sie die Benutzer auf Ihre Art und Weise und dann mit einem Planer von einer Art (in der Regel läuft per cron auf dem back-End), der periodisch prüft, ob es neue E-Mail-Adressen seit der letzten überprüfung, und wenn ja, sendet die E-Mails unabhängig von der Benutzer das Formular abschicken.
Schließlich würde ich Wette eine million Dollar, es gibt mindestens 4 gute php-frameworks, die behandeln würden, die Sicherheit, verwalten die E-Mail versendet (und SMTP verwenden, anstatt der php-limited
mail()
- Funktion), würde die Umleitung der user und nutzt ein Planer oder job-Warteschlange, wie ich beschrieben. Wenn Sie wollen, sind zu lernen, den Umgang mit dem Szenario, das Sie beschrieben, um Sie verbessern die Fähigkeiten und das Verständnis von web-Anwendungen und php, genial. Wenn Sie beabsichtigen, zu implementieren die Lösungen, die hier angeboten werden, in einem real-world-Website, empfehle ich dringend stoppen Sie jetzt, bevor Sie zu bekommen in über dem Kopf (oder noch schlimmer, implementieren Sie eine unsichere, nicht-sicheren, instabile Lösung) und stattdessen schauen Sie in einige der besseren leichten php-frameworks.InformationsquelleAutor Anthony