Captcha in PHP Formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Justin Groot

Justin Groot

09/05/2007 10:14:00
Quote Anchor link
Hoi Allemaal,

Ik probeer al weken lang voor elkaar te krijgen om een Captcha code in mijn contact formulier toe te voegen. Dit omdat ik al maanden last heb van SPAM via het online formulier. Ik wordt er gek van en soms wel een stuk of 10 berichten per dag.

Via google heb ik al heel wat scripts gevonden maar het probleem is dat ik het niet krijg toegepast in mijn al bestaande script. Ik wil mijn eigen contact formulier namelijk gewoon behouden. Al op verschillende manieren heb ik pogingen gedaan maar steeds slaat het hele script op hol en werkt niks meer. Via deze website heb ik een goede uitleg van een script gevonden: http://www.joriso.nl/verhaaltjes-webdevelopment-captcha-2.html

Echter ook hiermee lukt het me niet de captcha toe te voegen. Zij geven namelijk dit stukje script aan om toe te voegen in het contact formulier:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<head>
<title>html formulier met php captcha</title>
</head>

<body>

<form method="post" action="write.php">
<input class="input" type="text" name="norobot">
<img src="captcha.php"><input type="submit" value="Toevoegen">

</form>

</body>

</html>


Mijn contact formulier ziet er tussen de <form> tags zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>


Wie o wie kan mij op weg helpen om beide codes bij elkaar samen te voegen? ALvast ontzettend bedankt!!

Groeten,
Justin
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
 
PHP hulp

PHP hulp

06/05/2024 09:25:20
 

09/05/2007 10:28:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>


Maar hier zit de truc niet, die zit in het bestand dat de mail wegstuurt
 
Justin Groot

Justin Groot

09/05/2007 15:40:00
Quote Anchor link
Ook hiermee gaat het compleet fout, zie http://www.kermisadviesgroep.nl/contact/contact2.php.

Ik had gehoopt dat het probleem in dit stukje code zat. De complete code wordt namelijk zo'n waslijst. Echter als jullie me hiermee kunnen helpen zou dat geweldig zijn. Dit is het hele script van het contact formulier zelf (buiten de write.php en captcha.php om).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?

ob_start();

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

 
$site = "http://www.kermisadviesgroep.nl/home.htm";    // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$wm_naam = "Kermis Advies Groep";                    // Webmaster naam
$wm_email = "[email protected]";        // Webmaster E-mail
$Anti_Spam = "10";                        // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$html = TRUE;                                // Een HTML email

// Hierna hoef je niks meer te veranderen!

$naam = $_POST['naam'];
$email = $_POST['email'];
$functie = $_POST['functie'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$bericht_wrap = wordwrap ($bericht, 90, "\n", 1);

// IP van de verstuurder
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);
}
elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = getenv($_SERVER['HTTP_CLIENT_IP']);
}
else {
    $ip = $_SERVER['REMOTE_ADDR'];
}


$host = gethostbyaddr($ip);         // Host van verstuurder

if($html) {
// Headers
    $headers = "From: \"Contact Formulier KermisAdviesGroep.nl\" <".$wm_email.">\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n";

// Bericht
    $message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
    $message .= "<HTML><HEAD>";
    $message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">";
    $message .= "</HEAD><BODY>";
    $message .= "<BR> ";
    $message .= "<TABLE>";
    $message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>";
    $message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>";
    $message .= "<tr><td>Functie:</td><td>".$functie."</td></tr>";  
    $message .= "<BR> ";
    $message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>";
    $message .= "<tr><td colspan=\"2\">&nbsp;</td></tr>";
    $message .= "<BR> ";
    $message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>";
    $message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>";
    $message .= "<tr><td>Host:</td><td>".$host."</td></tr>";
    $message .= "</TABLE></BODY></HTML>";
      
}


else {
// Headers
    $headers = "From: \"Contact Formulier KermisAdviesGroep.nl\" <".$wm_email.">\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1";

// Bericht
    $message = "Naam: ".$naam."        \n";
    $message .= "E-mail: ".$email."     \n";
    $message .= "Functie: ".$functie."     \n";
    $message .= "Bericht:\n".$bericht_wrap."     \n ";
    $message .= "               \n ";
    $message .= "Datum: ".date("d-m-Y H:i:s")." \n";
    $message .= "------------------------------------------------------- \n ";
    $message .= "IP: ".$ip."                    \n ";
    $message .= "Host: ".$host."                \n ";

}

