Foutmelding bij verzenden van contactformulier

Status
Niet open voor verdere reacties.

rob1970

Gebruiker
Lid geworden
14 jan 2012
Berichten
296
Ik heb een andere menubalk er boven gezet en nu staat alles wat mij betreft goed.
Maar zoals gebruikelijk gaat er op het moment supreme nog iets fout.

Ik krijg een foutmelding bij het verzenden van het contactformulier. (zie bijlage)
Het zal wellicht iets simpels zijn maar ik kom er niet uit.

Dit is de html van het contactformulier:
Code:
<div id="contact-form">

                  <!-- form -->
                  <form name="contactForm" id="contactForm" method="post" action="sendEmail.php">
      					<fieldset>

                        <div class="half">
      						   <label for="contactName">Name <span class="required">*</span></label>
      						   <input name="contactName" type="text" id="contactName" size="35" value="" />
                        </div>

                        <div class="half pull-right">
      						   <label for="contactEmail">Email <span class="required">*</span></label>
      						   <input name="contactEmail" type="text" id="contactEmail" size="35" value="" />
                        </div>

                        <div>
      						   <label for="contactSubject">Subject</label>
      						   <input name="contactSubject" type="text" id="contactSubject" size="35" value="" />
                        </div>

                        <div>
                           <label  for="contactMessage">Message <span class="required">*</span></label>
                           <textarea name="contactMessage"  id="contactMessage" rows="15" cols="50" ></textarea>
                        </div>

                        <div>
                           <button class="submit">Submit</button>
                           <span id="image-loader">
                              <img src="images/loader.gif" alt="" />
                           </span>
                        </div>

      					</fieldset>
      				</form> <!-- Form End -->

                  <!-- contact-warning -->
                  <div id="message-warning"></div>
                  <!-- contact-success -->
      				<div id="message-success">
                     <i class="icon-ok"></i>Your message was sent, thank you!<br />
      				</div>

              </div>


En dit is de php:

<?php

// Replace this with your own email address
$siteOwnersEmail = 'info@met-rob.com';


if($_POST) {

   $name = trim(stripslashes($_POST['contactName']));
   $email = trim(stripslashes($_POST['contactEmail']));
   $subject = trim(stripslashes($_POST['contactSubject']));
   $contact_message = trim(stripslashes($_POST['contactMessage']));

   // Check Name
	if (strlen($name) < 2) {
		$error['name'] = "Please enter your name.";
	}
	// Check Email
	if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
		$error['email'] = "Please enter a valid email address.";
	}
	// Check Message
	if (strlen($contact_message) < 5) {
		$error['message'] = "Please enter your message. It should have at least 5 characters.";
	}
   // Subject
	if ($subject == '') { $subject = "Contact Form Submission"; }


   // Set Message
   $message .= "Email from: " . $name . "<br />";
	$message .= "Email address: " . $email . "<br />";
   $message .= "Message: <br />";
   $message .= $contact_message;
   $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />";

   // Set From: header
   $from =  $name . " <" . $email . ">";

   // Email Headers
	$headers = "From: " . $from . "\r\n";
	$headers .= "Reply-To: ". $email . "\r\n";
 	$headers .= "MIME-Version: 1.0\r\n";
	$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";


   if (!$error) {

      ini_set("sendmail_from", $siteOwnersEmail); // for windows server
      $mail = mail($siteOwnersEmail, $subject, $message, $headers);

		if ($mail) { echo "OK"; }
      else { echo "Something went wrong. Please try again."; }
		
	} # end if - no validation error

	else {

		$response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null;
		$response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null;
		$response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;
		
		echo $response;

	} # end if - there was a validation error

}

?>

Schermafbeelding 2020-05-13 om 11.08.44.png

mod: Contactformulier is een ander onderwerp, dus een nieuwe vraag.
 
Laatst bewerkt door een moderator:
Rob1970, wil je die hele lap tekst met code in de tag code zetten?
Dat is het hekje. Dank je wel, Leest wat fijner.
 
mail-functie is disabled. Heb je dit al bij je hosting neergelegd?

Eigenlijk is dit meer voer voor een nieuw topic geweest ;)
 
@rob1970 Wil je de code voorzien van
Code:
 ...
of een andere programmeer tag.


Code-Tags.jpg
 
Persoonlijk ben ik voorstander van smtp. Dit is heel makkelijk te doen met PHPMailer.
Hier (klik) vind je de PHPMailer php-bestanden met voorbeelden.
Bekijk in mapje examples eens bestand contactform.php en je bent klaar. Alle uitleg staat erbij.
 
Laatst bewerkt:
zo?

Code:
<div id="contact-form">

<!-- form -->
<form name="contactForm" id="contactForm" method="post" action="sendEmail.php">
<fieldset>

