Wanneer ik onderstaand pagina oproep, dan krijg ik een wit pagina.
Er is blijkbaar een syntax fout,maar ik kan het niet vinden.
live voorbeeld: jocke-overwater.nl/contact.php


<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// define variables and set to empty values
$vnaamErr = $anaamErr = $emailErr = "";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  if (empty($_POST["voornaam"])) {
    $vnaamErr = "Graag uw voornaam invullen";
  } else {
    $voornaam = test_input($_POST["voornaam"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z-' ]*$/",$voornaam)) {
      $vnaamErr = "Uw voornaam mag alleen letters en spaties bevatten";
    }
  }

  if (empty($_POST["achternaam"])) {
    $anaamErr = "Graag uw achternaam invullen";
  } else {
    $achternaam = test_input($_POST["achternaam"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z-' ]*$/",$achternaam)) {
      $anaamErr = "Uw achternaam mag alleen letters en spaties bevatten";
    }
  }

  if (empty($_POST["mailadres"])) {
    $emailErr = "Graag uw mailadres invullen";
  } else {
    $email = test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Het formaat van het ingevoerde mailadres is niet correct";
    }
  }

  $uwvraag = $_POST["mailadres"] ;
  if (empty($vnaamErr && $anaamErr && $emailErr)) {
    //mail versturen
  
    $to = "Naar het mailadres";
    $subject = "Mail afkomstig uit de website";
    $body = "";
    $body. = "Voornaam: " . $voornaam . "\r\n";
    $body. = "Achternaam: " . $achternaam . "\r\n";
    $body. = "Het mailadres: " . $voornaam . "\r\n";
    $body. = "Uw vraag: " . $uwvraag. "\r\n"; 
    $headers ="From: [email protected] \r\n";
    $headers .="MIME-Version: 1.0" . "\r\n";
    $headers .="Content-type:text/html;charset=UTF-8" . "\r\n";
    if (mail($to,$subject,$body)) {
      echo "bedankt voor uw mail. We nemen zsm contact met je op!";
    } else {
      echo "Mail niet verstuurd!";
    }
    
  } else {
    echo "Er is iets mis gegaan met het contactformulier.";
  }

}
function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}



$page = "contact";
include "Inc/header.php";
?>
<div class="main">
<div class="formulier">
<h2>Contact formulier</h2><br/><br/>
<span>* verplichte velden</span><br/><br/>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
        <label for="Voornaam">Voornaam</label><br />
        <input type="text" id="voornaam" name="voornaam" value="<?php if (isset($_POST['voornaam']))echo htmlspecialchars($_POST['voornaam'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        <label for="achternaam">Achternaam</label><br />
        <input type="text" id="achternaam" name="achternaam" value="<?php if (isset($_POST['achternaam']))echo htmlspecialchars($_POST['achternaam'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        <label for="Mailadres">Mailadres</label><br />
        <input type="email" id="mailadres" name="mailadres" value="<?php if (isset($_POST['mailadres']))echo htmlspecialchars($_POST['mailadres'], ENT_QUOTES); ?>" required><span>*</span><br /><br />
        </br>
        <label for="uwvraag">Uw vraag:</label></br>
        <textarea id="uwvraag" name="uwvraag" rows="4" cols="50"></textarea></br></br>
        <input type="submit" value="Verzenden"> <input type="reset" value="Reset">
    </form>
  </div>  
  </div>
  <?php
include "Inc/footer.php";
?>
- Ariën - op 26/09/2022 11:22:00

Een paar tips voor goede afhandeling van de mail()-functie:

- Gebruik je eigen domeinnaam in het mailadres als afzender, dus geen hotmail.com, gmail.com of whatever.com

- Zorg dat het mailadres ook bestaat als alias die aan een mailbox of forwarder gekoppeld is.

Maar phpMailer blijft het beste.

Het is gelukt om middels mail() functie te kunnen mailen. Ik moest daarvoor wel gebruik maken van to en naar mailadressen die horen bij het domeinnaam.
Wat ik nu wil is dat de inhoud van de mail netje wordt weergeven en vooral de zinnen onder elkaar.
Hiervoor gebruik ik al "\r\n" en blijkbaar wordt dit genegeerd.
Iemand een idee?

Opsich zou dat geen probleem mogen zijn.
gebruik je nog bepaalde headers?
>> Ik moest daarvoor wel gebruik maken van to en naar mailadressen die horen bij het domeinnaam.

Wat bedoel je daarmee? Kun je nu alleen maar mailen naar mailadressen van hetzelfde domein?

>> Wat ik nu wil is dat de inhoud van de mail netje wordt weergeven en vooral de zinnen onder elkaar.

In je headers stel je het formaat in op html. Ik zou het eens proberen met <br>.

$message.= "Voornaam: " .$voornaam. "<br>";
Ozzie PHP op 27/09/2022 01:02:20

>> Ik moest daarvoor wel gebruik maken van to en naar mailadressen die horen bij het domeinnaam.

Wat bedoel je daarmee? Kun je nu alleen maar mailen naar mailadressen van hetzelfde domein?

>> Wat ik nu wil is dat de inhoud van de mail netje wordt weergeven en vooral de zinnen onder elkaar.

In je headers stel je het formaat in op html. Ik zou het eens proberen met <br>.

$message.= "Voornaam: " .$voornaam. "<br>";


Nee, wat ik bedoel is dat ik in het PHP script van en naar mailadressen moest opgeven die bij dat domeinnaam hoorden, anders werkt het idd niet.
De afzenders dus.
Die specificeer je in de From: header.

Reageren