// Mail Checker
function checkmail($mail)
{

    $email_host = explode("@", $mail);
    $email_host = $email_host['1'];
    $email_resolved = gethostbyname($email_host);
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
       $valid = 1;
    return $valid;
}

// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(!isset($_COOKIE['mailformulier']))
{

    // Alles Controleren Wanneer er op Verzenden wordt gedrukt
    if(isset($_POST['verzenden']))
    {

        $fout = "";
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam)))
        {

            $fout .= "U bent vergeten uw naam in te vullen! <BR>";
            unset($naam);
            $fout_vakje_naam = "input_fout";
            $fout_text_naam = "text_fout";
        }

        if((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email)))
        {

            $fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>";
            unset($email);
            $fout_vakje_email = "input_fout";
            $fout_text_email = "text_fout";
        }

        elseif(checkmail($email) == 0)
        {

            $fout .= "Vul een correct e-mail adres in! <BR>";
            unset($email);
            $fout_vakje_email = "input_fout";
            $fout_text_email = "text_fout";
        }

        if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )
        {

            $fout .= "U bent vergeten een onderwerp in te vullen! <BR>";
            unset($onderwerp);
            $fout_vakje_onderwerp = "input_fout";
            $fout_text_onderwerp = "text_fout";
        }

        if(empty($bericht))
        {

            $fout .= "U bent vergeten een bericht in te vullen! <BR";
            unset($bericht);
            $fout_vakje_bericht = "input_fout";
            $fout_text_bericht = "text_fout";
        }

        elseif(strlen($bericht) < 6)
        {

            $fout .= "Uw bericht is tekort! <BR>";
            $fout_vakje_bericht = "input_fout";
            $fout_text_bericht = "text_fout";
        }

        if(!empty($fout))
        {

        echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
        }
        else
        {
        mail($wm_email,$onderwerp,$message,$headers);

        // Bericht als mail succesvol is verzonden
        echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";
        echo "<BR>Uw contact bericht is succesvol verzonden!<BR>";
        echo "Wij streven ernaar zo snel mogelijk reactie te geven.<BR><BR>";
        echo "Met vriendelijke groeten,<BR>";
        echo "<B>".$wm_naam."</B>";

        // cookie zetten tegen spam
        setcookie("mailformulier",1,time()+($Anti_Spam*60));

        // formulier wordt niet weer getoond
        $Formulier = TRUE;

        header("refresh:6;url=".$site."");
        }
    }
}

else {
    $Formulier = FALSE;
    echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>";
    echo "<center><h2> Spam Beveiliging </h2><br />";
    echo "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></body></html>";
    header("refresh:3;url=".$site."");
}


if(!isset($Formulier))
{

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Contact Formulier</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
<table class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse">
<tr><td><br />
<form method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr><td> </td><td> </td></tr>
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />
</td></tr>
</table>
</form>
</td></tr>
</table>


</body>
</html>
<?
}
?>
 
Justin Groot

Justin Groot

10/05/2007 11:52:00
Quote Anchor link
Jongens ik weet het al.. mijn hosting ondersteund geen PHP. Daar kom ik na weken lang zoeken naar oplossingen en nieuwe scripts uitproberen achter.....
Bedankt voor de hulp in ieder geval, ik ga het script op een tweede hosting proberen!!
 
Thijs X

Thijs X

10/05/2007 11:55:00
Quote Anchor link
Haha dan word het inderdaad lastig.

Offtopic: Mooi scriptje ;)
 
Justin Groot

Justin Groot

10/05/2007 14:09:00
Quote Anchor link
Het is inderdaad een mooi en goedwerkend script, vandaar ook dat ik dit script graag wil behouden ipv een script van het internet te kopiëren.

Het contact script werkt nu weer, inclusief captcha. Toch werkt de Captcha zelf niet, ook als ik namelijk een foute code overtik wordt de mail gewoon verzonden. Ziet iemand wat er dan nog fout gaat nu? Alvast bedankt!!
 
Thijs X

Thijs X

10/05/2007 14:20:00
Quote Anchor link
Als je hetzelfde stuk code gebruikt als je hierboven hebt staan dan krijg je dat inderdaad.
Want je controleerd nergens of de code overeen komt met de code die is aangemaakt.
Welke CAPTCHA gebruik je? Word de code in een sessie?
 
