form field onclick
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
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
<?php
/* Een van mijn handige functies om te kijken of een value in een array leeg is */
function check_emptyness ($array) {
$return = array();
if(is_array($array)) {
foreach($array as $key => $value) {
if(is_array($value)) {
$return[] = check_emptyness($value);
} else {
$return[] = empty($value);
}
}
} else {
$return[] = true;
}
if(in_array(true, $return)) {
return true;
} else {
return false;
}
}
// kijk of er iets is verzonden
if($_SERVER['REQUEST_METHOD'] == "POST") {
if(check_emptyness($_POST)) {
// niet leeg
if(trim($_POST['naam']) != "je naam" && trim($_POST['email']) != "je email" && trim($_POST['message']) != "je bericht") {
// alles anders ingevuld
$jouwmail = '[email protected]';
$cSubject = 'Via site';
$cBericht = 'Naam: '.$_POST['naam'].'\n';
$cBericht .= 'E-mailadres: '.$_POST['email'].'\n';
$cBericht .= 'Bericht: '.$_POST['message'].'\n';
$headers = 'From: '.$_POST['naam'].' <'.$_POST['email'].'>'.'\r\n';
if(mail($jouwmail, $cSubject, $cBericht)) {
// mail naar ceci is verstuurd
$bSubject = 'Bevestiging ontvangst mail aan Ceci Casariego-Mazereel';
$bBericht = "Dit is een automatisch verzonden e-mailbericht. Gelieve hierop niet te antwoorden.".'\n\n';
$bBericht .= "Beste ".$_POST['naam'].",".'\n\n';
$bBericht .= "Bedankt voor je bericht aan Ceci Casariego-Mazereel. Ze beantwoordt zo snel mogelijk.".'\n'."Dit was je bericht: ".$_POST['message'];
if(mail($_POST['email'], $bSubject, $bBericht)) { // headers??
// bevestigingsmail is verzonden
echo 'Bedankt! Je bericht is verzonden en je hebt een bevestiging ontvangen in je mailbox. Ceci antwoord z.s.m. je bericht.';
} else {
// bevestigingsmail is niet verzonden
echo 'Bedankt! Je bericht is verzonden. Ceci antwoord z.s.m. je bericht.';
}
} else {
// mail naar ceci is niet verstuurd
echo 'Helaas... Je bericht is niet verzonden. Probeer het nogmaals.';
}
} else {
// niet anders ingevuld, geef foutmelding
echo 'Vul je wel alles in? Probeer het nogmaals.';
}
} else {
// leeg
echo 'Vul je wel alles in? Probeer het nogmaals.';
}
}
// je formulier
?>
/* Een van mijn handige functies om te kijken of een value in een array leeg is */
function check_emptyness ($array) {
$return = array();
if(is_array($array)) {
foreach($array as $key => $value) {
if(is_array($value)) {
$return[] = check_emptyness($value);
} else {
$return[] = empty($value);
}
}
} else {
$return[] = true;
}
if(in_array(true, $return)) {
return true;
} else {
return false;
}
}
// kijk of er iets is verzonden
if($_SERVER['REQUEST_METHOD'] == "POST") {
if(check_emptyness($_POST)) {
// niet leeg
if(trim($_POST['naam']) != "je naam" && trim($_POST['email']) != "je email" && trim($_POST['message']) != "je bericht") {
// alles anders ingevuld
$jouwmail = '[email protected]';
$cSubject = 'Via site';
$cBericht = 'Naam: '.$_POST['naam'].'\n';
$cBericht .= 'E-mailadres: '.$_POST['email'].'\n';
$cBericht .= 'Bericht: '.$_POST['message'].'\n';
$headers = 'From: '.$_POST['naam'].' <'.$_POST['email'].'>'.'\r\n';
if(mail($jouwmail, $cSubject, $cBericht)) {
// mail naar ceci is verstuurd
$bSubject = 'Bevestiging ontvangst mail aan Ceci Casariego-Mazereel';
$bBericht = "Dit is een automatisch verzonden e-mailbericht. Gelieve hierop niet te antwoorden.".'\n\n';
$bBericht .= "Beste ".$_POST['naam'].",".'\n\n';
$bBericht .= "Bedankt voor je bericht aan Ceci Casariego-Mazereel. Ze beantwoordt zo snel mogelijk.".'\n'."Dit was je bericht: ".$_POST['message'];
if(mail($_POST['email'], $bSubject, $bBericht)) { // headers??
// bevestigingsmail is verzonden
echo 'Bedankt! Je bericht is verzonden en je hebt een bevestiging ontvangen in je mailbox. Ceci antwoord z.s.m. je bericht.';
} else {
// bevestigingsmail is niet verzonden
echo 'Bedankt! Je bericht is verzonden. Ceci antwoord z.s.m. je bericht.';
}
} else {
// mail naar ceci is niet verstuurd
echo 'Helaas... Je bericht is niet verzonden. Probeer het nogmaals.';
}
} else {
// niet anders ingevuld, geef foutmelding
echo 'Vul je wel alles in? Probeer het nogmaals.';
}
} else {
// leeg
echo 'Vul je wel alles in? Probeer het nogmaals.';
}
}
// je formulier
?>
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
1/ wanneer ik alles laat staan, en "je bericht" wegdoe, verzendt die
3/ als ik alles invul, zoals het hoort, verzendt die niet
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
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
<script type="text/JavaScript">
function clearDefault(el) {
if (el.defaultValue==el.value) el.value = ""
}
</script>
<form action="contactNL.php" method="POST" enctype="multipart/form-data">
<p>
<input type="hidden" name="action" value="send">
</p>
<p>
<input type="text" name="from" id="from" value=" je naam" onfocus="clearDefault(this)" style="border-top:0px; border-left: 1px dotted #cc6600; border-right:0px; border-bottom: 1px dotted #cc6600; width:150px">
<br>
<input type="text" name="email" id="email" value=" je email adres" onfocus="clearDefault(this)" style="border-top:0px; border-left: 1px dotted purple; border-right:0px; border-bottom: 1px dotted purple; width:150px;">
<br>
<input type="file" name="fileatt" id="fileatt" style="border-top:0px; border-left: 1px dotted purple; border-right:0px; border-bottom: 1px dotted purple; width:150px;">
<br>
<textarea name="message" id="message" style="border-top:0px; border-left:1px dotted #0066cc; border-right:0px; border-bottom: 1px dotted #0066cc; width:150px; height:50px"> je bericht</textarea>
<br>
<input type="image" src="images/sendarrow.gif" value="send">
<img src="images/clear.gif" onclick="document.getElementById('form1').reset();" style="cursor:pointer">
</form>
[/CODE]
[CODE]<?php
// Read POST request params into global vars
$to = '[email protected]';
$from = $_POST['from'];
$email = $_POST['email'];
$message = $_POST['message'];
// Obtain file upload vars
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];
$headers = "From: $email ";
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}
// Send the message
$ok = @mail($to, 'via website', $message, $headers);
if ($ok) {
echo "Bedankt ! <br>Je bericht is verzonden.<br> <br><br><br> Ceci beantwoordt je zo snel mogelijk.<br> <br><br>";
} else {
echo "Blijkbaar is het formulier niet correct ingevuld.<br><br> Gelieve alle gegevens in te vullen !<br><br><a href='contactNL.html'><font color='#565656;'>[graag opnieuw]</font></a><br> <br>";
}
?>
[/CODE]
function clearDefault(el) {
if (el.defaultValue==el.value) el.value = ""
}
</script>
<form action="contactNL.php" method="POST" enctype="multipart/form-data">
<p>
<input type="hidden" name="action" value="send">
</p>
<p>
<input type="text" name="from" id="from" value=" je naam" onfocus="clearDefault(this)" style="border-top:0px; border-left: 1px dotted #cc6600; border-right:0px; border-bottom: 1px dotted #cc6600; width:150px">
<br>
<input type="text" name="email" id="email" value=" je email adres" onfocus="clearDefault(this)" style="border-top:0px; border-left: 1px dotted purple; border-right:0px; border-bottom: 1px dotted purple; width:150px;">
<br>
<input type="file" name="fileatt" id="fileatt" style="border-top:0px; border-left: 1px dotted purple; border-right:0px; border-bottom: 1px dotted purple; width:150px;">
<br>
<textarea name="message" id="message" style="border-top:0px; border-left:1px dotted #0066cc; border-right:0px; border-bottom: 1px dotted #0066cc; width:150px; height:50px"> je bericht</textarea>
<br>
<input type="image" src="images/sendarrow.gif" value="send">
<img src="images/clear.gif" onclick="document.getElementById('form1').reset();" style="cursor:pointer">
</form>
[/CODE]
[CODE]<?php
// Read POST request params into global vars
$to = '[email protected]';
$from = $_POST['from'];
$email = $_POST['email'];
$message = $_POST['message'];
// Obtain file upload vars
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];
$headers = "From: $email ";
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}
// Send the message
$ok = @mail($to, 'via website', $message, $headers);
if ($ok) {
echo "Bedankt ! <br>Je bericht is verzonden.<br> <br><br><br> Ceci beantwoordt je zo snel mogelijk.<br> <br><br>";
} else {
echo "Blijkbaar is het formulier niet correct ingevuld.<br><br> Gelieve alle gegevens in te vullen !<br><br><a href='contactNL.html'><font color='#565656;'>[graag opnieuw]</font></a><br> <br>";
}
?>
[/CODE]
Wat voor controle wil je er in hebben?
- fields: name, email, upload image, message
- name, email and message are obligatory fields
- email requested twice, so it is written twice the same way
- possibility to upload attachments (mainly images)
- when one image is uploaded, link appears under it, asking to add another image, or delete the previous
- possibility to send up to 10 attachments per email
- when sent, a confirmation appears
- if error in the fields, not being sent to another page saying there's an error, but remaining at the same page, where the errors are put in the html-form (showing f.ex. with an asterisk or image what is missing)
- the confirmation shows if there was an attachment or not (f.ex. message (without attachment, with 5, 8 attachments) sent)
- a confirmation email is sent to the poster
- a 'send me a copy of my mail' button
- captcha (ex. 2+2=?)
Voila, een hele brok, kan iemand me hierbij helpen, aub ? Ik weet dat je voor een dergelijk script normaal massa's zult betalen, maar dat budget heb ik zeker niet, vandaar mijn vraag om het via dit forum te kunnen oplossen.
Gewijzigd op 01/01/1970 01:00:00 door chechu
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
129
130
131
132
133
134
135
136
137
138
139
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
129
130
131
132
133
134
135
136
137
138
139
<?php
session_start ();
ini_set ('display_errors', 1);
error_reporting (E_ALL);
// om te checken of er al iets gepost is
$posted = $_SERVER['REQUEST_METHOD'] == 'POST';
// deze is voor de paginatitel en de h1 bovenaan de pagina
$title = 'Jan Koehoorn | Form Generation and Validation';
// deze is voor de style van de div met de eerste alinea en het form
// als alles correct is ingevuld maken we de div onzichtbaar met display: none
$form_style = '';
// de eigenschappen voor de velden
// in dit script kun je alleen maar type text gebruiken, maar je kunt het zelf
// uitbreiden met radio's, checkboxen en selects
$fields = array (
'naam' => array ('type' => 'text', 'required' => true, 'regex' => false, 'extrainfo' => false),
'adres' => array ('type' => 'text', 'required' => true, 'regex' => false, 'extrainfo' => false),
'postcode' => array ('type' => 'text', 'required' => true, 'regex' => '/^[1-9]{1}[0-9]{3}\s?[A-Za-z]{2}$/', 'extrainfo' => 'bijv: 1234 AB'),
'woonplaats' => array ('type' => 'text', 'required' => false, 'regex' => false, 'extrainfo' => false),
'telefoon' => array ('type' => 'text', 'required' => false, 'regex' => '/^(\d{2}-?\d{8}|d{3}-?\d{7}|\d{4}-?\d{6})$/', 'extrainfo' => 'bijv: 012-3456789')
);
$antispam = array (
'form_validation1.jpg' => 'hond', // maak een JPG met de goede naam en het goede beestje erop
'form_validation2.jpg' => 'kikker', //
'form_validation3.jpg' => 'slang', //
'form_validation4.jpg' => 'tijger' //
);
if (!$posted) {
$_SESSION['check'] = mt_rand (1, 4);
}
// voorlopig is alles nog okee ...
$form_ok = true;
// hierin slaan we de XHTML voor de formuliervelden op
$form_html = '';
// XHTML voor de formuliervelden genereren
foreach ($fields as $field => $options) {
// voor de beginners; hier gebruik ik de zogenaamde "Verkorte if-else" notatie. Die werkt zo:
// WAARDE = (IF CONSTRUCTIE) ? (WAAR) : (ONWAAR);
$value = (isset ($_POST[$field])) ? (trim ($_POST[$field])) : ('');
$form_html .= PHP_EOL;
$form_html .= '<p>';
if ($options['extrainfo']) {
$form_html .= '<span class="extrainfo">' . $options['extrainfo'] . '</span>';
}
$asterisk = ($options['required']) ? ('* ') : ('');
$form_html .= '<label for="' . $field . '">' . $asterisk . $field . ':</label>';
$form_html .= '<input id="' . $field . '" name="' . $field . '" type="' . $options['type'] . '" value="' . $value . '" />';
if ($options['required'] && $posted) {
if (empty ($value)) {
$form_html .= '<span class="error">Dit is een verplicht veld</span>';
$form_ok = false;
}
}
if ($options['regex'] && $posted && !empty ($value)) {
if (!preg_match ($options['regex'], $value)) {
$form_html .= '<span class="error">Ongeldige waarde voor ' . $field . '</span>';
$form_ok = false;
}
}
$form_html .= '</p>';
}
// kleine check inbouwen
if ($posted) {
$check = strtolower (trim ($_POST['check']));
if ($check != $antispam['form_validation' . $_SESSION['check'] . '.jpg']) {
$form_ok = false;
$check_error = '<span class="error">Vul het goede dier in</span>';
}
}
$form_html .= PHP_EOL;
$form_html .= '<p>';
$form_html .= '<label for="check">wat voor dier is dit?</label>';
$form_html .= '<input id="check" name="check" type="text" value="" />';
if (isset ($check_error)) {
$form_html .= $check_error;
}
$form_html .= '</p>';
$form_html .= PHP_EOL;
$form_html .= '<p>';
$form_html .= '<img alt="check" class="check" src="form_validation' . $_SESSION['check'] . '.jpg" />';
$form_html .= '</p>';
// alles goed gegaan? Dan formulier-div onzichtbaar maken en een boodschap naar de user sturen
if ($posted && $form_ok) {
$form_style = ' style="display: none;"';
if (isset ($_SESSION['dubbelpost'])) {
$msg = '<h2>Het formulies IS al gepost. Deze pagina niet verversen a.u.b.</h2>';
$msg .= '<p>Geposte waarden:</p>';
$msg .= '<pre>' . print_r ($_POST, true) . '</pre>';
}
else {
$_SESSION['dubbelpost'] = true;
$msg = '<h2>Bedankt voor het invullen van het formulier</h2>';
$msg .= '<p>Geposte waarden:</p>';
$msg .= '<pre>' . print_r ($_POST, true) . '</pre>';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title; ?></title>
<style type="text/css">
form {margin: 10px 0;}
form p {width: 100%; position: relative; z-index: 1;}
span.extrainfo {position: absolute; left: 260px; top: 2px; padding: 4px; background: #ffc; border: 1px solid #993; font-size: 11px; line-height: normal; display: none; z-index: 2;}
form p:hover span.extrainfo {display: block;}
label {float: left; width: 140px; text-align: right; padding-right: 5px;}
input#submit,
img.check {margin-left: 144px;}
img.check {border: 1px solid #ccc;}
span.error {font-weight: bold; color: #f66; padding-left: 5px;}
p, label, input {font: 12px/24px Verdana, Arial, Helvetica, sans-serif;}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $title; ?></h1>
<?php
if (isset ($msg)) {
echo $msg;
}
?>
<div id="form"<?php echo $form_style; ?>>
<p>Vul onderstaand formulier in. Velden met een * zijn verplicht.</p>
<form method="post" action="phphulp/scripts/form_validation.php">
<?php echo $form_html; ?>
<p>
<input id="submit" type="submit" value="verzenden" />
</p>
</form>
<?php echo '<pre>' . print_r ($_SESSION, true) . '</pre>'; ?>
</div>
</div>
</body>
</html>
session_start ();
ini_set ('display_errors', 1);
error_reporting (E_ALL);
// om te checken of er al iets gepost is
$posted = $_SERVER['REQUEST_METHOD'] == 'POST';
// deze is voor de paginatitel en de h1 bovenaan de pagina
$title = 'Jan Koehoorn | Form Generation and Validation';
// deze is voor de style van de div met de eerste alinea en het form
// als alles correct is ingevuld maken we de div onzichtbaar met display: none
$form_style = '';
// de eigenschappen voor de velden
// in dit script kun je alleen maar type text gebruiken, maar je kunt het zelf
// uitbreiden met radio's, checkboxen en selects
$fields = array (
'naam' => array ('type' => 'text', 'required' => true, 'regex' => false, 'extrainfo' => false),
'adres' => array ('type' => 'text', 'required' => true, 'regex' => false, 'extrainfo' => false),
'postcode' => array ('type' => 'text', 'required' => true, 'regex' => '/^[1-9]{1}[0-9]{3}\s?[A-Za-z]{2}$/', 'extrainfo' => 'bijv: 1234 AB'),
'woonplaats' => array ('type' => 'text', 'required' => false, 'regex' => false, 'extrainfo' => false),
'telefoon' => array ('type' => 'text', 'required' => false, 'regex' => '/^(\d{2}-?\d{8}|d{3}-?\d{7}|\d{4}-?\d{6})$/', 'extrainfo' => 'bijv: 012-3456789')
);
$antispam = array (
'form_validation1.jpg' => 'hond', // maak een JPG met de goede naam en het goede beestje erop
'form_validation2.jpg' => 'kikker', //
'form_validation3.jpg' => 'slang', //
'form_validation4.jpg' => 'tijger' //
);
if (!$posted) {
$_SESSION['check'] = mt_rand (1, 4);
}
// voorlopig is alles nog okee ...
$form_ok = true;
// hierin slaan we de XHTML voor de formuliervelden op
$form_html = '';
// XHTML voor de formuliervelden genereren
foreach ($fields as $field => $options) {
// voor de beginners; hier gebruik ik de zogenaamde "Verkorte if-else" notatie. Die werkt zo:
// WAARDE = (IF CONSTRUCTIE) ? (WAAR) : (ONWAAR);
$value = (isset ($_POST[$field])) ? (trim ($_POST[$field])) : ('');
$form_html .= PHP_EOL;
$form_html .= '<p>';
if ($options['extrainfo']) {
$form_html .= '<span class="extrainfo">' . $options['extrainfo'] . '</span>';
}
$asterisk = ($options['required']) ? ('* ') : ('');
$form_html .= '<label for="' . $field . '">' . $asterisk . $field . ':</label>';
$form_html .= '<input id="' . $field . '" name="' . $field . '" type="' . $options['type'] . '" value="' . $value . '" />';
if ($options['required'] && $posted) {
if (empty ($value)) {
$form_html .= '<span class="error">Dit is een verplicht veld</span>';
$form_ok = false;
}
}
if ($options['regex'] && $posted && !empty ($value)) {
if (!preg_match ($options['regex'], $value)) {
$form_html .= '<span class="error">Ongeldige waarde voor ' . $field . '</span>';
$form_ok = false;
}
}
$form_html .= '</p>';
}
// kleine check inbouwen
if ($posted) {
$check = strtolower (trim ($_POST['check']));
if ($check != $antispam['form_validation' . $_SESSION['check'] . '.jpg']) {
$form_ok = false;
$check_error = '<span class="error">Vul het goede dier in</span>';
}
}
$form_html .= PHP_EOL;
$form_html .= '<p>';
$form_html .= '<label for="check">wat voor dier is dit?</label>';
$form_html .= '<input id="check" name="check" type="text" value="" />';
if (isset ($check_error)) {
$form_html .= $check_error;
}
$form_html .= '</p>';
$form_html .= PHP_EOL;
$form_html .= '<p>';
$form_html .= '<img alt="check" class="check" src="form_validation' . $_SESSION['check'] . '.jpg" />';
$form_html .= '</p>';
// alles goed gegaan? Dan formulier-div onzichtbaar maken en een boodschap naar de user sturen
if ($posted && $form_ok) {
$form_style = ' style="display: none;"';
if (isset ($_SESSION['dubbelpost'])) {
$msg = '<h2>Het formulies IS al gepost. Deze pagina niet verversen a.u.b.</h2>';
$msg .= '<p>Geposte waarden:</p>';
$msg .= '<pre>' . print_r ($_POST, true) . '</pre>';
}
else {
$_SESSION['dubbelpost'] = true;
$msg = '<h2>Bedankt voor het invullen van het formulier</h2>';
$msg .= '<p>Geposte waarden:</p>';
$msg .= '<pre>' . print_r ($_POST, true) . '</pre>';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title; ?></title>
<style type="text/css">
form {margin: 10px 0;}
form p {width: 100%; position: relative; z-index: 1;}
span.extrainfo {position: absolute; left: 260px; top: 2px; padding: 4px; background: #ffc; border: 1px solid #993; font-size: 11px; line-height: normal; display: none; z-index: 2;}
form p:hover span.extrainfo {display: block;}
label {float: left; width: 140px; text-align: right; padding-right: 5px;}
input#submit,
img.check {margin-left: 144px;}
img.check {border: 1px solid #ccc;}
span.error {font-weight: bold; color: #f66; padding-left: 5px;}
p, label, input {font: 12px/24px Verdana, Arial, Helvetica, sans-serif;}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $title; ?></h1>
<?php
if (isset ($msg)) {
echo $msg;
}
?>
<div id="form"<?php echo $form_style; ?>>
<p>Vul onderstaand formulier in. Velden met een * zijn verplicht.</p>
<form method="post" action="phphulp/scripts/form_validation.php">
<?php echo $form_html; ?>
<p>
<input id="submit" type="submit" value="verzenden" />
</p>
</form>
<?php echo '<pre>' . print_r ($_SESSION, true) . '</pre>'; ?>
</div>
</div>
</body>
</html>
Ondertussen ben ik al weer wat verder, en heb een nieuw formulier, maar met een foutmelding samengeraapt. Toch zijn er nog enkele functies tekort:
- possibility to upload attachments (images)
- when one image is uploaded, link appears under it, asking to add another image, or delete the previous
- possibility to send max. 10 attachments per email
- the confirmation shows if there was an attachment or no (f.ex. message (without attachment, with 5, 8 attachments) sent)
Dit is de foutmelding:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/cecicasariego.com/cecicasariego.com/httpd.www/testcontact2.php:8) in /customers/cecicasariego.com/cecicasariego.com/httpd.www/testcontact2.php on line 145
Je kan het hier bekijken: http://www.cecicasariego.com/testcontact2.php
Dit is de code:
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<head>
<title>contact gegevens</title>
<link rel="stylesheet" media="all" type="text/css" href="site.css">
<meta http-equiv="imagetoolbar" content="no">
<script src="links.js" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
<style type="text/css">
<!--
div#container {
margin:0 auto;
background: #f2f4f7;
}
label {
float: left;
width: 140px;
text-align: left;
padding-top: 5px;
}
input, textarea {
padding: 3px;
margin: 3px;
border: 1px solid #bac5d6;
font: 10px Verdana, sans-serif;
background: #fff;
}
input.fout, textarea.fout {
border: 1px solid #FF0000;
}
label.fout {
color: #FF0000;
}
-->
</style>
</head>
<body>
<div id="content">
<?php
if(isset($errors)) {
echo $errors;
}
?>
<div id="header-main">
<div id="headerNL">
<h1>Ceci CASARIEGO</h1>
<ul>
<li class="nav"><a href="index.html">home</a></li>
<li class="nav"><a href="portfolioNL.html">portfolio</a></li>
<li class="nav"><a href="cvNL.html">curriculum</a></li>
<li class="nav"><a href="newsNL.html">nieuws</a></li>
<li class="nav"><a href="linksNL.html">links</a></li>
<li class="nav"><a href="testNL.html">getuigenissen</a></li>
<li class="hover">contact</li>
</ul>
</div>
</div>
<div id="body-main">
<div id="body">
<div id="left">
<div style="padding-top:15px; padding-bottom:17px;"><input type="text" value=" True Artist LinkedIn Group" style="width:135px; border:1px solid #bbaaaa">
<br>
<a href="http://artists.cecicasariego.com" target="_blank"><img src="images/meer.gif" style="border:0px; padding-top:5px;"></a></div>
<ul class="sub-link">
<li><a href="copyNL.html"> copyright 2004-2008</a></li>
<li class="noimg"><a href="contact.html">| EN |</a></li>
</ul>
<div id="event">
<br> <br>
<img src="images/sendarrow.gif"> portret aanvragen: <a href="faqNL.html">veelgestelde vragen</a><br>
<img src="images/sendarrow.gif"> voor meer informatie: +32.(0)475.98.49.96
</div>
</div>
<div id="right">
<h2>Contact</h2>
<p class="top-text">
Heb je vragen of opmerkingen, laat het Ceci weten. Heb je vragen over wat belangrijk is bij een portretopdracht,
bekijk dan eerst de <a href="faqNL.html">veelgestelde vragen</a>. Je kan tot vijf foto's toevoegen.
<br> <br> <br>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
ob_start();
session_start();
// Config Gedeelte
$cfg['url'] = "http://www.mijnsite.com";// Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$cfg['naam'] = "Ceci Casariego"; // Webmaster naam
$cfg['email'] = "[email protected]"; // Webmaster E-mail
$cfg['spam'] = 10; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$cfg['text'] = TRUE; // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['input'] = TRUE; // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['HTML'] = TRUE; // Een HTML email ( TRUE voor aan, FALSE voor uit )
$cfg['CAPTCHA'] = TRUE; // CAPTCHA ( TRUE voor aan, FALSE voor uit )
// Hieronder niks meer veranderen
// E-mail Checker / Validator
function checkmail($email)
{
if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$", $email))
{
return TRUE;
}
return FALSE;
}
$formulier = TRUE;
if(!isset($_COOKIE['formulier']))
{
if(isset($_POST['wis']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
foreach($_POST as $key => $value)
{
unset($value);
}
header("Location: ".$_SERVER['PHP_SELF']."");
}
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
$aFout = array();
$naam = trim($_POST['naam']);
$email = trim($_POST['email']);
$onderwerp = trim($_POST['onderwerp']);
$bericht = trim($_POST['bericht']);
if($cfg['CAPTCHA'])
{
$code = $_POST['code'];
}
if(empty($naam) || (strlen($naam) < 3) || eregi("[<>]", $naam) )
{
$aFout[] = "Er is geen naam ingevuld.";
unset($naam);
$fout['text']['naam'] = TRUE;
$fout['input']['naam'] = TRUE;
}
if(empty($email))
{
$aFout[] = "Er is geen e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
elseif(checkmail($email) == 0)
// Wanneer je PHP 5.2 > gebruikt
//elseif(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$aFout[] = "Er is geen correct e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
if(empty($onderwerp))
{
$aFout[] = "Er is geen onderwerp ingevuld.";
unset($onderwerp);
$fout['text']['onderwerp'] = TRUE;
$fout['input']['onderwerp'] = TRUE;
}
if(empty($bericht))
{
$aFout[] = "Er is geen bericht ingevuld.";
unset($bericht);
$fout['text']['bericht'] = TRUE;
$fout['input']['bericht'] = TRUE;
}
if($cfg['CAPTCHA'])
{
if(strtoupper($code) != $_SESSION['captcha_code'])
{
$aFout[] = "Er is geen correcte code ingevuld.";
$fout['text']['code'] = TRUE;
$fout['input']['code'] = TRUE;
}
}
if(!$cfg['text'])
{
unset($fout['text']);
}
if(!$cfg['input'])
{
unset($fout['input']);
}
if(!empty( $aFout ))
{
$errors = '
<div id="errors">
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</div>";
}
else
{
$formulier = FALSE;
if($cfg['HTML'])
{
// Headers
$headers = "From: \"Contact Formulier\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$bericht = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>
<br />
<b>Naam:</b> '.$naam.'<br />
<b>Email:</b> <a href=\"mailto:'.$email.'\">'.$email.'</a><br />
<br />
<b>Bericht:</b><br />
'.$bericht.'
<br />
<br />
<br />
--------------------------------------------------------------------------<br />
<b>Datum:</b> '.date("d-m-Y @ H:i:s").'<br />
<b>IP:</b> <a href=\"http://sunny.nic.com/cgi-bin/whois?domain='.$_SERVER['REMOTE_ADDR'].'\">'.$_SERVER['REMOTE_ADDR'].'</a><br />
<b>Host:</b> '.gethostbyaddr($_SERVER['REMOTE_ADDR']).'<br />
</body>
</html>';
}
else
{
$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);
// Headers
$headers = "From: \"Contact Formulier\" <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset='iso-8859-1'\n";
// Bericht
$message = "Naam: ".$naam." \n";
$message .= "E-mail: ".$email." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$_SERVER['REMOTE_ADDR']." \n ";
$message .= "Host: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])." \n ";
}
if(mail($cfg['email'], "[Contact] ".$onderwerp, $bericht, $headers))
{
if(isset($_POST['stuurkopie']))
{
$headers = "From: \"Contact Formulier\" <".$email.">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
mail($email, "[Contact] ".$onderwerp, $bericht, $headers);
}
unset($naam, $email, $onderwerp, $bericht);
setcookie("formulier", 1, time() + ( $cfg['spam'] * 60 ) );
echo "
<p>
Uw bericht is succesvol verzonden, er word zo snel mogelijk gereageerd.<br />
<br />
Met vriendelijke groeten,<br />
<b>".$cfg['naam']."</b>
</p>
";
}
else
{
echo "Er is een fout opgetreden bij het verzenden van de email";
}
header("refresh:3;url=".$cfg['url']."");
}
}
if($formulier)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Contact Formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="nl" />
</head>
<body>
<div id="container">
<?php
if(isset($errors)) {
echo $errors;
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<p>
<label <?php if(isset($fout['text']['naam'])) { echo 'class="fout"'; } ?>>Naam:</label>
<input type="text" id="naam" name="naam" maxlength="30" <?php if(isset($fout['input']['naam'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($naam)) { echo stripslashes($naam); } ?>" /><br />
<label <?php if(isset($fout['text']['email'])) { echo 'class="fout"'; } ?>>Email:</label>
<input type="text" id="email" name="email" maxlength="255" <?php if(isset($fout['input']['email'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($email)) { echo stripslashes($email); } ?>" /><br />
<label <?php if(isset($fout['text']['onderwerp'])) { echo 'class="fout"'; } ?>>Onderwerp:</label>
<input type="text" id="onderwerp" name="onderwerp" maxlength="40" <?php if(isset($fout['input']['onderwerp'])) { echo 'class="fout'; } ?> value="<?php if (!empty($onderwerp)) { echo stripslashes($onderwerp); } ?>" /><br />
<label <?php if(isset($fout['text']['bericht'])) { echo 'class="fout"'; } ?>>Bericht:</label>
<textarea id="bericht" name="bericht" <?php if(isset($fout['input']['bericht'])) { echo 'class="fout"'; } ?> cols="30" rows="6"><?php if (!empty($bericht)) { echo stripslashes($bericht); } ?></textarea><br />
<?php
if($cfg['CAPTCHA'])
{
?>
<label></label>
<img src="captcha.php" alt="" /><br />
<label <?php if(isset($fout['text']['code'])) { echo 'class="fout"'; } ?>>Code:</label>
<input type="text" id="code" name="code" maxlength="4" size="4" <?php if(isset($fout['input']['code'])) { echo 'class="captcha fout"'; } ?> /><br />
<?php
}
?>
<label for="stuurkopie">Stuur mij een kopie</label><input type="checkbox" id="stuurkopie" name="stuurkopie" value="1" /><br />
<label></label>
<input type="submit" id="verzenden" name="verzenden" value="verzenden" />
<input type="submit" id="wis" name="wis" value="Wis velden" />
</p>
</form>
</div>
</div>
</div>
</body>
</html>
<?php
}
}
else
{
echo "
<p>
U kunt maar eens in de ".$cfg['spam']." minuten een e-mail versturen!<br />
U wordt nu automatisch doorgestuurd.
</p>";
header("refresh:3;url=".$cfg['url']."");
}
?>
"http://www.w3.org/TR/html4/strict.dtd">
<head>
<title>contact gegevens</title>
<link rel="stylesheet" media="all" type="text/css" href="site.css">
<meta http-equiv="imagetoolbar" content="no">
<script src="links.js" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
<style type="text/css">
<!--
div#container {
margin:0 auto;
background: #f2f4f7;
}
label {
float: left;
width: 140px;
text-align: left;
padding-top: 5px;
}
input, textarea {
padding: 3px;
margin: 3px;
border: 1px solid #bac5d6;
font: 10px Verdana, sans-serif;
background: #fff;
}
input.fout, textarea.fout {
border: 1px solid #FF0000;
}
label.fout {
color: #FF0000;
}
-->
</style>
</head>
<body>
<div id="content">
<?php
if(isset($errors)) {
echo $errors;
}
?>
<div id="header-main">
<div id="headerNL">
<h1>Ceci CASARIEGO</h1>
<ul>
<li class="nav"><a href="index.html">home</a></li>
<li class="nav"><a href="portfolioNL.html">portfolio</a></li>
<li class="nav"><a href="cvNL.html">curriculum</a></li>
<li class="nav"><a href="newsNL.html">nieuws</a></li>
<li class="nav"><a href="linksNL.html">links</a></li>
<li class="nav"><a href="testNL.html">getuigenissen</a></li>
<li class="hover">contact</li>
</ul>
</div>
</div>
<div id="body-main">
<div id="body">
<div id="left">
<div style="padding-top:15px; padding-bottom:17px;"><input type="text" value=" True Artist LinkedIn Group" style="width:135px; border:1px solid #bbaaaa">
<br>
<a href="http://artists.cecicasariego.com" target="_blank"><img src="images/meer.gif" style="border:0px; padding-top:5px;"></a></div>
<ul class="sub-link">
<li><a href="copyNL.html"> copyright 2004-2008</a></li>
<li class="noimg"><a href="contact.html">| EN |</a></li>
</ul>
<div id="event">
<br> <br>
<img src="images/sendarrow.gif"> portret aanvragen: <a href="faqNL.html">veelgestelde vragen</a><br>
<img src="images/sendarrow.gif"> voor meer informatie: +32.(0)475.98.49.96
</div>
</div>
<div id="right">
<h2>Contact</h2>
<p class="top-text">
Heb je vragen of opmerkingen, laat het Ceci weten. Heb je vragen over wat belangrijk is bij een portretopdracht,
bekijk dan eerst de <a href="faqNL.html">veelgestelde vragen</a>. Je kan tot vijf foto's toevoegen.
<br> <br> <br>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
ob_start();
session_start();
// Config Gedeelte
$cfg['url'] = "http://www.mijnsite.com";// Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$cfg['naam'] = "Ceci Casariego"; // Webmaster naam
$cfg['email'] = "[email protected]"; // Webmaster E-mail
$cfg['spam'] = 10; // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$cfg['text'] = TRUE; // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['input'] = TRUE; // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit )
$cfg['HTML'] = TRUE; // Een HTML email ( TRUE voor aan, FALSE voor uit )
$cfg['CAPTCHA'] = TRUE; // CAPTCHA ( TRUE voor aan, FALSE voor uit )
// Hieronder niks meer veranderen
// E-mail Checker / Validator
function checkmail($email)
{
if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$", $email))
{
return TRUE;
}
return FALSE;
}
$formulier = TRUE;
if(!isset($_COOKIE['formulier']))
{
if(isset($_POST['wis']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
foreach($_POST as $key => $value)
{
unset($value);
}
header("Location: ".$_SERVER['PHP_SELF']."");
}
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
$aFout = array();
$naam = trim($_POST['naam']);
$email = trim($_POST['email']);
$onderwerp = trim($_POST['onderwerp']);
$bericht = trim($_POST['bericht']);
if($cfg['CAPTCHA'])
{
$code = $_POST['code'];
}
if(empty($naam) || (strlen($naam) < 3) || eregi("[<>]", $naam) )
{
$aFout[] = "Er is geen naam ingevuld.";
unset($naam);
$fout['text']['naam'] = TRUE;
$fout['input']['naam'] = TRUE;
}
if(empty($email))
{
$aFout[] = "Er is geen e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
elseif(checkmail($email) == 0)
// Wanneer je PHP 5.2 > gebruikt
//elseif(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$aFout[] = "Er is geen correct e-mail adres ingevuld.";
unset($email);
$fout['text']['email'] = TRUE;
$fout['input']['email'] = TRUE;
}
if(empty($onderwerp))
{
$aFout[] = "Er is geen onderwerp ingevuld.";
unset($onderwerp);
$fout['text']['onderwerp'] = TRUE;
$fout['input']['onderwerp'] = TRUE;
}
if(empty($bericht))
{
$aFout[] = "Er is geen bericht ingevuld.";
unset($bericht);
$fout['text']['bericht'] = TRUE;
$fout['input']['bericht'] = TRUE;
}
if($cfg['CAPTCHA'])
{
if(strtoupper($code) != $_SESSION['captcha_code'])
{
$aFout[] = "Er is geen correcte code ingevuld.";
$fout['text']['code'] = TRUE;
$fout['input']['code'] = TRUE;
}
}
if(!$cfg['text'])
{
unset($fout['text']);
}
if(!$cfg['input'])
{
unset($fout['input']);
}
if(!empty( $aFout ))
{
$errors = '
<div id="errors">
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</div>";
}
else
{
$formulier = FALSE;
if($cfg['HTML'])
{
// Headers
$headers = "From: \"Contact Formulier\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$bericht = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>
<br />
<b>Naam:</b> '.$naam.'<br />
<b>Email:</b> <a href=\"mailto:'.$email.'\">'.$email.'</a><br />
<br />
<b>Bericht:</b><br />
'.$bericht.'
<br />
<br />
<br />
--------------------------------------------------------------------------<br />
<b>Datum:</b> '.date("d-m-Y @ H:i:s").'<br />
<b>IP:</b> <a href=\"http://sunny.nic.com/cgi-bin/whois?domain='.$_SERVER['REMOTE_ADDR'].'\">'.$_SERVER['REMOTE_ADDR'].'</a><br />
<b>Host:</b> '.gethostbyaddr($_SERVER['REMOTE_ADDR']).'<br />
</body>
</html>';
}
else
{
$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);
// Headers
$headers = "From: \"Contact Formulier\" <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset='iso-8859-1'\n";
// Bericht
$message = "Naam: ".$naam." \n";
$message .= "E-mail: ".$email." \n";
$message .= "Bericht:\n".$bericht_wrap." \n ";
$message .= " \n ";
$message .= "Datum: ".date("d-m-Y H:i:s")." \n";
$message .= "------------------------------------------------------- \n ";
$message .= "IP: ".$_SERVER['REMOTE_ADDR']." \n ";
$message .= "Host: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])." \n ";
}
if(mail($cfg['email'], "[Contact] ".$onderwerp, $bericht, $headers))
{
if(isset($_POST['stuurkopie']))
{
$headers = "From: \"Contact Formulier\" <".$email.">\r\n";
$headers .= "Reply-To: \"".$naam."\" <".$email.">\n";
$headers .= "Return-Path: Mail-Error <".$email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
mail($email, "[Contact] ".$onderwerp, $bericht, $headers);
}
unset($naam, $email, $onderwerp, $bericht);
setcookie("formulier", 1, time() + ( $cfg['spam'] * 60 ) );
echo "
<p>
Uw bericht is succesvol verzonden, er word zo snel mogelijk gereageerd.<br />
<br />
Met vriendelijke groeten,<br />
<b>".$cfg['naam']."</b>
</p>
";
}
else
{
echo "Er is een fout opgetreden bij het verzenden van de email";
}
header("refresh:3;url=".$cfg['url']."");
}
}
if($formulier)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Contact Formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="nl" />
</head>
<body>
<div id="container">
<?php
if(isset($errors)) {
echo $errors;
}
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<p>
<label <?php if(isset($fout['text']['naam'])) { echo 'class="fout"'; } ?>>Naam:</label>
<input type="text" id="naam" name="naam" maxlength="30" <?php if(isset($fout['input']['naam'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($naam)) { echo stripslashes($naam); } ?>" /><br />
<label <?php if(isset($fout['text']['email'])) { echo 'class="fout"'; } ?>>Email:</label>
<input type="text" id="email" name="email" maxlength="255" <?php if(isset($fout['input']['email'])) { echo 'class="fout"'; } ?> value="<?php if (!empty($email)) { echo stripslashes($email); } ?>" /><br />
<label <?php if(isset($fout['text']['onderwerp'])) { echo 'class="fout"'; } ?>>Onderwerp:</label>
<input type="text" id="onderwerp" name="onderwerp" maxlength="40" <?php if(isset($fout['input']['onderwerp'])) { echo 'class="fout'; } ?> value="<?php if (!empty($onderwerp)) { echo stripslashes($onderwerp); } ?>" /><br />
<label <?php if(isset($fout['text']['bericht'])) { echo 'class="fout"'; } ?>>Bericht:</label>
<textarea id="bericht" name="bericht" <?php if(isset($fout['input']['bericht'])) { echo 'class="fout"'; } ?> cols="30" rows="6"><?php if (!empty($bericht)) { echo stripslashes($bericht); } ?></textarea><br />
<?php
if($cfg['CAPTCHA'])
{
?>
<label></label>
<img src="captcha.php" alt="" /><br />
<label <?php if(isset($fout['text']['code'])) { echo 'class="fout"'; } ?>>Code:</label>
<input type="text" id="code" name="code" maxlength="4" size="4" <?php if(isset($fout['input']['code'])) { echo 'class="captcha fout"'; } ?> /><br />
<?php
}
?>
<label for="stuurkopie">Stuur mij een kopie</label><input type="checkbox" id="stuurkopie" name="stuurkopie" value="1" /><br />
<label></label>
<input type="submit" id="verzenden" name="verzenden" value="verzenden" />
<input type="submit" id="wis" name="wis" value="Wis velden" />
</p>
</form>
</div>
</div>
</div>
</body>
</html>
<?php
}
}
else
{
echo "
<p>
U kunt maar eens in de ".$cfg['spam']." minuten een e-mail versturen!<br />
U wordt nu automatisch doorgestuurd.
</p>";
header("refresh:3;url=".$cfg['url']."");
}
?>
Kunnen deze functies er nog bij ?
- possibility to upload attachments (images)
- when one image is uploaded, link appears under it, asking to add another image, or delete the previous
- possibility to send max. 10 attachments per email
- the confirmation shows if there was an attachment or no (f.ex. message (without attachment, with 5, 8 attachments) sent)
Gewijzigd op 01/01/1970 01:00:00 door chechu
http://www.phphulp.nl/php/scripts/2/1236/
Verder is het heel jammer dat je ob_start() in je script gebruikt. Probeer output en de programmatuur te scheiden, dan heb je deze vieze oplossing ook niet nodig.
Ook voor het sturen van een email zou ik een andere methode gebruiken. Kijk eens naar de phpmailer of de swiftmailer. Dit zijn betrouwbare classes die eenvoudig te inplementeren zijn. Het werkt snel een eenvoudig.
Veel succes!
Kan het script van Jan in je link samengevoegd worden in de code die ik net geplaatst heb ? Dan heb ik, denk ik, alle functies samen, niet ?
Gewijzigd op 01/01/1970 01:00:00 door chechu
Kan iemand me verder helpen, aub ?
Help !