Hallo allemaal,

Ik heb een probleem met mijn verzend formulier.
Als je op verzend klikt gaat hij naar mail.php, alleen hier geeft hij een witte pagina.

Heeft iemand een idee wat er fout gaat?

De invul velden, is een HTML bestand

<form class="form" method="post" action="mail/mail.php">
							<div class="form-group">
								<input type="text" name="name" placeholder="Naam" required="required">
                            </div>
							<div class="form-group">
								<input type="email" name="email" placeholder="Email" required="required">
                            </div>
							<div class="form-group">
								<input type="text" name="subject" placeholder="Onderwerp" required="required">
                            </div>
							<div class="form-group">
								<textarea name="message" rows="6" placeholder="Bericht" ></textarea>
                            </div>
							<div class="form-group">	
								<button type="submit" class="button primary"><i class="fa fa-send"></i>Verzend</button>
                            </div>
						</form>


mail.php

<?
$name = $_POST{'name'};
$email = $_POST{'email'};
$subject = $_POST['subject'];
$message = $_POST['message'];

$email_message = "

Naam: ".$name."
Email: ".$email."
Onderwerp: ".$subject."
Bericht: ".$message."

";

mail ("[email protected]" , "Nieuw Bericht", $email_message);
header("location: ../mail-success.html");
?>


Alvast bedankt
Een witte pagina duidt meestal op fouten.

Wat ik sowieso op regel 2 en 3 zie zijn { accolades } in plaats van [ rechte haken ] rondom de $_POST variabelen.

Daarnaast wil je waarschijnlijk een controle doen of er inderdaad informatie ge-POST is, omdat je anders wel erg makkelijk gespamd kunt worden. Dus zoiets:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // de overige code uit mail.php
}
?>

Mogelijk wil je ook nog andere controles inbouwen om de hoeveelheid spam en onzinberichten verder in te dammen.

Voor ontwikkelingsdoeleinden kun je altijd de volgende snippet toevoegen aan het begin van je code:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
ini_set('display_startup_errors', true);
?>

Dit zorgt ervoor dat er, in het gunstigste geval, fouten worden gemeld + weergegeven. Wanneer je deze code aanbrengt in mail.php zonder dat je (voor nu) andere aanpassingen doet dan krijg je waarschijnlijk een melding over regel 2.
Bedankt, heb de accolades over het hoofd gezien.
Hij werkt nu weer naar behoren!

Reageren