Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Formulier met CAPTCHA

Pagina: 1
Acties:
  • 488 views

Verwijderd

Topicstarter
Hallo,

Ik heb dus volgend formulier :

HTML:
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
<form id="form1" method="post">
                        <fieldset>
                            <p id="first">velden met een (*) zijn verplicht</p>
                                <div>
                                    <label for="naam">Naam (*)</label>
                                    <input  type="text" name="name" id="name" maxlength="50" size="30">
                                    <p></p>
                                </div>
                                <div>
                                    <label for="email">Email (*)</label>
                                    <input  type="text" name="email" id="email" maxlength="80" size="30">
                                    <p></p>
                                </div>
                                <div>
                                    <label for="date_of_birth">Date of Birth (*)</label>
                                    <input id="date_of_birth" name="date_of_birth" type="text" size="20">
                                    <p></p>
                                </div>
                                <div>
                                    <label for="sex">Sex (*)</label>
                                    <input type="radio" name="sex" value="male" id="male" /> Male
                                    <input type="radio" name="sex" value="female" id="female"/> Female
                                </div>
                                <div>
                                    <label for="subject">Subject (*)</label>
                                    <select name="subject">
                                            <option id="google"value="Google">Vraag omtrend de site</option>
                                            <option id="bing" value="Bing">Vraag omtrend het gebouw</option>
                                            <option id="yahoo" value="Yahoo">Vraag omtrend het gerecht</option>
                                            <option id="yahoo" value="Yahoo">Andere vraag</option>
                                    </select>
                                </div>
                                    <label for="message">Message (*)</label>
                                    <textarea  name="message" id="message" maxlength="1000" cols="28" rows="6"></textarea>
                                    <p></p>
                                <div>
                                </div>
                                    <input type="submit" id="verzendBtn" value="verzenden">
                                    <input type="reset" id="wisBtn" value="wissen">
                        </fieldset>
                        </form>


En deze form valideer ik met jQuery :

JavaScript:
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
$("#form1").validate({
        rules: {
            name: {
                required:true,
                validateName: true
            },
            email: {
                required:true,
                validateEmail: true
            },
            date_of_birth: {
                required:false,
                validateDateOfBirth: true
            },
            message: {
                required:true,
                }
            },
            
        errorPlacement: function(error, element) {
                        error.appendTo( element.next() );
                    },
        submitHandler:function(){
            $.ajax({  
            type: "POST",  
            url: "mail.php",  
            data: $("#form1").serializeArray(),  
            success: function(){  
                $("article#gebouw")
                    .addClass("center")
                    .html("Uw gegevens werden succesvol verstuurd! <br />Wij proberen dit zo snel mogelijk te bekijken");  
                 }
            });


Zoals je ziet wordt het PHP-script mail.php opgeroepen. Wat er nu nog moet gebeuren is dat er CAPTCHA aan toegevoegd wordt. Ik zou graag gebruik maken van deze: http://www.hardcode.nl/su...le-php-captcha-script.htm

Voor het tonen van de CAPTCHA gebruik ik deze code in de HTML:
<img src="captcha.php" />
Allemaal niet moeilijk maar nu wil ik dat de CAPTCHA ook gevalideert wordt. Zoals je ziet op de link moet er gebruik gemaakt worden van dit:

PHP:
1
2
3
4
5
6
7
8
9
10
<?php
    session_start();
    if (md5($_POST['norobot']) == $_SESSION['randomnr2'])    { 
        // here you  place code to be executed if the captcha test passes
            echo "Hey great , it appears you are not a robot";
    }    else {  
        // here you  place code to be executed if the captcha test fails
            echo "you're a very naughty robot!";
    }
?> 


maar ik weet niet hoe ik dit moet implementeren in mijn mail.php :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
     
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

        // More headers
        $headers .= 'From: <webmaster@email.be>' . "\r\n";

        $bericht = "Contactformulier:\n"."<br/>"."<br/>".

             "\n"."<strong>Gegevens: </strong>"."<br/>"
            ."Naam: ".$_POST["name"]. "<br/>"
            ."Email: ".$_POST["email"]. "<br/>" 
            ."Date of Birth: ".$_POST["date_of_birth"]. "<br/>"
            ."Sex: ".$_POST["sex"]. "<br/>"
            ."Subject: ".$_POST["subject"]. "<br/>"
            ."Message: ".$_POST["message"]. "<br/>";

mail("hierkomtmailadres", "Contactformulier", $bericht, $headers);
        

?> 


Ik heb namelijk nog nooit PHP gehad .....
Kan iemand mij verder helpen?

[ Voor 0% gewijzigd door BtM909 op 15-04-2012 02:07 ]


Verwijderd

Mooi moment om te beginnen met PHP dan, toch?
Zeg eens wat je al geprobeerd hebt.

  • ath92
  • Registratie: Augustus 2007
  • Laatst online: 03-05 10:34
Waar je sowieso rekening mee moet houden is of zo'n catchpa überhaupt zin heeft. Vaak voldoet een input veld met "display: hidden" al om de bots om de tuin te leiden, aangezien die zo'n veld wel invullen en een normaal mens niet.

Een sterkere beveiliging heeft in sommige gevallen nut, maar in meer gevallen absoluut niet.

Verwijderd

Topicstarter
Het is een opdracht van school en er moet gewerkt worden met CAPTCHA dus ja ..
Wat ik al geprobeerd heb is:

session_start();
if (md5($_POST['norobot']) == $_SESSION['randomnr2']) {
// here you place code to be executed if the captcha test passes
echo "Hey great , it appears you are not a robot";
} else {
// here you place code to be executed if the captcha test fails
echo "you're a very naughty robot!";
}

en bij het eerste zet ik mijn mail code en dan else ...

Verwijderd

Nee, dat is letterlijk de code van het voorbeeld.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Oftewel, voordat je het nog een keer probeert, lees even goed de volgende drie topics door :)

Devschuur® Beleid
Webdesign, Markup & Clientside Scripting Beleid
Waar hoort mijn topic?

Daarnaast is het niet de bedoeling (maar dat lees je vast wel in een van bovenstaande topics) dat je maar alle code hier neerplempt (of het nou voor een schoolopdracht is of niet :)0

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1

Dit topic is gesloten.