Bericht op een andere plek laten zien
Vanaf een YT-video heb ik onderstaande code bij de regels 54, 80 en 120 vandaan gehaald.
Het zorgt voor dat of het formulier wordt laten zien of het succesbericht, nadat het formulier succesvol is verzonden.
Het succesbericht wordt nu bovenaan weergegeven en ik wil het in het midden van het pagina.
Ik zit eraan te denken om het succesbericht aan een variabel te koppelen, maar weet niet qua logica waar het variabel te plaatsen.
Iemand een idee?
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
// define variables and set to empty values
$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST["voornaam"])) {
$errors['voornaam'] = "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)) {
$errors['voornaam'] = "Uw voornaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["achternaam"])) {
$errors['achternaam'] = "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)) {
$errors['achternaam'] = "Uw achternaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["mailadres"])) {
$errors['mailadres'] = "Graag uw mailadres invullen";
} else {
$email = test_input($_POST["mailadres"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors['mailadres'] = "Het formaat van het ingevoerde mailadres is niet correct";
}
}
$uwvraag = test_input($_POST["uwvraag"]) ;
if (count($errors) == 0) {
//mail versturen
$to = "[email protected]";
$subject = "Mail afkomstig uit de website";
$message= "";
$message.= "Voornaam: " .$voornaam. "\r\n";
$message.= "Achternaam: " .$achternaam. "\r\n";
$message.= "Het mailadres: " .$email. "\r\n";
$message.= "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,$message,$headers)) {
$hide = 1;
echo "Bedankt voor uw mail. Er wordt contact met u opgenomen!";
} else {
echo "Mail niet verstuurd!";
}
}
}
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">
<?php
if (!isset($hide)) { ?>
<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 />
<span>
<?php
if (isset($errors['voornaam'])) {
echo $errors['voornaam'];
}
?>
</span>
<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 />
<span>
<?php
if (isset($errors['achternaam'])) {
echo $errors['achternaam'];
}
?>
</span>
<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>
<span>
<?php
if (isset($errors['mailadres'])) {
echo $errors['mailadres'];
}
?>
</span>
<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>
<?php
}
?>
</div>
<?php
include "Inc/footer.php";
?>
// define variables and set to empty values
$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST["voornaam"])) {
$errors['voornaam'] = "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)) {
$errors['voornaam'] = "Uw voornaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["achternaam"])) {
$errors['achternaam'] = "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)) {
$errors['achternaam'] = "Uw achternaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["mailadres"])) {
$errors['mailadres'] = "Graag uw mailadres invullen";
} else {
$email = test_input($_POST["mailadres"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors['mailadres'] = "Het formaat van het ingevoerde mailadres is niet correct";
}
}
$uwvraag = test_input($_POST["uwvraag"]) ;
if (count($errors) == 0) {
//mail versturen
$to = "[email protected]";
$subject = "Mail afkomstig uit de website";
$message= "";
$message.= "Voornaam: " .$voornaam. "\r\n";
$message.= "Achternaam: " .$achternaam. "\r\n";
$message.= "Het mailadres: " .$email. "\r\n";
$message.= "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,$message,$headers)) {
$hide = 1;
echo "Bedankt voor uw mail. Er wordt contact met u opgenomen!";
} else {
echo "Mail niet verstuurd!";
}
}
}
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">
<?php
if (!isset($hide)) { ?>
<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 />
<span>
<?php
if (isset($errors['voornaam'])) {
echo $errors['voornaam'];
}
?>
</span>
<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 />
<span>
<?php
if (isset($errors['achternaam'])) {
echo $errors['achternaam'];
}
?>
</span>
<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>
<span>
<?php
if (isset($errors['mailadres'])) {
echo $errors['mailadres'];
}
?>
</span>
<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>
<?php
}
?>
</div>
<?php
include "Inc/footer.php";
?>
Ik zou er wel voor zorgen dat je, als het met succes verstuurd is, dat het formulier niet verschijnt.
Gewijzigd op 27/09/2022 23:40:53 door - Ariën -
- Ariën - op 27/09/2022 23:40:34:
je kan het succesbericht uit je mailfunctie-statement toch in een variabele plaatsen, en die weer ergens in je layout plaatsen? Dat doe je ook met je errors.
Ik zou er wel voor zorgen dat je, als het met succes verstuurd is, dat het formulier niet verschijnt.
Ik zou er wel voor zorgen dat je, als het met succes verstuurd is, dat het formulier niet verschijnt.
Dat is precies ook mijn gedachten en waar plaats ik dat variabel van het succesbericht?
Zojuist heb ik het onderstaande code geprobeerd en het wordt niet weergegeven nadat het formulier succesvol is verzonden.
Wat jij een mooie plek vindt in je layout.
- Ariën - op 28/09/2022 01:18:53:
Wat jij een mooie plek vindt in je layout.
In het midden van het pagina bijv....
Ikzelf raad aan de meldingen dat iets gelukt is zonder formulier plaatsen.
Lukt het niet? Kopieer je contact-formulier project en kleed het even uit voor beter overzicht.
- Ariën - op 28/09/2022 10:53:49:
Probeer het.
Ikzelf raad aan de meldingen dat iets gelukt is zonder formulier plaatsen.
Lukt het niet? Kopieer je contact-formulier project en kleed het even uit voor beter overzicht.
Ikzelf raad aan de meldingen dat iets gelukt is zonder formulier plaatsen.
Lukt het niet? Kopieer je contact-formulier project en kleed het even uit voor beter overzicht.
Nou ik dacht, omdat ik op regel 81 controleer of het variabel $hide geen waarde bevat, dan laat ik het formulier zie en op regel 121 de inhoud van het $bericht variabel te laten zien, want dan is het formulier verzonden.
Het resultaat: de inhoud van het formulier wordt verzonden, maar daarna verschijnt geen bericht!
Hoe nu verder?
Gewijzigd op 28/09/2022 15:39:37 door - Ariën -
- Ariën - op 28/09/2022 15:39:23:
Laat eens een versimpelde testcase zien in code en werking. (+/- 20 regels)
Haha! Nou zo complex is het niet hoor, met name vanaf regel 121 tot 122
Zie hieronder wat ik heb geprobeerd!
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
// define variables and set to empty values
$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST["voornaam"])) {
$errors['voornaam'] = "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)) {
$errors['voornaam'] = "Uw voornaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["achternaam"])) {
$errors['achternaam'] = "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)) {
$errors['achternaam'] = "Uw achternaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["mailadres"])) {
$errors['mailadres'] = "Graag uw mailadres invullen";
} else {
$email = test_input($_POST["mailadres"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors['mailadres'] = "Het formaat van het ingevoerde mailadres is niet correct";
}
}
$uwvraag = test_input($_POST["uwvraag"]) ;
if (count($errors) == 0) {
//mail versturen
$to = "[email protected]";
$subject = "Mail afkomstig uit de website";
$message= "";
$message.= "Voornaam: " .$voornaam. "\r\n";
$message.= "Achternaam: " .$achternaam. "\r\n";
$message.= "Het mailadres: " .$email. "\r\n";
$message.= "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,$message,$headers)) {
$hide = 1;
$bericht= "Bedankt voor uw mail. Er wordt contact met u opgenomen!";
} else {
echo "Mail niet verstuurd!";
}
}
}
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">
<?php
if (!isset($hide)) { ?>
<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 />
<span>
<?php
if (isset($errors['voornaam'])) {
echo $errors['voornaam'];
}
?>
</span>
<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 />
<span>
<?php
if (isset($errors['achternaam'])) {
echo $errors['achternaam'];
}
?>
</span>
<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>
<span>
<?php
if (isset($errors['mailadres'])) {
echo $errors['mailadres'];
}
?>
</span>
<label for="uwvraag">Uw vraag:</label></br>
<textarea id="uwvraag" name="uwvraag" rows="4" cols="50" value="<?php if (isset($_POST['uwvraag']))echo htmlspecialchars($_POST['uwvraag'], ENT_QUOTES); ?>"></textarea></br></br>
<input type="submit" value="Verzenden"> <input type="reset" value="Reset">
</form>
</div>
<?php
} else {
echo $bericht;
}
?>
</div>
<?php
include "Inc/footer.php";
?>
// define variables and set to empty values
$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST["voornaam"])) {
$errors['voornaam'] = "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)) {
$errors['voornaam'] = "Uw voornaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["achternaam"])) {
$errors['achternaam'] = "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)) {
$errors['achternaam'] = "Uw achternaam mag alleen letters en spaties bevatten";
}
}
if (empty($_POST["mailadres"])) {
$errors['mailadres'] = "Graag uw mailadres invullen";
} else {
$email = test_input($_POST["mailadres"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors['mailadres'] = "Het formaat van het ingevoerde mailadres is niet correct";
}
}
$uwvraag = test_input($_POST["uwvraag"]) ;
if (count($errors) == 0) {
//mail versturen
$to = "[email protected]";
$subject = "Mail afkomstig uit de website";
$message= "";
$message.= "Voornaam: " .$voornaam. "\r\n";
$message.= "Achternaam: " .$achternaam. "\r\n";
$message.= "Het mailadres: " .$email. "\r\n";
$message.= "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,$message,$headers)) {
$hide = 1;
$bericht= "Bedankt voor uw mail. Er wordt contact met u opgenomen!";
} else {
echo "Mail niet verstuurd!";
}
}
}
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">
<?php
if (!isset($hide)) { ?>
<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 />
<span>
<?php
if (isset($errors['voornaam'])) {
echo $errors['voornaam'];
}
?>
</span>
<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 />
<span>
<?php
if (isset($errors['achternaam'])) {
echo $errors['achternaam'];
}
?>
</span>
<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>
<span>
<?php
if (isset($errors['mailadres'])) {
echo $errors['mailadres'];
}
?>
</span>
<label for="uwvraag">Uw vraag:</label></br>
<textarea id="uwvraag" name="uwvraag" rows="4" cols="50" value="<?php if (isset($_POST['uwvraag']))echo htmlspecialchars($_POST['uwvraag'], ENT_QUOTES); ?>"></textarea></br></br>
<input type="submit" value="Verzenden"> <input type="reset" value="Reset">
</form>
</div>
<?php
} else {
echo $bericht;
}
?>
</div>
<?php
include "Inc/footer.php";
?>
Waarom sla je de succes-melding wel op in een variabele, en niet de error van de mail?
- Ariën - op 28/09/2022 21:27:32:
Dat is geen versimpelde testcase... :-/
Geen idee wat je hiermee bedoelt.
- Ariën - op 28/09/2022 21:27:32:
Waarom sla je de succes-melding wel op in een variabele, en niet de error van de mail?
Waarom sla je de succes-melding wel op in een variabele, en niet de error van de mail?
Jij hebt gelijk dat het beter is om de error van de mail ook in een variabel te zetten, maar dat is voor mij nu geen prio. Pas als ik dit probleem heb opgelost, pas ik dat ook aan.
Met een simpele testcase bedoel ik een uitgekleed script tot +/- 30 regels met relevante code.
Nadat validatie gelukt is, wordt het formulier verzonden en er verschijnt netjes een bericht dat het is verzonden.
Echter, wat ik wil is dat het bericht voorzien is van een header met menu en footer, maar nu verschijnt het bericht linksboven aan het pagina.
- Ariën - op 29/09/2022 21:22:48:
Bekijk je HTML-code ook eens in je browser. Als deze niet klopt heb je ook kans dat het verkeerd rendert, en dat tekst bijv. bovenaan staat.
Laat anders eens een zichtbaar voorbeeld zien.
Laat anders eens een zichtbaar voorbeeld zien.
Een zichtbaar voorbeeld is: http://jocke-overwater.nl/contact.php
Het probleem heb ik gelost. Ik zag de tekst niet eerder, omdat de achtergrond zwart is. Haha! Bedankt voor het meedenken.