Mailformulier verzenden naar vast emailadres + bezoeker

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Goezi Vandevelde

Goezi Vandevelde

27/01/2015 22:30:07
Quote Anchor link
Sinds kort hebben we ons mailformulier moeten aanpassen met een Recaptcha omdat we last hadden van bots.
Het formulier bevat een aantal persoonlijke gegevens van de bezoeker waaronder zijn mailadres.
Het formulier wordt gemailed naar een vast mailadres.
Graag hadden we dit zelfde formulier ook direct naar de bezoeker gestuurd als een soort bevestiging (copy)
Alleen weten we niet hoe we dit moeten aanpakken.
Kan iemand ons helpen. Hieronder de code
------
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
<?php
  require_once('recaptchalib.php');
  $privatekey = "0987968YGHJI9";
  $resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

  if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
    die ("De beveiligingscode is niet correct ingevuld. Ga terug naar de vorige pagina en probeer het nog een keer." .
         "(reCAPTCHA said: " . $resp->error . ")");
  }
else {
    // Your code here to handle a successful verification
  }
  ?>

<?php
 
if(isset($_POST['email'])) {
 
    
 
    // EDIT THE 2 LINES BELOW AS REQUIRED
 
    $email_to = "[email protected]";
 
    $email_subject = "Online bod op een veilingobject";
 
    
 
    
 
    function
died($error) {
 
        // your error code can go here
 
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
 
        echo "These errors appear below.<br /><br />";
 
        echo $error."<br /><br />";
 
        echo "Please go back and fix these errors.<br /><br />";
 
        die();
 
    }

 
    
 
    // validation expected data exists
 
    if(!isset($_POST['first_name']) ||
 
        !
isset($_POST['last_name']) ||
        
        !
isset($_POST['lotnr']) ||
        
        !
isset($_POST['maxhamer']) ||
 
        !
isset($_POST['email']) ||
 
        !
isset($_POST['telephone']) ||
 
        !
isset($_POST['comments'])) {
 
        died('Onze excuses, er lijkt een probleem te zijn met het biedingsformulier, probeer het nog een keer.');      
 
    }

 
    
 
    $first_name = $_POST['first_name']; // required
 
    $last_name = $_POST['last_name']; // required
 
    $email_from = $_POST['email']; // required
 
    $telephone = $_POST['telephone']; // not required
 
    $comments = $_POST['comments']; // required
    
    $lotnr = $_POST['lotnr']; // required
    
    $maxhamer = $_POST['maxhamer']; // required
 
    
 
    $error_message = "";
 
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
 
  if(!preg_match($email_exp,$email_from)) {
 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
 
  }

 
    $string_exp = "/^[A-Za-z .'-]+$/";
 
  if(!preg_match($string_exp,$first_name)) {
 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
 
  }

 
  if(strlen($comments) < 2) {
 
    $error_message .= 'The Comments you entered do not appear to be valid.<br />';
 
  }

 
  if(strlen($error_message) > 0) {
 
    died($error_message);
 
  }

 
    $email_message = "Form details below.\n\n";
 
    
 
    function
clean_string($string) {
 
      $bad = array("content-type","bcc:","to:","cc:","href");
 
      return str_replace($bad,"",$string);
 
    }

 
    
    
    $email_message .= "Lotnr: ".clean_string($lotnr)."\n";
    
    $email_message .= "Beschrijving + opmerkingen: ".clean_string($comments)."\n";
    
    $email_message .= "Maximale hamerprijs: ".clean_string($maxhamer)."\n";
 
    $email_message .= "Naam: ".clean_string($first_name)."\n";
 
    $email_message .= "Adres: ".clean_string($last_name)."\n";
 
    $email_message .= "Email: ".clean_string($email_from)."\n";
 
    $email_message .= "Telefoon: ".clean_string($telephone)."\n";
    
 
    
 
// create email headers
 
$headers = 'From: '.$email_from."\r\n".
 
'Reply-To: '.$email_from."\r\n" .
 
'X-Mailer: PHP/' . phpversion();
 
@
mail($email_to, $email_subject, $email_message, $headers);
 
?>

 
 
 
<!-- include your own success html here -->
 
 
 
<p>Wij danken U voor uw kooporder.</p>
<p>U krijgt kortelings een bevestigingsmail van zodra uw kooporder verwerkt is. </p>
<p>U wordt binnen 3 seconden terug naar de website gebracht. Indien niet, <a href="http://www.veilingenlucdebakker.be/welcome.php">klik hier</a>. </p>
<meta http-equiv="refresh" content="3;url=http://www.veilingenlucdebakker.be/welcome.php" />

<?php
 
}
 
?>

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 27/01/2015 23:02:09 door - Ariën -
 
PHP hulp

PHP hulp

25/04/2024 00:21:34
 
Frank Nietbelangrijk

Frank Nietbelangrijk

27/01/2015 22:39:32
Quote Anchor link
Ik zou NIET hetzelfde bericht naar de gebruiker sturen maar in plaats daarvan alleen een standaard tekst met iets als: "Wij hebben uw bericht ontvangen. We zullen u zo spoedig mogelijk antwoorden..."

