Ich habe eine einfache Website auf Node JS-Framework mit einem PHP-Mailer gebaut, um mit meinem Kontaktformular zu behandeln. Ich kann es anscheinend nicht zum Laufen bringen und ich frage mich, ob es ein inhärentes Problem mit Node JS selbst gibt, das den PHP-Code nicht verarbeiten kann. Es verfügt über eine HTML-Seite, index.html, die einen das Kontaktformular Code enthält:Node JS App verarbeitet PHP-Mailer-Code
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<h2 class="featurette-heading" style="text-align: center;">Message</h2>
<h3 class="text-muted">Want to book an appointment? Send me a message and I'll contact you. Make sure you include your name, phone number, email, and when you'd like to book. It's that easy!</h3>
<form name="sentMessage" id="contactForm" action="contact_me.php" method="post" novalidate>
<div style="background-color: white; border: 1px solid #0085a1;" class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label></label>
<input type="text" class="form-control" placeholder="Name" id="name" name="name" required data-validation-required-message="Please enter your name.">
<p class="help-block text-danger"></p>
</div>
</div>
<div style="background-color: white; border: 1px solid #0085a1;" class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label></label>
<input type="email" class="form-control" placeholder="Email Address" id="email" name="email" required data-validation-required-message="Please enter your email address.">
<p class="help-block text-danger"></p>
</div>
</div>
<div style="background-color: white; border: 1px solid #0085a1;" class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label></label>
<input type="tel" class="form-control" placeholder="Phone Number" id="phone" name="phone" required data-validation-required-message="Please enter your phone number.">
<p class="help-block text-danger"></p>
</div>
</div>
<div style="background-color: white; border: 1px solid #0085a1;" class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label></label>
<textarea rows="5" class="form-control" placeholder="Message" id="message" name="message" required data-validation-required-message="Please enter a message."></textarea>
<p class="help-block text-danger"></p>
</div>
</div>
<br>
<div id="success"></div>
<div class="row">
<div class="form-group col-xs-12">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
Zur gleichen Ordnerebene gibt es eine contact_me.php Datei:
<?php
// Check for empty fields
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['phone']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to.
$email_subject = "Website Contact Form: $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail:
$email_address\n\nPhone: $phone\n\nMessage:\n$message";
$headers = "From: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected]
$headers = "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
Immer, wenn ich getroffen " submit "am unteren Rand meines Formulars, bekomme ich den folgenden Fehler:" Kann nicht /contact_me.php POST ". Nach einigen Experimenten fügte ich eine echo-Anweisung in den php-Code ein (ich habe ein sehr begrenztes Verständnis von PHP) und stellte fest, dass der PHP-Server nicht läuft, während der Knoten-Server läuft. Wenn dies der Fall ist, was kann ich tun, um dieses Problem zu beheben? Gibt es etwas in einer route.js oder index.js (unter dem Knoten Express Server-Ordner), die ich hinzufügen muss, damit der PHP-Mailer funktioniert?
Wie betreiben Sie Ihren Knoten? und wo ist deine PHP-Datei? Wer bearbeitet Anfragen für den PHP? – Panther
und warum können Sie die E-Mail von Knoten senden? Warum brauchst du PHP um es zu tun? – Panther
1. Kommentieren Sie die Strings mit 'ersetzen [email protected] ...' und 'message to'. 2. Der Header' Reply-To: $ email_address' muss ohne Zeilenumbrüche sein. – Deadooshka