veilig contact script?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Gezocht: Ervaren VB6 developer met C# ambitie!

Bedrijfsomschrijving Dit bedrijf is een vooraanstaande softwareleverancier die gespecialiseerd is in het ontwikkelen van software pakketten voor autoschade herstel bedrijven. De software wordt gebruikt door meer dan de helft van alle autoschade herstel bedrijven in Nederland. Het team van professionals is op zoek naar getalenteerde collega developers die hun vaardigheden willen inzetten om het bedrijf te laten groeien. Functieomschrijving Voor dit bedrijf zoek ik een ervaren VB6 / VB.NET developer met interesse om op termijn verder te gaan in C#. In deze functie ben je verantwoordelijk voor het onderhouden van de bestaande softwarepakketten. Een deel van de code is nog

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Front End Ontwikkelaar (React)

In het kort Als front end developer ga je aan de slag met maatwerkprojecten voor onze klanten. Denk bijvoorbeeld aan het toevoegen van een machine aan een database of het corrigeren van formulieren voor ingestuurde orders. Voorbeeld van zo’n project is Smart Link. De projecten waar je op ingezet kunt worden liggen binnen het technische domein waar jij als front end developer een grote rol speelt om samen met je back end collega’s de juiste oplossingen te leveren. please note that this particular role requires fluent Dutch language skills. Dit vind je leuk om te doen Het omzetten van designs

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Medior .NET Ontwikkelaar

In het kort Als .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging graag met

Bekijk vacature »

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

Full Stack Developer

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail; Verantwoordelijk voor de front-end werkzaamheden; Naast de front-end werk je ook aan de backend. Hier ga je werken Als Full Stack Developer komt je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development

Bekijk vacature »

Front-end developer (Vue.js) gezocht!

Functie Als Front-end developer is het jouw doel om efficiënte en effectieve frontend code te ontwerpen, ontwikkelen en onderhouden die goed aansluit bij de functionele behoefte vanuit de klant. Je zorgt voor optimale SEO-resultaten, sitespeed en frontend security. You build it, you run it, you own it! Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »
Tom Van Velthoven

Tom Van Velthoven

17/11/2015 20:50:10
Quote Anchor link
Hoi, heb een contact validation script gevonden en verbeterd, maar wilde eigenlijk wel eens weten of dit ook veilig is en of verouderd?
graag feedback.
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
<?php
/* Set e-mail recipient */
$myemail  = "[email protected]";

/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Uw naam is niet ingevuld");
$subject  = check_input($_POST['subject'], "Er is geen onderwerp ingevuld");
$email    = check_input($_POST['email'], "Er is geen email adres ingeuld");
$comments = check_input($_POST['comments'], "Er is geen tekst in het veld uw bericht ingevuld");

/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{

    show_error("E-mailadres is niet geldig");
}




/* Let's prepare the message for the e-mail */
$message = "Hallo!

Er werd een bericht gestuurd via de website www.mijnsite.be:

Name: $yourname
E-mail: $email

Comments:
$comments

End of message
"
;

/* Send the message using mail() function */
mail($myemail, $subject, $message);

/* Redirect visitor to the thank you page */
header('Location: thanks.html');
exit();

/* Functions we used */
function check_input($data, $problem='')
{

    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {

        show_error($problem);
    }

    return $data;
}

function
show_error($myError)
{

?>

    <html>
    <body>

    <b>Er werden fouten vastgesteld bij het invullen van het contactformulier. Klik <a href="/contacteerons.php">hier</a> om terug te gaan en de verplichte velden in te vullen:</b><br />
    <?php echo $myError; ?>

    </body>
    </html>
<?php
exit();
}

?>

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

PHP hulp

15/01/2025 10:37:16
 
Ben van Velzen

Ben van Velzen

17/11/2015 21:49:27
Quote Anchor link
Alleen al de functie check_input vind ik gek. Waarom wordt daar stripslashes() of htmlspecialchars() gedaan? Je verminkt er alleen de gegevens mee, gezien het in een plaintext e-mail verdwijnt.
 
Tom Van Velthoven

Tom Van Velthoven