Justin Groot

Justin Groot

10/05/2007 14:29:00
Quote Anchor link
Captcha:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// het random nr. aanmaken en gecodeerd opslaan in php sessie

session_start();

$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);

// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font

$im = imagecreatetruecolor(100, 38);

// Kleurenbepaling

$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts

imagefilledrectangle($im, 0, 0, 200, 35, $black);

// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';

// schaduw toevoegen

imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);

// randomnr. toevoegen

imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);

// voorkomen dat afbeelding ge-cached wordt

header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// plaatje verzenden naar browser

header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
 
Thijs X

Thijs X

10/05/2007 14:36:00
Quote Anchor link
Maak dit ereens van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if(md5($_POST['norobot']) != $_SESSION['randomnr2'])
{

    $fout .= "Er is geen correcte code ingevoerd.";
}

if(!empty($fout))
{

    echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}
?>


Edit: *TYPO*
Gewijzigd op 01/01/1970 01:00:00 door Thijs X
 
Justin Groot

Justin Groot

11/05/2007 11:42:00
Quote Anchor link
Moet ik dit stukje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
            $fout .= "Uw bericht is tekort! <BR>";
            $fout_vakje_bericht = "input_fout";
            $fout_text_bericht = "text_fout";
        }
        if(!empty($fout))
        {
        echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)


vervangen door dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
if(md5($_POST['norobot']) != $_SESSION['randomnr2'])
{
    $fout .= "Er is geen correcte code ingevoerd.";
}
if(!empty($fout))
{
    echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)
}


?
 
Justin Groot

Justin Groot

14/05/2007 13:27:00
Quote Anchor link
Als het inderdaad zo moet als ik hierboven beschrijf, dan werkt het niet helaas.
Nu is het zelfs zo dat wanneer je de code GOED overtypt er in beeld komt dat het fout is, en als je het FOUT overtypt wordt de mail gewoon verzonden!

Onderstaande code heb ik nu als contact.php, voor de duidelijkheid nog even:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?  
session_start();
ob_start();  

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  
header("Cache-Control: no-store, no-cache, must-revalidate");  
header("Cache-Control: post-check=0, pre-check=0", false);  
header("Pragma: no-cache");  

  
$site = "http://www.kermisadviesgroep.nl/home.htm";    // Site waarnaar je terug gaat als je een bericht hebt achtergelaten  
$wm_naam = "KAG";                    // Webmaster naam  
$wm_email = "[email protected]";        // Webmaster E-mail  
$Anti_Spam = "0";                        // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )  
$html = TRUE;                                // Een HTML email  

// Hierna hoef je niks meer te veranderen!  

$naam = $_POST['naam'];  
$email = $_POST['email'];  
$functie = $_POST['functie'];  
$onderwerp = $_POST['onderwerp'];  
$bericht = $_POST['bericht'];  
$norobot = $_POST['norobot'];
$bericht_wrap = wordwrap ($bericht, 90, "\n", 1);  

// IP van de verstuurder  
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) {  
    $ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);  
}
elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) {  
    $ip = getenv($_SERVER['HTTP_CLIENT_IP']);  
}
else {  
    $ip = $_SERVER['REMOTE_ADDR'];  
}
  

$host = gethostbyaddr($ip);         // Host van verstuurder  

if($html) {  
// Headers  
    $headers = "From: \"Contact Formulier KAG\" <".$wm_email.">\r\n";  
    $headers .= "MIME-Version: 1.0\r\n";  
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";  
    $headers .= "Return-Path: Mail-Error <".$wm_naam.">\r\n";  

// Bericht  
    $message = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";  
    $message .= "<HTML><HEAD>";  
    $message .= "<META http-equiv=3DContent-Type content=3D\"text/html; = charset=3Dwindows-1252\">";  
    $message .= "</HEAD><BODY>";  
    $message .= "<BR> ";  
    $message .= "<TABLE>";  
    $message .= "<tr><td>Naam:</td><td>".$naam."</td></tr>";  
    $message .= "<tr><td>Email:</td><td><a href=\"mailto:".$email."\">".$email."</a></td></tr>";
    $message .= "<tr><td>Functie:</td><td>".$functie."</td></tr>";  
    $message .= "<BR> ";  
    $message .= "<tr><td>Bericht:</td><td>".$bericht."</td></tr>";  
    $message .= "<tr><td colspan=\"2\">&nbsp;</td></tr>";  
    $message .= "<BR> ";  
    $message .= "<tr><td>Datum:</td><td>".date("d-m-Y H:i:s")."</td></tr>";  
    $message .= "<tr><td>IP:</td><td><a href=\"http://sunny.nic.com/cgi-bin/whois?domain=".$ip."\">".$ip."</a></td></tr>";  
    $message .= "<tr><td>Host:</td><td>".$host."</td></tr>";  
    $message .= "</TABLE></BODY></HTML>";  
      
}
  

else {  
// Headers  
    $headers = "From: \"Contact Formulier KAG\" <".$wm_email.">\r\n";  
    $headers .= "MIME-Version: 1.0\r\n";  
    $headers .= "Content-type: text/plain; charset=iso-8859-1";  

// Bericht  
    $message = "Naam: ".$naam."        \n";  
    $message .= "E-mail: ".$email."     \n";
    $message .= "Functie: ".$functie."     \n";  
    $message .= "Bericht:\n".$bericht_wrap."     \n ";  
    $message .= "               \n ";  
    $message .= "Datum: ".date("d-m-Y H:i:s")." \n";  
    $message .= "------------------------------------------------------- \n ";  
    $message .= "IP: ".$ip."                    \n ";  
    $message .= "Host: ".$host."                \n ";  

}
  
// Mail Checker  
function checkmail($mail)  
{
  
    $email_host = explode("@", $mail);  
    $email_host = $email_host['1'];  
    $email_resolved = gethostbyname($email_host);  
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))  
       $valid = 1;  
    return $valid;  
}
  
// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.  
if(!isset($_COOKIE['mailformulier']))  
{
  
    // Alles Controleren Wanneer er op Verzenden wordt gedrukt  
    if(isset($_POST['verzenden']))  
    {
  
        $fout = "";  
        if((empty($naam)) OR (strlen($naam) < 3) OR (eregi(">", $naam)))  
        {
  
            $fout .= "U bent vergeten uw naam in te vullen! <BR>";  
            unset($naam);  
            $fout_vakje_naam = "input_fout";  
            $fout_text_naam = "text_fout";  
        }
  
        if (md5($norobot) == $_SESSION['randomnr2']) {
            $fout .= "U heeft de code incorrect over getypt! <BR>";  
            unset($norobot);  
            $fout_vakje_norobot = "input_fout";  
            $fout_text_norobot = "text_fout";  
        }
elseif((empty($email)) OR (strlen($email) < 7) OR (eregi(">", $email)))  
        {
  
            $fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>";  
            unset($email);  
            $fout_vakje_email = "input_fout";  
            $fout_text_email = "text_fout";  
        }
  
        elseif(checkmail($email) == 0)  
        {
  
            $fout .= "Vul een correct e-mail adres in! <BR>";  
            unset($email);  
            $fout_vakje_email = "input_fout";  
            $fout_text_email = "text_fout";  
        }
  
        if((empty($onderwerp)) OR (strlen($onderwerp) < 3) OR (eregi(">", $onderwerp)) )  
        {
  
            $fout .= "U bent vergeten een onderwerp in te vullen! <BR>";  
            unset($onderwerp);  
            $fout_vakje_onderwerp = "input_fout";  
            $fout_text_onderwerp = "text_fout";  
        }
  
        if(empty($bericht))  
        {
  
            $fout .= "U bent vergeten een bericht in te vullen! <BR";  
            unset($bericht);  
            $fout_vakje_bericht = "input_fout";  
            $fout_text_bericht = "text_fout";  
        }
  
        elseif(strlen($bericht) < 6)  
        {
  
            $fout .= "Uw bericht is tekort! <BR>";  
            $fout_vakje_bericht = "input_fout";  
            $fout_text_bericht = "text_fout";  
        }
  
        if(!empty($fout))  
        {
  
        echo "<center><font color=\"#FF0000\"> $fout </font><br>"; // Weergeven van de fout(en)  
        }  
        else  
        {  
        mail($wm_email,$onderwerp,$message,$headers);  

        // Bericht als mail succesvol is verzonden  
        echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";  
        echo "<BR>Uw contact bericht is succesvol verzonden!<BR>";  
        echo "Wij streven ernaar zo snel mogelijk reactie te geven.<BR><BR>";  
        echo "Met vriendelijke groeten,<BR>";  
        echo "<B>".$wm_naam."</B>";  

        // cookie zetten tegen spam  
        setcookie("mailformulier",1,time()+($Anti_Spam*60));  

        // formulier wordt niet weer getoond  
        $Formulier = TRUE;  

        header("refresh:6;url=".$site."");  
        }  
    }  
}
  
