formmail - contactpagina
Heb ooit een PHP-form van het web geplukt, eigen gegevens ingevuld een formmail en bedanktpagina toegevoegd en wat denk je: Het liep meteen perfect. Inmiddels bestaat de site niet meer, maar formulier heb ik wel bewaard.
Nu ben ik bezig met een andere site, heb de pagina's van de oude gekopieerd, eea aangepast en testdraaien.
Nu kan ik wel het formulier helemaal invullen, werkt perfect, wegsturen, krijg ook de bedanktpagina ervoor, MAAARRRR, ik ontvang niks in mijn POSTVAK IN!
Wat doe ik verkeerd?
zie voor code hieronder (had een fout in code opslaan in tags.. :oops: )
Gewijzigd op 01/01/1970 01:00:00 door Amri
Tnx!
Ik zat al te zoeken naar een 'voorbeeld' voordat je het online zet... Ahum, ik hoop dat dit beter werkt...
Okay, ik begin overnieuw:
Wanneer ik de site/contactpagina test, invul en op verstuur klik, dan krijg ik een bedanktpagina in beeld. Prima, dat wilde ik ook hebben.
MAAARRRR... het verstuurde bericht krijg ik niet in mijn postvak!
Wat doe ik fout?
contactpage:
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
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
<?php
$sWebsitenaam = "http://www.netwerk-ons.nl";
$sMail = "[email protected]";
$bHTML = TRUE; //Bij TRUE word er een HTML-mail gestuurd. Bij FALSE een plain-text-mail
$sOnderwerp = "Interesse in lidmaatschap ONS - ondernemers netwerken samen"; //Vul hier een onderwerp in. Dit word het onderwerp wanneer er geen ondewerp is opgegeven of als $bOnderwerp op TRUE staat
$bOnderwerp = TRUE; //TRUE als bovenstaand onderwerp altijd gebruikt zal worden. FALSE wordt er eerst gekeken of er een onderwerp in het formulier voor komt
$bBedanktTxt = FALSE; //TRUE als onderstaande tekst als bedankje moet worden weergegeven, FALSE als er moet worden doorgestuurd naar de pagina welke hieronder is aangegeven
$sBedanktTxt = "Bedankt, uw bericht is verzonden. Binnen enkele werkdagen nemen wij contact met u op."; //bedankt text
$sBedanktURL = "http://www.netwerk-ons.nl/ONS/bedankt.htm"; //bedankt url
#########################
# End Configuration #
#########################
if (count($_POST) > 0)
{
//controleer of de $bHTML wel fatsoenlijk is ingesteld
if(!is_bool($bHTML))
{
print("De configuratie is onjuist. Zorg dat je bij <font color=blue><i>$bHTML</i></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!");
exit;
}
$errors = array();//definieer arrray voor de errormeldingen
$aKeys = array_keys($_POST); //pak alle arraykeys in een arraytje
foreach($_POST as $key=>$value)
{
$_POST[$key] = trim($value); //maak alle waarden netjes
}
foreach($aKeys as $key=>$value)
{
$aKeys[$key]=strtolower($value);//maak alle waarden in kleine letters
}
$aMail = explode(",",$sMail);
$aDomein = explode("@",$sMail[0]);
$sDomein = $aMail[1];
//mail detectie
if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; }
elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; }
elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; }
elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; }
elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; }
elseif (in_array("1e-mail",$aKeys)) { $sFrom = $_POST['1e-mail']; }
else
{
$sFrom = "postmaster@".$sDomein;
$bBedanktmail = FALSE;
}
if ($bOnderwerp)
{
$sSubject = $sOnderwerp;
}
else
{
if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; }
elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; }
elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; }
elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; }
else { $sSubject = $sOnderwerp; }
}
//check alle verplichte velden
foreach($_POST AS $key => $value)
{
if(substr($key,0,1) == 1)
{
if (empty($_POST[$key]))
{
$name = substr($key,1);
$error[] = "Het veld <i>'".$name."'</i> is verplicht en moet worden ingevuld.";
}
}
}
//als er een error was
if (isset($error) && count($error) > 0)
{
//poep alle errors uit
print("<ul style=\"list-style: none; color: red;\">\n");
foreach($error as $value)
{
print("\t<li>".$value."</li>\n");
}
print("</ul>");
}
else
{
$headers = "MIME-Version: 1.0\n";
$headers .= "From: ".$sWebsitenaam." <".$sFrom.">\n";
$headers .= "Reply-to: ".$sWebsitenaam." <noreply@".$sDomein.">\n";
$headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n";
$sContent = "Dit is een automatisch gegenereerd e-mailbericht die vanaf de ONS-site is verstuurd.\n\n";
foreach($_POST as $key => $value)
{
if (substr($key,0,1) == 1) { $key = substr($key,1); }
$sContent .= ucfirst(strtolower($key)).": ".$value."\n\n";
}
$sContent .= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n";
$sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n";
$enter = "
";
$sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ;
foreach ($aMail as $sMailAdress)
{
mail(trim($sMailAdress),$sSubject,$sContent,$headers);
}
if ($bBedanktmail)
{
$sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ;
mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers);
}
if (isset($bBedanktTxt) && $bBedanktTxt == TRUE)
{
print($sBedanktTxt);
}
else
{
ob_clean();
header("location: $sBedanktURL");
print('<meta http-equiv=refresh content="0; url='.$sBedanktURL.'">');
}
}
}
else
{
print("<form action=\"".$_SERVER['REQUEST_URI']."\" METHOD=\"POST\">\n"); ?>
$sWebsitenaam = "http://www.netwerk-ons.nl";
$sMail = "[email protected]";
$bHTML = TRUE; //Bij TRUE word er een HTML-mail gestuurd. Bij FALSE een plain-text-mail
$sOnderwerp = "Interesse in lidmaatschap ONS - ondernemers netwerken samen"; //Vul hier een onderwerp in. Dit word het onderwerp wanneer er geen ondewerp is opgegeven of als $bOnderwerp op TRUE staat
$bOnderwerp = TRUE; //TRUE als bovenstaand onderwerp altijd gebruikt zal worden. FALSE wordt er eerst gekeken of er een onderwerp in het formulier voor komt
$bBedanktTxt = FALSE; //TRUE als onderstaande tekst als bedankje moet worden weergegeven, FALSE als er moet worden doorgestuurd naar de pagina welke hieronder is aangegeven
$sBedanktTxt = "Bedankt, uw bericht is verzonden. Binnen enkele werkdagen nemen wij contact met u op."; //bedankt text
$sBedanktURL = "http://www.netwerk-ons.nl/ONS/bedankt.htm"; //bedankt url
#########################
# End Configuration #
#########################
if (count($_POST) > 0)
{
//controleer of de $bHTML wel fatsoenlijk is ingesteld
if(!is_bool($bHTML))
{
print("De configuratie is onjuist. Zorg dat je bij <font color=blue><i>$bHTML</i></font> een booleaanse waarde (TRUE of FALSE) hebt ingevuld. Letop: Hier moeten geen quotes ( \" of ') omheen!");
exit;
}
$errors = array();//definieer arrray voor de errormeldingen
$aKeys = array_keys($_POST); //pak alle arraykeys in een arraytje
foreach($_POST as $key=>$value)
{
$_POST[$key] = trim($value); //maak alle waarden netjes
}
foreach($aKeys as $key=>$value)
{
$aKeys[$key]=strtolower($value);//maak alle waarden in kleine letters
}
$aMail = explode(",",$sMail);
$aDomein = explode("@",$sMail[0]);
$sDomein = $aMail[1];
//mail detectie
if (in_array("mail",$aKeys)) { $sFrom = $_POST['mail']; }
elseif (in_array("email",$aKeys)) { $sFrom = $_POST['email']; }
elseif (in_array("e-mail",$aKeys)) { $sFrom = $_POST['e-mail']; }
elseif (in_array("1mail",$aKeys)) { $sFrom = $_POST['1mail']; }
elseif (in_array("1email",$aKeys)) { $sFrom = $_POST['1email']; }
elseif (in_array("1e-mail",$aKeys)) { $sFrom = $_POST['1e-mail']; }
else
{
$sFrom = "postmaster@".$sDomein;
$bBedanktmail = FALSE;
}
if ($bOnderwerp)
{
$sSubject = $sOnderwerp;
}
else
{
if (in_array("onderwerp",$aKeys)) { $sSubject = $_POST['onderwerp']; }
elseif (in_array("subject",$aKeys)) { $sSubject = $_POST['subject']; }
elseif (in_array("1onderwerp",$aKeys)) { $sSubject = $_POST['1onderwerp']; }
elseif (in_array("1subject",$aKeys)) { $sSubject = $_POST['1subject']; }
else { $sSubject = $sOnderwerp; }
}
//check alle verplichte velden
foreach($_POST AS $key => $value)
{
if(substr($key,0,1) == 1)
{
if (empty($_POST[$key]))
{
$name = substr($key,1);
$error[] = "Het veld <i>'".$name."'</i> is verplicht en moet worden ingevuld.";
}
}
}
//als er een error was
if (isset($error) && count($error) > 0)
{
//poep alle errors uit
print("<ul style=\"list-style: none; color: red;\">\n");
foreach($error as $value)
{
print("\t<li>".$value."</li>\n");
}
print("</ul>");
}
else
{
$headers = "MIME-Version: 1.0\n";
$headers .= "From: ".$sWebsitenaam." <".$sFrom.">\n";
$headers .= "Reply-to: ".$sWebsitenaam." <noreply@".$sDomein.">\n";
$headers .= ($bHTML) ? "Content-Type: text/html; charset=iso-8859-1\n" : "Content-Type: text/plain; charset=iso-8859-1\n";
$sContent = "Dit is een automatisch gegenereerd e-mailbericht die vanaf de ONS-site is verstuurd.\n\n";
foreach($_POST as $key => $value)
{
if (substr($key,0,1) == 1) { $key = substr($key,1); }
$sContent .= ucfirst(strtolower($key)).": ".$value."\n\n";
}
$sContent .= "IP: ".$_SERVER['REMOTE_ADDR']."\n\n";
$sContent .= "Tijdstip: ".date("D j M, Y G:i")."\n\n";
$enter = "
";
$sContent = ($bHTML) ? nl2br(htmlspecialchars($sContent)) : str_replace("\n",$enter,$sContent) ;
foreach ($aMail as $sMailAdress)
{
mail(trim($sMailAdress),$sSubject,$sContent,$headers);
}
if ($bBedanktmail)
{
$sBedanktmail = ($bHTML) ? nl2br(htmlspecialchars($sBedanktmail)) : str_replace("\n",$enter,$sBedanktmail) ;
mail($sFrom,$sBedanktsubj,$sBedanktmail,$headers);
}
if (isset($bBedanktTxt) && $bBedanktTxt == TRUE)
{
print($sBedanktTxt);
}
else
{
ob_clean();
header("location: $sBedanktURL");
print('<meta http-equiv=refresh content="0; url='.$sBedanktURL.'">');
}
}
}
else
{
print("<form action=\"".$_SERVER['REQUEST_URI']."\" METHOD=\"POST\">\n"); ?>
formmailcode:
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
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
<?php /*********************************************** * Author: Clear Webdesign
* Date: 1 - 12 - 2004 * Script: Formhandler * Version: 1.0.0 ***********************************************/
/*********************************************** * Noting in this script has te
be modified * to be functional. The only thing this script * needs is a data feed
from forms. ************************************************/ class formhandler{
var $PostVars; function formhandler($restricted){ $PostRestricted = explode(email;
naam, $restricted); $EmailContents = array( 'Subject' => $_POST['Interesse in
lidmaatschap ONS - ondernemers netwerken samen'], 'To' => $_POST['[email protected]'],
'Header' => "Er is een formulier ingevuld, hieronder de gegevens:
<hr><p>",
'Content' => "",
'Footer' => "<font size=-2>Deze email is automatisch gegenereerd. Als er fouten zijn,
neem dan contact op met [email protected] <br>
Bedankt!</font>", 'EmailHeaders' => "Content-Type: text/html; charset=iso-8859-1
\r\n " ); unset($_POST['subject'], $_POST['[email protected]']); /*******************************
* Loops ******************/ foreach($_POST as $PostNaam => $PostWaarde){ foreach($PostRestricted
as $PostRestrictedNr => $PostRestrictedNaam){ if(($PostNaam == $PostRestrictedNaam)
&& empty($_POST[$PostNaam])){ $this->notfilled($PostNaam); } } } unset($_POST['restricted']);
unset($_POST['submit']); $this->sendform($EmailContents); } function notfilled($field){
die("U heeft het veld <strong> \"" . ucfirst(strtolower($field)) . "\"</strong>
niet ingevuld. Ga terug en vul die veld vervolgens in"); } function sendform($EmailContents){
foreach($_POST as $PostNaam => $PostWaarde){ $EmailContents['Content'] .= "<strong>"
. $PostNaam . "</strong>: " . $PostWaarde . "<br>
";
}
$Mail = mail(
$EmailContents['To'],
$EmailContents['Subject'],
$EmailContents['Header'] . $EmailContents['Content'] . $EmailContent['Footer'],
$EmailContents['EmailHeaders']
);
if(!$Mail){
die("De mail kon niet worden verzonden. Neem contact op met de webmaster. Sorry voor het ongemak!");
}
// Error_reporting
error_reporting(E_ALL);
}
}$do = new formhandler($_POST['restricted']);
?>
* Date: 1 - 12 - 2004 * Script: Formhandler * Version: 1.0.0 ***********************************************/
/*********************************************** * Noting in this script has te
be modified * to be functional. The only thing this script * needs is a data feed
from forms. ************************************************/ class formhandler{
var $PostVars; function formhandler($restricted){ $PostRestricted = explode(email;
naam, $restricted); $EmailContents = array( 'Subject' => $_POST['Interesse in
lidmaatschap ONS - ondernemers netwerken samen'], 'To' => $_POST['[email protected]'],
'Header' => "Er is een formulier ingevuld, hieronder de gegevens:
<hr><p>",
'Content' => "",
'Footer' => "<font size=-2>Deze email is automatisch gegenereerd. Als er fouten zijn,
neem dan contact op met [email protected] <br>
Bedankt!</font>", 'EmailHeaders' => "Content-Type: text/html; charset=iso-8859-1
\r\n " ); unset($_POST['subject'], $_POST['[email protected]']); /*******************************
* Loops ******************/ foreach($_POST as $PostNaam => $PostWaarde){ foreach($PostRestricted
as $PostRestrictedNr => $PostRestrictedNaam){ if(($PostNaam == $PostRestrictedNaam)
&& empty($_POST[$PostNaam])){ $this->notfilled($PostNaam); } } } unset($_POST['restricted']);
unset($_POST['submit']); $this->sendform($EmailContents); } function notfilled($field){
die("U heeft het veld <strong> \"" . ucfirst(strtolower($field)) . "\"</strong>
niet ingevuld. Ga terug en vul die veld vervolgens in"); } function sendform($EmailContents){
foreach($_POST as $PostNaam => $PostWaarde){ $EmailContents['Content'] .= "<strong>"
. $PostNaam . "</strong>: " . $PostWaarde . "<br>
";
}
$Mail = mail(
$EmailContents['To'],
$EmailContents['Subject'],
$EmailContents['Header'] . $EmailContents['Content'] . $EmailContent['Footer'],
$EmailContents['EmailHeaders']
);
if(!$Mail){
die("De mail kon niet worden verzonden. Neem contact op met de webmaster. Sorry voor het ongemak!");
}
// Error_reporting
error_reporting(E_ALL);
}
}$do = new formhandler($_POST['restricted']);
?>
Ik doe iets verkeer, maar wat?
link naar de pagina: contactpagina
Alvast bedankt voor jullie reactie.
Irma
Gewijzigd op 01/01/1970 01:00:00 door amri
En zou die compleetdesigner je niet een beetje op weg kunnen helpen, welke op je website staat vermeld?