17/11/2015 23:31:47
Quote Anchor link
Ok. Wat stel jij voor?
Nog meer opmerkingen, want je reactie komt over alsof het een slecht script is?
Helaas ben ik nog in een leerfase. Vandaar dat ik een reactie wilde vragen aan enkele ervaren php users.?
 
Ben van Velzen

Ben van Velzen

17/11/2015 23:40:54
Quote Anchor link
Ik snap de logica niet helemaal: je hebt een script die je vanaf een andere pagina laat POSTen, maar als er fouten zijn heb je geen mogelijkheid om terug te gaan? Ik zou het form en het verzenden in één script verwerken.
Verder zou ik eens kijken naar de ingebouwde validatie mogelijkheden van PHP: http://php.net/manual/en/filter.filters.validate.php, de e-mail regex slaat kortgezegd nergens op. Ook ben ik geen fan van de string syntax die je gebruikt. Variabelen kun je beter buiten quotes houden om onvoorspelbaar gedrag te voorkomen.
 
Obelix Idefix

Obelix Idefix

18/11/2015 10:13:06
Quote Anchor link
Volgens mij missen bij de mail-functie de (juiste) headers.
Advies is doorgaans om niet de mailfunctie te gebruiken, maar een class als phpmailer of swiftmailer.

Ik zou, zoals Ben ook aangeeft, het in 1 document onderbrengen. o.a. voordeel: je kunt de velden die ingevuld zijn, van een waarde voorzien, zodat de gebruiker niet alles opnieuw hoeft in te vullen. Velden die niet juist zijn ingevuld (volgens jouw controles) kun je voorzien van bv. een rood sterretje, zodat te zien is wat de gebruiker moet aanpassen.
Dat lukt volgens mij met je huidige opzet niet.
 
Thomas van den Heuvel

Thomas van den Heuvel

18/11/2015 11:27:36
Quote Anchor link
De functie "check_input" is naar mijn mening ongeschikt om de formulier invoer te controleren. Het controleert geen specifiek input type (naam of e-mail) maar kijkt enkel of de invoer niet leeg is en "escaped input" middels stripslashes() en htmlspecialchars(). Het escapen van input is bijna altijd een slecht idee, dit maakt stripslashes() en htmlspecialchars() tot redelijk zinloze bezweringen.

Als je dan toch ergens escaping wilt gebruiken (bijvoorbeeld als je een HTML e-mailbericht verstuurt), doe dit dan in $message, daar ben je bezig met output (je mailbody) en daar is dus output escaping op zijn plaats.

Indien er een probleem is wordt show_error() aangeroepn. Deze functie drukt een compleet (en leeg) HTML document af en geeft daarbij precies één foutmelding weer... Waarom toon je het formulier niet opnieuw waarbij je bij elk veld aangeeft wat er fout is (samen met de eerder ingetypte invoer) zodat de invuller dit direct kan aanpassen?

De reguliere expressie voor het e-mailadres klopt niet, deze accepteert een string waarin een e-mailadres voorkomt, je zult in ieder geval de meta-karakters voor het begin en het einde van je "subject" (een e-mailadres) moeten toevoegen, dit zijn respectievelijk ^ en $.

Vervolgens, een reguliere expressie retourneert het cijfer 1 indien de match is geslaagd. In alle andere gevallen retourneert deze iets anders (0 = geen match, false = foutmelding). De enige correcte manier om vast te stellen of er een match is dus door te vergelijken met het cijfer 1 (=== 1). En dus ook, de enige manier om vast te stellen dat er géén match is is door middel van !== 1.

Dan dekt deze reguliere expressie waarschijnlijk niet alle toegestane e-mailadressen, dus je kunt wellicht beter de filter_var() functie gebruiken.

En ja (zie bovenstaande reacties), zorg ervoor dat je formulier gebruiksvriendelijk(er) is.
 
Tom Van Velthoven

Tom Van Velthoven

19/11/2015 20:54:34
Quote Anchor link
Hallo allen, alvast bedankt voor jullie reacties. Je zal vast gemerkt hebben dat ik maar wat sukkel met scripting in php en dat ik met wat free scripts aan het uitzoeken ben geweest. Jullie hebben mij terecht aangegeven dat ik best op zoek ga naar een beter script.
Daarom ben ik op zoek gegaan naar andere voorbeelden en ben ik tot dit eindresultaat gekomen. Kunnen jullie aangeven of dit beter is? ivm PHPMailer, hier snap ik dus niets van hé :(

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


// importeer de functions file
require_once('contactfunctions.php');
?>

<!doctype html>
<html lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />



<title>mijn nieuwe website</title>


<link rel="stylesheet" href="css/style-contact.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/site2015v2/style2015.css" type="text/css" />
<link rel="stylesheet" href="/site2015v2/contact.css" type="text/css" />
<link rel="stylesheet" href="/site2015v2/fonts/font-caviardreams.css" type="text/css" charset="utf-8" />



</head>



<body itemscope itemtype="http://schema.org/WebPage">



<table id="pagina"><tr><td id='td_pagina_top'>

<div id="top">



<div class="holder">
<a href='/' title='geheim'><img src="/site2015v2/images/logo_2015.jpg" id="logo_top" title='logo' width='980' height='200'/></a>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include 'nav_hoofdmenu.php';?>


</div>



</div>


</td></tr><tr><td class='inhoud_bg_grijs'>
<div id="content">
<div class="holder">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include 'nav_submenu.php';?>

</div>
<div id='inhoud_tekst'>
<h1>Contacteer ons:</h1>



<p> In het hier onderstaande contact formulier kunt u uw vragen of opmerkingen invoeren en naar ons mailen door op de knop Verzenden te drukken. We zullen zo snel mogelijk proberen te antwoorden op u vraag/opmerking.</p>


<div id="contactformulier">

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
<?php
            if(isset($_POST['submit'])){
                // haal de gegevens binnen voor de email
                $naam       =   $_POST['naam'];
                $email      =    $_POST['email'];
                $telefoon   =    $_POST['tel'];
                $bericht    =     $_POST['bericht'];
                $spam       =     $_POST['spam'];
                $uitkomst   =   $_POST['uitkomst'];

                // spamcheck gegevens
                $hidden     =    $_POST['hid1'];
                $hidden2    =     $_POST['hid2'];

                // eindresultaat : zal bepalen of de mail wordt verzonden of niet
                $resultaat = true;

                // foutmelding array
                // hier komen de foutmeldingen in

                $foutmelding['naamleeg']    = 0;
                $foutmelding['emailleeg']   = 0;
                $foutmelding['emailfout']   = 0;
                $foutmelding['berichtleeg'] = 0;
                $foutmelding['spamleeg']    = 0;
                $foutmelding['spamfout']    = 0;
                $foutmelding['verzendenfout']    = 0;

                // controleren of de hidden fields leeg zijn
                // deze moeten leeg zijn

                if(empty($hidden1) && empty($hidden2)){

                    // controleren of de naam is ingevuld
                    if(checkLength($naam)){
                         // foutmelding geen naam ingevuld
                        $foutmelding['naamleeg'] = 1;
                        $resultaat = false;
                    }


                    // controleren of de email is ingevuld
                    if(checkLength($email)){
                        // foutmelding geen geldig emailadres
                        $foutmelding['emailleeg'] = 1;
                        $resultaat = false;
                    }

                    else{
                        // controleren op geldigheid van emailadres
                        if(checkEmail($email)){
                            // foutmelding geen geldig emailadres
                            $foutmelding['emailfout'] = 1;
                            $resultaat = false;
                        }
                    }


                    // controleren of het bericht is ingevuld
                    if(checkLength($bericht)){
                        // foutmelding te kort bericht
                        $foutmelding['berichtleeg'] = 1;
                        $resultaat = false;
                    }


                    // controleren of de spamcontrole is ingevuld
                    if(checkLength($spam)){
                         // foutmelding geen spamresultaat ingevuld
                        $foutmelding['spamleeg'] = 1;
                        $resultaat = false;
                    }

                    else{
                        if(checkSpam($spam,$uitkomst)){
                            // foutmelding foutief spamresultaat
                            $foutmelding['spamfout'] = 1;
                            $resultaat = false;
                        }
                    }
                }

                else{
                    // foutmelding van ingevulde spamvelden
                    $resultaat = false;
                }

                if($resultaat){
                    // controleren of de email verstuurt is
                    if(verstuurMail($_POST)){
                        $_POST = null;
                    }

                    // de email is niet verstuurd
                    else{
                        $foutmelding['verzendenfout'] = 1;
                        $resultaat = false;
                    }
                }
            }



            ?>

<!--
Verborgen veld : afgehandeld
-->
<div id="succes"
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($resultaat == false){ echo 'class="hidden"';}?>
>
<p>Uw bericht is succesvol verstuurd!</p>
</div>

<!--
Einde verborgen velden
-->

<!--
Hier begint het formulier
-->

</form>
<div id="form">
<form method="post" action="">
<table>
<tr>
<td valign="top">
<label for="naam"><abbr lang="nl" title="Vul uw naam in aub">Naam:</abbr> *</label>
</td>
<td>
<input type="text" name="naam" id="naam" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['naam']; ?>
" />
<p class="fout
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($foutmelding['naamleeg'] == 0) echo 'hidden';?>
" id="naamleeg">Naam is verplicht!</p>
</td>
</tr>
<tr>
<td valign="top">
<label for="email"><abbr lang="nl" title="Vul een geldig emailadres in. Bijvoorbeeld : [email protected]">Email</abbr>: *</label>
</td>
<td>
<input type="text" name="email" id="email" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['email']; ?>
"/>
<p class="fout
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($foutmelding['emailleeg'] == 0) echo 'hidden';?>
" id="emailleeg">Email is verplicht!</p>
<p class="fout
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($foutmelding['emailfout'] == 0) echo 'hidden';?>
" id="emailfout">Geldige email is verplicht!</p>
</td>
</tr>

<tr>
<td valign="top">
<label for="bericht"><abbr lang="nl" title="Vul uw aanvraag hier in aub">Bericht:</abbr> *</label>
</td>
<td>
<textarea name="bericht" id="bericht" rows="6" cols="38">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_POST['bericht']; ?>
</textarea>
<p class="fout
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($foutmelding['berichtleeg'] == 0) echo 'hidden';?>
" id="berichtleeg">Bericht is verplicht!</p>
</td>
</tr>
<tr>
<td valign="top">
<label for="spam"><abbr lang="nl" title="Dit is een test om te controleren of de gebruiker van dit formulier wel degelijk een mens is.">Spamcontrole</abbr>: *</label>
</td>
<td valign="top">
<span id="spamvraag">
Hoeveel is
<span id="nummer_1">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SESSION['random_cijfer_1'];?>

</span>
plus (+)
<span id="nummer_2">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SESSION['random_cijfer_2'];?>

</span> :
</span>
<input type="text" name="spam" id="spam" class="spamtext" />
<p class="fout
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($foutmelding['spamleeg'] == 0) echo 'hidden';?>
" id="spamleeg">Spam-uitkomst is verplicht!</p>
<p class="fout
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($foutmelding['spamfout'] == 0) echo 'hidden';?>
" id="spamfout">Dit is niet de juiste uitkomst!</p>
</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top">
<p class="notice">Velden aangeduid met een asterisk (*) zijn verplicht in te vullen</p>
<div id="screenreaders" class="hidden">
<p>
Onderstaande velden NIET invullen indien u geen spambot bent!
Als u ze invult nemen wij aan dat u een spambot bent en zal het formulier niet verwerkt worden.
</p>
<input type="hidden" id="hid1" name="hid1" value=""/>
<input type="text" id="hid2" name="hid2" value=""/>
<input type="hidden" id="uitkomst" name="uitkomst" readonly="readonly" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo md5($_SESSION['test_uitkomst']); ?>
" />
</div>
</td>
</tr>
<tr>
<td valign="top">

</td>
<td valign="top">
<div id="foutdiv">
</div>
<input type="submit" value="Verzend bericht" class="button small orange" id="submit" name="submit"&nbsp;/>
<input type="reset" value="Leeg maken" class="button small grey"/> <span id="loading"> Even geduld aub.. </span>
<p class="fout
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($foutmelding['vezendenfout'] == 0) echo 'hidden';?>
" id="verzendenfout">Er was een fout bij het versturen van de email!</p>
</td>
</tr>
</table>
</form>
</div>



<!--
Einde formulier
-->
</td></tr>
</div></div>

<tr><td class='td_valign_bottom_black'>
<div class="holder">
<table id="bottom"><tr>
<td class='width_430'><h5>Adres</h5>
<h3>naam<br/>


adres<br/>


2960 Sint-Lenaarts </h3>


</td>
<td class='width_430'><h5>Secretariaat</h5>
<h3>naam<br/>


adres<br/>


2960 Sint-Lenaarts </h3>


</td>
<td class='width_140'><h5>Contacteer ons</h5>
<h3> Tel 0000000<br/>
<br/>
<a href="mailto:[email protected]"class="hyperlink">info&#64;mijnsite.be</a></h3>
</td>

</tr>
</table>

</div>
</td></tr>

<tr><td id='td_page_footer' class='bottom_black'>

<span id='copyright'> &nbsp; &copy; By naam Sint-Lenaarts</a></span>

</td></tr>

</table>






<script src='/js/jquery-latest.min.js' type='text/javascript'></script><script>(function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).bind("ready",f)})})(jQuery,document)</script>

</body>
</html>

contactconfig.php
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
<?php
/*
 * Configuratie van de email settings
 */

// timezone en taalinstelling

date_default_timezone_set('Europe/Brussels');
setlocale(LC_TIME, 'NL_nl');

// het emailadres naar waar het contactformulier moet verzonden worden
define("ONTVANGER","[email protected]");

// het onderwerp van de email
define("ONDERWERP","Contact via uw website");

// html emails(true) of niet(false)
define("HTMLEMAILS",true);

// Geef de maximum waarde voor de bereking van de spamuitkomst
define("MAX_CIJFER",8);

// Geef de minimum waarde voor de bereking van de spamuitkomst
define("MIN_CIJFER",2);


/*
 *   Configuratie van de spamsom
 */

 // als de sessie variabelen nog niet gezet zijn
 // genereer dan nieuwe variabelen

 $_SESSION['test_uitkomst'] = null;
 if($_SESSION['test_uitkomst'] == null){

    // genereer het eerste random cijfer
    // en zet het in de session

    $random_cijfer_1 = intval(rand(MIN_CIJFER,MAX_CIJFER));
    $_SESSION['random_cijfer_1'] = $random_cijfer_1;

    // genereer het tweede random cijfer
    // en zet het in de session

    $random_cijfer_2 = intval(rand(MIN_CIJFER,MAX_CIJFER));
    $_SESSION['random_cijfer_2'] = $random_cijfer_2;

    // bereken de uitkomst
    // en zet het in de session

    $_SESSION['test_uitkomst'] = bcadd($random_cijfer_1,$random_cijfer_2);
 }

?>


contactfunctions.php
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
<?php
/**
    Dit script is beperkt in gebruik. Het mag enkel gebruikt worden op
    websites zonder commerciele doeleinden.

    Licenties : http://creativecommons.org/licenses/by-nc/3.0/
    Auteur : Sam Vloeberghs - http://www.samvloeberghs.be
*/


// start een sessie of zet ze voort voor de spamcheck

session_start();

// include de config
require_once('contactconfig.php');
    
/*
 *  De functie controleert een gegeven email op geldigheid
 *  @return bool
 */

function checkEmail($email){
    // definieer het patroon voor geldige emails
    $patroon = "/^[A-z0-9\._-]+". "@". "[A-z0-9][A-z0-9-]*". "(\.[A-z0-9_-]+)*". "\.([A-z]{2,6})$/";

    // vergelijk het patroon met de email
    // bij geldige overéénkomst return true
    // bij ongeldige overéénkomst return false

    return preg_match($patroon, $email) ? FALSE : TRUE;
}


/*
 *  Deze functie controleert een gegeven waarde op lengte
 *  @return bool
 */

function checkLength($waarde){
    // als de gegeven waarde leeg is
    // return false

    if(empty($waarde)){
        return true;
    }

    // als de gegeven waarde niet leeg is
    // return true

    else{
        return false;
    }
}


/*
 *  Deze functie controleert een gegeven waarde op lengte
 *  @return bool
 */

function checkSpam($spam,$uitkomst){
    // als het gegeven spamresultaat niet overéénkom met de uitkomst
    // return false;

    if(md5($spam) != $uitkomst){
        return true;
    }

     // als het gegeven spamresultaat overéénkom met de uitkomst
    // return true;

    else{
        return false;
    }
}


/*
 *  Deze functie switched tussen de 2 types van email ( html en plaintext )
 *  @return bool
 */

function verstuurMail($waarden){

    // resultaat van functie
    $resultaat = false;

    // als de configuratie html emails toelaat
    if(HTMLEMAILS){
        $resultaat = sendHtmlEmail($waarden);
    }

    // geen html emails toegelaten
    else{
        $resultaat = sendPlainTextEmail($waarden);
    }


    // return resultaat
    return $resultaat;
    
}


/*
 *  Deze functie verstuurt de HTML email
 *  @return bool
 */

function sendHtmlEmail($waarden){

    // time stamp
    $timestamp = date("\o\p j F Y \o\m G\ui");

    // stel het emailbericht samen
    $message = "
    <html>
    <head>
      <title>"
.ONDERWERP."</title>
    </head>
    <body>
      <p style='font-size:0.9em;border-bottom:1px solid #000;padding-bottom:10px;'></p>
      <table cellpadding='0' cellspacing='0'>
        <tr>
          <td style='font-weight:bold;padding:0 10px 3px 0;'>Naam:</td>
          <td>"
.$waarden['naam']."</td>
        </tr>
        <tr>
          <td style='font-weight:bold;padding:0 10px 3px 0;'>Email:</td>
          <td>"
.$waarden['email']."</td>
        </tr>
  
        <tr>
          <td colspan='2'>&nbsp;</td>
        </tr>
        <tr>
          <td colspan='2'>"
.$waarden['bericht']."</td>
        </tr>
      </table>
      <p style='font-size:0.9em;border-top:1px solid #000;padding-top:10px;'>Deze email werd verstuurd $timestamp .</p>
    </body>
    </html>
    "
;

    // To send HTML mail, the Content-type header must be set
    $headers  = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";

    // zet de headers
    $headers .=  "From: " .$waarden['naam']. "<".$waarden['email'].">"."\n";
    $headers .=  "Reply-To: " .$waarden['naam']. "<".$waarden['email'].">";

    // Mail it
    return mail(ONTVANGER, ONDERWERP, $message, $headers);
}


/*
 *  Deze functie verstuurt de PlainText email
 *  @return bool
 */

function sendPlainTextEmail($waarden){

    // timestamp
    $timestamp = date("\o\p j F Y \o\m G\ui");
    
    // stel het emailbericht samen
    $message .= ONDERWERP."\r\n\r\n";
    $message .= "Naam: ".$waarden['naam']." \r\n";
    $message .= "Email: ".$waarden['email']." \r\n";
    $message .= "Telefoon: ".$waarden['tel']." \r\n\r\n";
    $message .= $waarden['bericht']." \r\n\r\n";
    $message .= "Deze email werd verstuurd $timestap ";

    // zet de headers
    $headers =  "From: " .$waarden['naam']. "<".$waarden['email'].">"."\n";
    $headers .=  "Reply-To: " .$waarden['naam']. "<".$waarden['email'].">";

    // Mail it
    return mail(ONTVANGER, ONDERWERP, $message, $headers);
}

?>


Toevoeging op 19/11/2015 21:02:01:

Als ok is, zou ik dan kunnen aanpassen dat wanneer de email is verstuurd ik een nieuwe document krijg met de tekst 'Uw bericht is succesvol verstuurd' U zal binnen de 3 sec terug naar de home page gaan?
Wat is de code hiervoor?
 



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.