Mijn contact form
nieuw en onervaren, zal proberen mijn probleem zo duidelijk mogelijk uit te leggen.
Ik heb `Mijn contact form` gedownload van onze host Web-Oke via Instaltron.
Als ik op het contactform alle gegevens invul(naam emailadres en opmerking, dan krijg ik de melding "Invalid Name"
Helaas is er geen ondersteuning meer voor het programma, vandaar dat ik hiet terecht ben gekomen.
Als er een ander programma of script bestaat, simpel in gebruik en overzichtelijk hou ik me ook aanbevolen
Groet,
Rens
- Wil je nu dat we je helpen met het script wat je nu hebt? Dan mist de relevante code.
- Of ben je opzoek naar een ander script?
Zou je willen proberen je vraag te verduidelijken?
Ten eerste gebruik ik een bestaand script dat op de website staat van de host. Als ik dat gebruik, krijg ik nadat ik het heb verzonden een foutmelding.
Dit staan in het Contactscript php :
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
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
<?php
// VALUES FROM THE FORM
$name = $_POST['Naam'];
$email = $_POST['email'];
$message = $_POST['msg'];
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Error: Invalid E-Mail Address";
exit;
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Error: Invalid Name";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if ( !$message )
{
print "Error: No Message";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Error: Invalid E-Mail Address";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}
// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $name <$email>\n";
$recipient = "[email protected]";
$subject = "Contact From Your Website";
$message = wordwrap($message, 1024);
// SEND THE EMAIL TO YOU
mail($recipient, $subject, $message, $headers);
// REDIRECT TO THE THANKS PAGE
header("location: thanks.php");
?>
// VALUES FROM THE FORM
$name = $_POST['Naam'];
$email = $_POST['email'];
$message = $_POST['msg'];
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Error: Invalid E-Mail Address";
exit;
}
if ( ( !$name ) ||
( strlen($name) > 100 ) ||
( preg_match("/[:=@\<\>]/", $name) )
)
{
print "Error: Invalid Name";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if ( !$message )
{
print "Error: No Message";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Error: Invalid E-Mail Address";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}
// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $name <$email>\n";
$recipient = "[email protected]";
$subject = "Contact From Your Website";
$message = wordwrap($message, 1024);
// SEND THE EMAIL TO YOU
mail($recipient, $subject, $message, $headers);
// REDIRECT TO THE THANKS PAGE
header("location: thanks.php");
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
//rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
//rest
?>
De functie eregi() is verouderd en moet niet meer gebruikt worden. Zie de vervanger preg_match().
De mailheaders zijn niet correct en onvoldoende.
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
Ik weet pas sinds vorige week dat Php bestaat. Ik lees veel en probeer ook veel te leren. Als ik nu ga knippen en plakken in het script ben ik bang dat het direct helemaal niet meer werkt. Zou het heel plezierig vinden als jij me daar mee wilt helpen, zodat ik het zo over kan nemen en kan kopiëren.
Rens
Toevoeging op 31/01/2011 19:39:16:
SanThe,
Het is opgelost, ik zag in het script een foutief woord staan, Naam ipv name en alles werkt.
Rens