<div class="half">
<label for="contactName">Name <span class="required">*</span></label>
<input name="contactName" type="text" id="contactName" size="35" value="" />
</div>

<div class="half pull-right">
<label for="contactEmail">Email <span class="required">*</span></label>
<input name="contactEmail" type="text" id="contactEmail" size="35" value="" />
</div>

<div>
<label for="contactSubject">Subject</label>
<input name="contactSubject" type="text" id="contactSubject" size="35" value="" />
</div>

<div>
<label for="contactMessage">Message <span class="required">*</span></label>
<textarea name="contactMessage" id="contactMessage" rows="15" cols="50" ></textarea>
</div>

<div>
<button class="submit">Submit</button>
<span id="image-loader">
<img src="images/loader.gif" alt="" />
</span>
</div>

</fieldset>
</form> <!-- Form End -->

<!-- contact-warning -->
<div id="message-warning"></div>
<!-- contact-success -->
<div id="message-success">
<i class="icon-ok"></i>Your message was sent, thank you!<br />
</div>

</div>
 
PHP:
<div id="contact-form">

<!-- form -->
<form name="contactForm" id="contactForm" method="post" action="sendEmail.php">
<fieldset>

<div class="half">
<label for="contactName">Name <span class="required">*</span></label>
<input name="contactName" type="text" id="contactName" size="35" value="" />
</div>

<div class="half pull-right">
<label for="contactEmail">Email <span class="required">*</span></label>
<input name="contactEmail" type="text" id="contactEmail" size="35" value="" />
</div>

<div>
<label for="contactSubject">Subject</label>
<input name="contactSubject" type="text" id="contactSubject" size="35" value="" />
</div>

<div>
<label for="contactMessage">Message <span class="required">*</span></label>
<textarea name="contactMessage" id="contactMessage" rows="15" cols="50" ></textarea>
</div>

<div>
<button class="submit">Submit</button>
<span id="image-loader">
<img src="images/loader.gif" alt="" />
</span>
</div>

</fieldset>
</form> <!-- Form End -->

<!-- contact-warning -->
<div id="message-warning"></div>
<!-- contact-success -->
<div id="message-success">
<i class="icon-ok"></i>Your message was sent, thank you!<br />
</div>

</div>
 
Dat is beter leesbaar als je dat in het vervolg wilt gebruiken.

Verder raad ik ook aan om phpMailer te gebruiken, in plaats van de mail() -functie.
 
Ok. maar dan moet ik daar weer helemaal induiken.

Dat wil ik best doen maar deze website moet zsm de lucht in.

Dus dat ga ik zeker doen maar zou nu graag dit werkend willen hebben.
 
Download PHPmailer, en plaats dit in /phpMailer

Zet dit bovenaan in je PHP-codeblok (na je <?php), en pas het aan met jouw SMTP-instellingen.
Code:
require 'phpMailer/PHPMailerAutoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = "mail.example.com";
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 25;
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication
$mail->Username = "yourname@example.com";
//Password to use for SMTP authentication
$mail->Password = "yourpassword";

Zorg dat je PHPMailerAutoload.php in dezelfde map hebt staan.




Verwijder dit:
Code:
// Set From: header
$from = $name . " <" . $email . ">";

// Email Headers
$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";


if (!$error) {

ini_set("sendmail_from", $siteOwnersEmail); // for windows server
$mail = mail($siteOwnersEmail, $subject, $message, $headers);

if ($mail) { echo "OK"; }
else { echo "Something went wrong. Please try again."; }

En pas het aan naar:
Code:
//Set who the message is to be sent from
$mail->setFrom($from, $email);
//Set an alternative reply-to address
$mail->addReplyTo($from, $email);
//Set who the message is to be sent to
$mail->addAddress('jouw@mail@adres.nl', 'Rob');
//Set the subject line
$mail->Subject = $subject;
$mail->msgHTML($message);



//send the message, check for errors
if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "OK";
}
?>
 
Laatst bewerkt:
Documentatie, alleen als je alle instellingen wilt weten.
https://phpmailer.github.io/PHPMailer/classes/PHPMailer.PHPMailer.PHPMailer.html

Belangrijk voor een goede werking zijn encryptie en poortnr (vind je terug op de website van je provider)
Code:
// bij true wordt autom. TLS encryptie gebruikt als de mailserver dit support.
// dit werkt alleen goed als de mailserver een geldig certificaat heeft.
$mail->SMTPAutoTLS = false;

// encryptie 'ssl' of 'tls' (voorkeur 'tls' als mailserver dit support)
$mail->SMTPSecure = "ssl";

// poortnummer, mestal 465 (ssl) of 587 (tls/ssl) of 25 (geen encryptie)
$mail->Port = 465;
 
Laatst bewerkt:
Fijn dat het nu werkt!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan