Formcontrole
Ik ben bezig met een formcontrole voor een form op mijn website.
http://www.lost-platoon.be/aanmelden.php
Wat ik graag zou hebben is, dat wanneer de gebruiker bepaalde gegevens niet invult, dat er dan een melding komt te staan naast het teskvak. Is er wel iets correct ingevuld, maar er zijn nog andere zaken verkeerd ingevuld, dat dan de juiste waarde al ingevuld staat.
Snappen jullie wat ik bedoel.
Eigenlijk is het zoals op Jan zijn site, voor het phphulp uitje.
Hoe begin ik hier best aan?
Groetjes
Reinhart
Ik zou even naar JavaScript kijken. I.p.v. een submit-button maak je een button die een JS-functie uitvoert die kijkt of alle ingevuld is. Als dat zo is submit je het form (document.forms('formnaam').submit();) en anders zet je de tekst neer (na elk veld een <span> met een id, en dan met innerHTML iets erin zetten)
Code (php)
of
Er staat ergens op deze website een soortgelijk script ...
Zoals op http://www.hosting.st-hosting.be/support/
Als je het uitprobeerd vul dan wel test in ...
mgv,
Steven
Gewijzigd op 01/01/1970 01:00:00 door steven dirickx
Php newbie, dat bedoel ik idd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if ($_SERVER['request_method']=="post"){
if (empty($_POST['veld1'])){
// veld is niet ingevuld
$veld1error= 'Je moet veld1 invullen';
}
elseif(!regex(voorwaarde,$_POST['veld1'])){
//er wordt niet aan voorwaarde voldaan
veld1error= 'Er wordt niet aan de voorwaarde voldaan';
}
?>
<input type="text" name="veld1"><?php if(isset($veld1error)){ echo $veld1error } ?>
if ($_SERVER['request_method']=="post"){
if (empty($_POST['veld1'])){
// veld is niet ingevuld
$veld1error= 'Je moet veld1 invullen';
}
elseif(!regex(voorwaarde,$_POST['veld1'])){
//er wordt niet aan voorwaarde voldaan
veld1error= 'Er wordt niet aan de voorwaarde voldaan';
}
?>
<input type="text" name="veld1"><?php if(isset($veld1error)){ echo $veld1error } ?>
Hier heb je de bron van mijn contactformulier, dit is de totale bron, dus de helft zul je wel niet nodig hebben, maar beter te veeel dan te weinig ;-)
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
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
<?php
session_start();
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$melding = NULL;
foreach ($_POST as $key => $value) //split de $_POST op in key en value
{
if(empty($_POST[$key]))
{
$melding[$key] = '<font color="red"><b>vul het '.$key.' veld in</b></font>';
}
$_SESSION['contactform'][$key] = $value;
}
if(!isset($melding))
{
if((!stristr($_POST['e-mail'], '@')) || (!stristr($_POST['e-mail'], '.')))
{
$melding['e-mail'] = '<font color="red"><b>vul een geldig e-mail adres in</b></font>';
}
else
{
$message = $_POST['naam'].' heeft contact opgenomen via de site.<br />';
$message .= 'Zijn/haar e-mail adres is: '.$_POST['e-mail'].'.<br />';
$message .= 'Zijn haar bericht is: '.$_POST['bericht'];
$headers = "From: test <[email protected]>\n"; //set From header
$headers .= "Content-type: text/html; charset=iso-8859-1\n"; //zet html header
$headers .= "X-Priority: 3\n"; //zet priority (3 voor hoge prioriteit)
$headers .= "X-MSMail-Priority: High\n"; //header voor het zo snel mogelijk versturen door de mail server
$headers .= "X-Mailer: PHP/".phpversion(); //header die aangeeft waarvan gemailt is
if(@mail($mailnaar, 'Mail vanaf de site, met onderwerp: '.$_POST['onderwerp'], $message, $headers))
{
echo 'Succesvol gemailt';
unset($_SESSION['contactform']);
}
else
{
$melding['bericht'] = 'Error tijdens mailen, uw e-mail is niet verzonden. U kunt handmatig een e-mail sturen naar '.$mailnaar.', of het later nog een proberen.
<br />
Uw invoer is onthouden';
}
}
}
}
include 'header.php';
?>
<h1 class="title">Contact</h1>
<p>
<form action="#" method="post">
<table>
<tr>
<td>
Naam:
</td>
<td>
<input name="naam" type="text" <?=isset($_SESSION['contactform']['naam']) ? 'value="'.$_SESSION['contactform']['naam'].'"' : '' ?> />
<?=isset($melding['naam']) ? $melding['naam'] : '' ?>
</td>
</tr>
<tr>
<td>
E-mail adres:
</td>
<td>
<input name="e-mail" type="text" <?=isset($_SESSION['contactform']['e-mail']) ? 'value="'.$_SESSION['contactform']['e-mail'].'"' : '' ?> />
<?=isset($melding['e-mail']) ? $melding['e-mail'] : '' ?>
</td>
</tr>
<tr>
<td>
Onderwerp:
</td>
<td>
<input name="onderwerp" type="text" <?=isset($_SESSION['contactform']['onderwerp']) ? 'value="'.$_SESSION['contactform']['onderwerp'].'"' : '' ?> />
<?=isset($melding['onderwerp']) ? $melding['onderwerp'] : '' ?>
</td>
</tr>
<tr>
<td>
Bericht:
</td>
<td>
<textarea name="bericht" cols="50" rows="5"><?=isset($_SESSION['contactform']['bericht']) ? $_SESSION['contactform']['bericht'] : '' ?></textarea>
<?=isset($melding['bericht']) ? $melding['bericht'] : '' ?>
</td>
</tr>
<tr>
<td>
<input name="submit" type="submit" value="Verstuur!">
</td>
</tr>
</table>
</form>
<?php
include 'footer.html';
?>
session_start();
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$melding = NULL;
foreach ($_POST as $key => $value) //split de $_POST op in key en value
{
if(empty($_POST[$key]))
{
$melding[$key] = '<font color="red"><b>vul het '.$key.' veld in</b></font>';
}
$_SESSION['contactform'][$key] = $value;
}
if(!isset($melding))
{
if((!stristr($_POST['e-mail'], '@')) || (!stristr($_POST['e-mail'], '.')))
{
$melding['e-mail'] = '<font color="red"><b>vul een geldig e-mail adres in</b></font>';
}
else
{
$message = $_POST['naam'].' heeft contact opgenomen via de site.<br />';
$message .= 'Zijn/haar e-mail adres is: '.$_POST['e-mail'].'.<br />';
$message .= 'Zijn haar bericht is: '.$_POST['bericht'];
$headers = "From: test <[email protected]>\n"; //set From header
$headers .= "Content-type: text/html; charset=iso-8859-1\n"; //zet html header
$headers .= "X-Priority: 3\n"; //zet priority (3 voor hoge prioriteit)
$headers .= "X-MSMail-Priority: High\n"; //header voor het zo snel mogelijk versturen door de mail server
$headers .= "X-Mailer: PHP/".phpversion(); //header die aangeeft waarvan gemailt is
if(@mail($mailnaar, 'Mail vanaf de site, met onderwerp: '.$_POST['onderwerp'], $message, $headers))
{
echo 'Succesvol gemailt';
unset($_SESSION['contactform']);
}
else
{
$melding['bericht'] = 'Error tijdens mailen, uw e-mail is niet verzonden. U kunt handmatig een e-mail sturen naar '.$mailnaar.', of het later nog een proberen.
<br />
Uw invoer is onthouden';
}
}
}
}
include 'header.php';
?>
<h1 class="title">Contact</h1>
<p>
<form action="#" method="post">
<table>
<tr>
<td>
Naam:
</td>
<td>
<input name="naam" type="text" <?=isset($_SESSION['contactform']['naam']) ? 'value="'.$_SESSION['contactform']['naam'].'"' : '' ?> />
<?=isset($melding['naam']) ? $melding['naam'] : '' ?>
</td>
</tr>
<tr>
<td>
E-mail adres:
</td>
<td>
<input name="e-mail" type="text" <?=isset($_SESSION['contactform']['e-mail']) ? 'value="'.$_SESSION['contactform']['e-mail'].'"' : '' ?> />
<?=isset($melding['e-mail']) ? $melding['e-mail'] : '' ?>
</td>
</tr>
<tr>
<td>
Onderwerp:
</td>
<td>
<input name="onderwerp" type="text" <?=isset($_SESSION['contactform']['onderwerp']) ? 'value="'.$_SESSION['contactform']['onderwerp'].'"' : '' ?> />
<?=isset($melding['onderwerp']) ? $melding['onderwerp'] : '' ?>
</td>
</tr>
<tr>
<td>
Bericht:
</td>
<td>
<textarea name="bericht" cols="50" rows="5"><?=isset($_SESSION['contactform']['bericht']) ? $_SESSION['contactform']['bericht'] : '' ?></textarea>
<?=isset($melding['bericht']) ? $melding['bericht'] : '' ?>
</td>
</tr>
<tr>
<td>
<input name="submit" type="submit" value="Verstuur!">
</td>
</tr>
</table>
</form>
<?php
include 'footer.html';
?>
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie