PHP formulier - email bevestiging naar inschrijver

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Lindsey Hermans

Lindsey Hermans

23/01/2018 13:59:09
Quote Anchor link
Hallo allemaal,

Ik heb op basis van een aangekocht ontwerp mijn eigen website gebouwd incl. een aanmeldformulier met php verwerking. Het werkt allemaal, heel fijn.

Nu is zo dat degene die aanmeld een bevestiging ziet op de webpagina en de gegevens worden gestuurd naar mijn mailadres. Dat moet ook zo blijven. Ik zou alleen extra willen dat degene die zich inschrijft automatisch ook een email krijgt met daarin bevestigd dat hij/zij zich heeft aangemeld.

Welke codering kan ik toevoegen? En waar moet ik dat doen?
Ik ben al maanden aan het zoeken hier op het forum en op de rest van het internet maar ik kom er niet uit.
Super bedankt alvast voor jullie reactie.

NB: het daadwerkelijke formulier staat in de html van de website en dus niet in dit php bestand.


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
<?php    
    // Your Email
    $recipient = "MIJN EMAILADRES"; //
    
    // Check $recipient

    if($recipient === '') {
        returnAndExitAjaxResponse(
            constructAjaxResponseArray(
                FALSE,
                'RECIPIENT_IS_NOT_SET',
                array('error_message'=> 'RECIPIENT email address is not set. Please configure the script.')
            )
        );
    }


    // Check for empty required field
    if(!isset($_POST["email"]) ||!isset($_POST["emailp"]) || !isset($_POST["fname"]) || !isset($_POST["lname"]) ||!isset($_POST["adres"]) || !isset($_POST["place"]) ||  !isset($_POST["phonenumber"]) ||!isset($_POST["message"])) {
        returnAndExitAjaxResponse(
            constructAjaxResponseArray(
                FALSE,
                'MISSING_REQUIRED_FIELDS',
                array('error_message'=> 'MISSING_REQUIRED_FIELDS should not be occurred.')
            )
        );
    }


    // Sanitize input
    $fname    = filter_var($_POST["fname"], FILTER_SANITIZE_STRING);
    $lname    = filter_var($_POST["lname"], FILTER_SANITIZE_EMAIL);
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
    $emailp = filter_var(trim($_POST["emailp"]), FILTER_SANITIZE_EMAIL);
    $adres = filter_var(trim($_POST["adres"]), FILTER_SANITIZE_EMAIL);
    $place = filter_var(trim($_POST["place"]), FILTER_SANITIZE_EMAIL);
    $phonenumber = filter_var(trim($_POST["phonenumber"]), FILTER_SANITIZE_EMAIL);
    $training = filter_var(trim($_POST["training"]), FILTER_SANITIZE_EMAIL);
    $niveau = filter_var(trim($_POST["niveau"]), FILTER_SANITIZE_EMAIL);
    $age = filter_var(trim($_POST["age"]), FILTER_SANITIZE_EMAIL);
    $message = filter_var($_POST["message"], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);


    // If non required fields are empty
    if ( empty($training) ){
        $training = "Kies gewenste training.";
    }

    if ( empty($niveau) ){
        $niveau = "Selecteer niveau.";
    }

    if ( empty($age) ){
        $age = "Geen leeftijd aangegeven.";
    }


    // Headers
    $headers = 'From: '.$fname.' <'.$email.'>' . "\r\n";
    $headers .= 'Reply-To: '.$email.'' . "\r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion();
        


    // Subject
    $subject = "Nieuwe aanmelding via contactformulier";

    // Build Message
    $email_content = "Voornaam: $fname\n";
    $email_content .= "Achternaam: $lname\n";
    $email_content .= "Email: $email\n";
    $email_content .= "Email ouders/verzorgers: $emailp\n\n";
    $email_content .= "Adres: $adres\n\n";
    $email_content .= "Woonplaats: $place\n\n";
    $email_content .= "Telefoonnummer: $phonenumber\n\n";
    $email_content .= "Leeftijd: $age\n\n";
    $email_content .= "Training: $training\n\n";
    $email_content .= "Niveau: $niveau\n\n";
    $email_content .= "Bericht:\n$message\n\n\n";

// Check if sent
try {
    $sendmailResult = mail($recipient, $subject, $email_content, $headers);
    if( $sendmailResult === TRUE ) {
        returnAndExitAjaxResponse(
            constructAjaxResponseArray(
                TRUE
            )
        );
    }
else {
        returnAndExitAjaxResponse(
            constructAjaxResponseArray(
                FALSE,
                'ERROR_AT_PHPMAIL',
                array('error_information'=> error_get_last() )
            )
        );
    }
}
catch (Exception $_e) {
    returnAndExitAjaxResponse(
        constructAjaxResponseArray(
            TRUE,
            'ERROR_AT_PHPMAIL',
            array('error_message'=> $_e->getMessage())
        )
    );
}


/*
    Construct ajax response array
    Input: Result (bool), Message (optional), Data to be sent back in array
*/

function constructAjaxResponseArray ($_response, $_message = '', $_json = null) {
    $_responseArray = array();
    $_response = ( $_response === TRUE ) ? TRUE : FALSE;
    $_responseArray['response'] = $_response;
    if(isset($_message)) $_responseArray['message'] = $_message;
    if(isset($_json)) $_responseArray['json'] = $_json;

    return $_responseArray;
}

/*
    Returns in the Gframe ajax format.
    Input: data array processed by constructAjaxResponseArray ()
    Outputs as a html stream then exits.
*/

function returnAndExitAjaxResponse ($_ajaxResponse) {
    if(!$_ajaxResponse){
        $_ajaxResponse = array('response'=>false,'message'=>'Unknown error occurred.');
    }

    header("Content-Type: application/json; charset=utf-8");
    echo json_encode($_ajaxResponse);
    die();
}



// Function to get the client IP address
function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP'])) {
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    }
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
else if(isset($_SERVER['HTTP_X_FORWARDED'])) {
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    }
else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) {
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    }
else if(isset($_SERVER['HTTP_FORWARDED'])) {
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    }
else if(isset($_SERVER['REMOTE_ADDR'])) {
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    }
else {
        $ipaddress = 'UNKNOWN';
    }

    return $ipaddress;
}


?>
 
PHP hulp

PHP hulp

22/12/2024 06:34:58
 
- SanThe -

- SanThe -

23/01/2018 14:15:27
 
Thomas van den Heuvel

Thomas van den Heuvel

23/01/2018 16:00:13
Quote Anchor link
Bij BCC zie je wel waar het bericht oorspronkelijk naartoe ging ($recipient) toch? Lijkt mij niet zo handig als dit een intern/privé e-mailadres is.

Als dit geen probleem is ($recipient is een publiek/algemeen contactadres) dan is het toevoegen van een BCC-regel (een van de) de eenvoudigste oplossing(en) met een minimale impact op de rest van de code.

Anders kun je misschien beter een apart mailtje opstellen, eventueel met aanvullende tekst ("Wij hebben de volgende informatie van u ontvangen..." o.i.d.).
 
Lindsey Hermans

Lindsey Hermans

23/01/2018 18:23:57
Quote Anchor link
Bedankt voor de reacties. Ik ga proberen of ik er zo uitkom.
 
- Ariën  -
Beheerder

- Ariën -

23/01/2018 21:54:19
Quote Anchor link
BCC is Blind Carbon Copy. Niemand zal dan zien wie nog meer de e-mail zal krijgen.
het is wel verstandig om de mail dan als 'to:' te versturen naar je eigen, en niet naar de eerste van de lijst. Het zou jammer zijn/haar mailadres op straat ligt.

Onthoud ook dat de mails dan identiek zullen zijn. Voor een gepersonaliseerde mail (Beste dhr. / mevr. xxxx) is (B)CC niet geschikt. Dan moet je de mail per stuk verzenden.
Gewijzigd op 23/01/2018 22:02:22 door - Ariën -
 
Lindsey Hermans

Lindsey Hermans

24/01/2018 08:26:32
Quote Anchor link
Mocht ik wel een ander bericht per mail willen sturen. Bijv. Bedankt voor je aanmelding, we nemen zo snel mogelijk contact met je op, kan dat dan ook met dit php-script en automatisch naar iedere aanmelder individueel? Zo ja, wat moet ik daarvoor doen (toevoegen of maken?)
 
- Ariën  -
Beheerder

- Ariën -

24/01/2018 09:26:00
Quote Anchor link
Kijk eens naar Http://php.net/mail (Example #1)
Gewijzigd op 24/01/2018 09:28:04 door - Ariën -
 
Lindsey Hermans

Lindsey Hermans

24/01/2018 09:35:01
Quote Anchor link
Kan ik die codering toevoegen in mijn php bestand of moet ik een aparte php maken?
 
- Ariën  -
Beheerder

- Ariën -

24/01/2018 09:40:33
Quote Anchor link
Dat script bedoel je?
Dat kan je gewoon onder het andere mailscript van lijn 77 zetten.
 
Lindsey Hermans

Lindsey Hermans

24/01/2018 10:53:30
Quote Anchor link
Script idd. Ik ben nogal een leek ????
Ik ga er mee aan de slag! Thnx
 
- Ariën  -
Beheerder

- Ariën -

24/01/2018 13:01:29
Quote Anchor link
Hopelijk lukt het, geef anders even een gil.
 
Lindsey Hermans

Lindsey Hermans

30/01/2018 13:37:00
Quote Anchor link
BCC is gelukt! Super bedankt voor de hulp.
 



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.