Probleem met verzend formulier
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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>
<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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
$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");
?>
$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
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:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// de overige code uit mail.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:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
ini_set('display_startup_errors', true);
?>
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.
Hij werkt nu weer naar behoren!