else {  
    $Formulier = FALSE;  
    echo "<html><head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>";  
    echo "<center><h2> Spam Beveiliging </h2><br />";  
    echo "U kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center></body></html>";  
    header("refresh:3;url=".$site."");  
}
  

if(!isset($Formulier))  
{
  
?>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html>  
<head>  
<link href="style.css" rel="stylesheet" type="text/css" />  
<title>Contact Formulier</title>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
</head>  

<body>  
<table class="tabel" border="1" cellpadding="5" cellspacing="0"  width="300" style="border-collapse: collapse">  
<tr><td><br />  
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">  
<table>  
<tr><td> </td><td> </td></tr>  
<tr><td class="<? echo $fout_text_naam; ?>">Naam:</td><td><input type="text" class="<? echo $fout_vakje_naam; ?>" id="naam" name="naam" maxlength="30" value="<? echo $naam; ?>" /></td></tr>  
<tr><td class="<? echo $fout_text_email; ?>">Email:</td><td><input type="text" class="<? echo $fout_vakje_email; ?>" id="email" name="email" maxlength="40" value="<? echo $email; ?>" /></td></tr>  
<tr><td class="<? echo $fout_text_functie; ?>">Functie:</td><td><input type="text" class="<? echo $fout_vakje_functie; ?>" id="functie" name="functie" maxlength="40" value="<? echo $functie; ?>" /></td></tr>  
<tr><td class="<? echo $fout_text_onderwerp; ?>">Onderwerp:</td><td><input type="text" class="<? echo $fout_vakje_onderwerp; ?>" id="onderwerp" name="onderwerp" maxlength="70" value="<? echo $onderwerp; ?>" /></td></tr>  
<tr><td valign="top" class="<? echo $fout_text_bericht; ?>">Bericht:</td><td><textarea id="bericht" name="bericht" class="<? echo $fout_vakje_bericht; ?>" cols="68" rows="10"><? echo $bericht; ?></textarea></td></tr>  
<tr><td><input class="input" type="text" name="norobot"> </td>
<td><img src="captcha.php"></td></tr>
<tr><td></td><td><input type="submit" id="verzenden" name="verzenden" value="Verzenden" /><input type="reset" id="wis" name="wis" value="Wis velden" />  
</td></tr>  
</table>  
</form>  
</td></tr>  
</table>  


</body>  
</html>  
<?  
}  
?>


en de Captcha:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// het random nr. aanmaken en gecodeerd opslaan in php sessie

session_start();

$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);

// captcha plaatje met nummer maken - afmetingen kun je aanpassen gebruikte font

$im = imagecreatetruecolor(100, 38);

// Kleurenbepaling

$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

// zwarte rechthoek tekenen - afmetingen kun je aanpassen aan verschillende fonts

imagefilledrectangle($im, 0, 0, 200, 35, $black);

// hier - font.ttf' vervangen met de locatie van je eigen font bestand
$font = 'font.ttf';

// schaduw toevoegen

imagettftext($im, 35, 0, 22, 24, $grey, $font, $randomnr);

// randomnr. toevoegen

imagettftext($im, 35, 0, 15, 26, $white, $font, $randomnr);

// voorkomen dat afbeelding ge-cached wordt

header("Expires: Wed, 1 Jan 1997 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// plaatje verzenden naar browser

header ("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
 
Justin Groot

Justin Groot

14/05/2007 17:19:00
Quote Anchor link
Jongens toch bedankt voor de hulp. Heb het probleem inmiddels gevonden :) In de '!=' op de eerste regel zat de fout:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
if (md5($norobot) != $_SESSION['randomnr2']) {  
            $fout .= "U heeft de code incorrect over getypt! <BR>";  
            unset($norobot);  
            $fout_vakje_norobot = "input_fout";  
            $fout_text_norobot = "text_fout";  
        }  
Gewijzigd op 01/01/1970 01:00:00 door Justin Groot
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.