Dit om te voorkomen dat je formulier een gratis email-dienst wordt ;-)

Eigenlijk kan bovenstaande code gewoon aan de onderkant uitgebreid worden met een tweede email:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

mail($email_from, 'contactformulier', 'Wij hebben uw bericht ontvangen. We zullen u zo spoedig mogelijk antwoorden.');

?>
 
Goezi Vandevelde

Goezi Vandevelde

27/01/2015 22:56:03
Quote Anchor link
Frank,

Bedankt voor je snelle reactie.
Ik heb jouw code onderaan erbij gezet. Het formulier komt aan op het statische adres, maar niet bij de bezoeker.
Ik heb deze als volgt erbij gezet, waarschijnlijk deed ik daar iets fout.
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
<?php
// create email headers
 
$headers = 'From: '.$email_from."\r\n".
 
'Reply-To: '.$email_from."\r\n" .
 
'X-Mailer: PHP/' . phpversion();
 
@
mail($email_to, $email_subject, $email_message, $headers);
@
mail($email_from, 'contactformulier', 'Wij hebben uw bericht ontvangen. We zullen u zo spoedig mogelijk antwoorden.');
 
 
?>

 
 
 
<!-- include your own success html here -->
 
 
 
<p>Wij danken U voor uw kooporder.</p>
<p>U krijgt kortelings een bevestigingsmail van zodra uw kooporder verwerkt is. </p>
<p>U wordt binnen 3 seconden terug naar de website gebracht. Indien niet, <a href="http://www.veilingenlucdebakker.be/welcome.php">klik hier</a>. </p>
<meta http-equiv="refresh" content="3;url=http://www.veilingenlucdebakker.be/welcome.php" />
 
<?php
 
}
 
?>
Gewijzigd op 27/01/2015 23:02:35 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

27/01/2015 23:03:01
Quote Anchor link
Nee lijkt me goed, maar natuurlijk wel even een ander mailadres opgeven bij het invullen van het formulier. Anders komen ze beiden op het zelfde mailadres aan inderdaad.
 
- Ariën  -
Beheerder

- Ariën -

27/01/2015 23:04:24
Quote Anchor link
Ik heb je code even tussen [code] en [/code]-tags geplaatst zodat het beter leesbaarder is.

Ik raad aan om de mails met de juiste headers te sturen:
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
 
Goezi Vandevelde

Goezi Vandevelde

27/01/2015 23:23:11
Quote Anchor link
Frank Nietbelangrijk op 27/01/2015 23:03:01:
Nee lijkt me goed, maar natuurlijk wel even een ander mailadres opgeven bij het invullen van het formulier. Anders komen ze beiden op het zelfde mailadres aan inderdaad.


Heb het nogmaals een aantal keren geprobeerd. Het mailadres dat vast in de phpcode staat werkt. Email komt daar toe. Het adres dat ik invul in het formulier is inderdaad een ander adres.
Hier ontvang ik helaas geen mail. Ergens doe ik iets fout denk ik.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

27/01/2015 23:30:36
Quote Anchor link
Ook niet bij de spam?

Doe anders even

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '==>' . $email_from . '<==';
?>


onder of boven de mail() regels. Krijg je dan het mailadres te zien?

Test je dit bij je provider of op je eigen pc?

Provider: wordt de mail() functie wel ondersteund?
Thuis: Onder windows werkt de mail() functie niet.
 
- Ariën  -
Beheerder

- Ariën -

27/01/2015 23:31:11
Quote Anchor link
Haal die @ voor je mail()-functie eens weg. je wilt juist geen foutmeldingen onderdrukken.
 
Goezi Vandevelde

Goezi Vandevelde

28/01/2015 09:31:31
Quote Anchor link
Frank & Aar,

Het formulier werkt!
Ik heb de @ verwijdert en enkele tests gedaan. Mail wordt mooi verstuurd naar de afzender en naar het vaste mailadres. (enkel mn eigen mailadres doet blijkbaar moeilijk, is een gmail)

Alvast bedankt voor jullie hulp en expertise !!

Groet

Goezi
 
- SanThe -

- SanThe -

28/01/2015 09:37:16
Quote Anchor link
Zo te zien is de From nog niet correct.
 
Goezi Vandevelde

Goezi Vandevelde

28/01/2015 09:44:35
Quote Anchor link
San The,
Hoe bedoel je dat de From nog niet correct is?
(Ben helemaal geen ontwikkelaar of programmeur, probeer met jullie hulp een formulier werkende te krijgen).

Nu komt er bij in de mail van de bezoeker een bevestigingsmail die afkomstig is van een zekere postmaster.
 
- SanThe -

- SanThe -

28/01/2015 09:57:59
 
Koen Hollander

Koen Hollander

28/01/2015 12:34:45
Quote Anchor link
Zoals al meerdere keren is gemeld kan je even kijken naar http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders

Dat is een voorbeeld van een script waar je gemakkelijk mee zou kunnen mailen.
 



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.