Email form met 3 pagina's
Ik probeer al een tijdje een email form te maken met 3 verschillende pagina's. De eerste waar je de gegevens kan invullen, tweede waar je de gegevens kan controleren en uitprinten en de derde wat een bedankt pagina is en wat de email stuurt.
Dit is de eerste pagina:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form method="post" action="print.php">
<ul>
<li>
<label for="achternaam">Achternaam*</label>
<input type="text" name="achternaam" id="achternaam" class="textfields">
</li>
<li>
<label for="naam">Voornaam*</label>
<input type="text" name="naam" id="naam" class="textfields">
</li>
<li>
<label for="pin">PIN nummer*</label>
<input type="text" name="pin" id="pin" class="textfields">
</li>
<input type="submit" class="button" value="Verzend">
<br>
</ul>
</form>
<ul>
<li>
<label for="achternaam">Achternaam*</label>
<input type="text" name="achternaam" id="achternaam" class="textfields">
</li>
<li>
<label for="naam">Voornaam*</label>
<input type="text" name="naam" id="naam" class="textfields">
</li>
<li>
<label for="pin">PIN nummer*</label>
<input type="text" name="pin" id="pin" class="textfields">
</li>
<input type="submit" class="button" value="Verzend">
<br>
</ul>
</form>
Dit is de tweede pagina:
Dit werkte alleen werd op de derde pagina de email niet verzonden.
En dit is de derde pagina:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php session_start();
$achternaam = $_POST['achternaam'];
$naam = $_POST['naam'];
$pin = $_POST['pin'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$email = $_POST['email'];
$to ='[email protected]';
$subject ='bestelformulier';
$body = <<<EMAIL
Naam: $naam $achternaam
Email: $email
Nummer: $nummer
Onderwerp: $onderwerp
Bericht: $vragen
EMAIL;
$headers = "From: [email protected]\r\n";
$headers = "Reply-to: $naam <$email>\r\n";
if ($_POST)
{
mail($to, $subject, $body, $headers);
$goed = 'Bericht verzonden, we zullen zo snel mogelijk contact met u opnemen.';
}
?>
$achternaam = $_POST['achternaam'];
$naam = $_POST['naam'];
$pin = $_POST['pin'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$email = $_POST['email'];
$to ='[email protected]';
$subject ='bestelformulier';
$body = <<<EMAIL
Naam: $naam $achternaam
Email: $email
Nummer: $nummer
Onderwerp: $onderwerp
Bericht: $vragen
EMAIL;
$headers = "From: [email protected]\r\n";
$headers = "Reply-to: $naam <$email>\r\n";
if ($_POST)
{
mail($to, $subject, $body, $headers);
$goed = 'Bericht verzonden, we zullen zo snel mogelijk contact met u opnemen.';
}
?>
Deze pagina verzond de email niet.
Ik hoop dat het probleem duidelijk is en dat iemand me hiermee kan helpen.
Bvd,
Tymen
Gewijzigd op 19/08/2014 14:58:49 door Tymen Wander
Tymen Wander op 19/08/2014 14:57:41:
Dat kan nooit, alleen, de tweede pagina zijn. Met deze code kan het in ieder geval niet werken. En hoe kom je van de tweede op de 3e pagina?
Waarom maak je op de derde pagina al die variabelen aan (regel 2 t/m 9 + 11 en 13)?
Ik zou van $body een 'gewone' variabele maken. Wat zit er in $body als je die echoot?
Verder zou ik geen variabelen zonder controle / beveiliging in een mail zetten.
Waar controleer je of de mail verzonden wordt? Je gaat er nu van uit dat die verzonden wordt.
De headers van je mail lijken mij ook onjuist (http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders)
Kijk anders eens naar swiftmailer of phpmailer, nemen je het nodige werk uit handen t.a.v. instellingen voor de mailfunctie van php.
Gewijzigd op 19/08/2014 21:58:33 door Obelix Idefix
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
session_start();
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['achternaam'] = $_POST['achternaam'];
$_SESSION['pin']; = $_POST['pin'];
?>
session_start();
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['achternaam'] = $_POST['achternaam'];
$_SESSION['pin']; = $_POST['pin'];
?>
Als voor de drie velden nog geen sessie gecreëerd is, dan wordt het eerste formulier weergegeven. (Let op: print.php wordt op de huidige pagina dan uitgevoerd).
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
if (!(isset($_SESSION['naam']) && $_SESSION['naam'] != '') || !(isset($_SESSION['achternaam']) && $_SESSION['achternaam'] != '') || !(isset($_SESSION['pin']) && $_SESSION['pin'] != '')) {
echo '<form method="post" action="">
<ul>
<li>
<label for="achternaam">Achternaam*</label>
<input type="text" name="achternaam" id="achternaam" class="textfields">
</li>
<li>
<label for="naam">Voornaam*</label>
<input type="text" name="naam" id="naam" class="textfields">
</li>
<li>
<label for="pin">PIN nummer*</label>
<input type="text" name="pin" id="pin" class="textfields">
</li>
<input type="submit" class="button" value="Verzend">
<br>
</ul>';
}
else{
echo 'Controleer de velden';
echo "<br> $naam";
echo "<br> $achternaam";
echo "<br> $pin";
echo 'J email formulier (je waarden voor $naam zijn nu niet $_POST['naam'] maar $_SESSION['naam']';
}
?>
if (!(isset($_SESSION['naam']) && $_SESSION['naam'] != '') || !(isset($_SESSION['achternaam']) && $_SESSION['achternaam'] != '') || !(isset($_SESSION['pin']) && $_SESSION['pin'] != '')) {
echo '<form method="post" action="">
<ul>
<li>
<label for="achternaam">Achternaam*</label>
<input type="text" name="achternaam" id="achternaam" class="textfields">
</li>
<li>
<label for="naam">Voornaam*</label>
<input type="text" name="naam" id="naam" class="textfields">
</li>
<li>
<label for="pin">PIN nummer*</label>
<input type="text" name="pin" id="pin" class="textfields">
</li>
<input type="submit" class="button" value="Verzend">
<br>
</ul>';
}
else{
echo 'Controleer de velden';
echo "<br> $naam";
echo "<br> $achternaam";
echo "<br> $pin";
echo 'J email formulier (je waarden voor $naam zijn nu niet $_POST['naam'] maar $_SESSION['naam']';
}
?>
Verder zou ik consequent zijn: je gebruikt nu in de regels 27 / 31 de ene keer echo met ' en de andere keer "