Versio

Contact form veilig?

Overzicht Reageren

Wouter OOP

Wouter OOP

24/08/2009 12:53:00
Quote Anchor link
Hallo allemaal,

Ik heb een contact formulier dat niet beveiligd is, althans, dat is mij verteld.
Nou heb ik iets gevonden ctype_print, alleen het werkt bij mij niet.
Kan iemand mij misschien vertellen wat ik fout doe? Want \n\r kan er bij mij gewoon worden ingezet.


contact.php


<link rel="stylesheet" href="opmaak.css" type="text/css">

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
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    
    $mail_naar = 'blabla@gmail.com';
    $mail_onderwerp = 'Test mail';
    $mail_headers = 'From: test@gmail.com';
    $form_naam  = strip_tags ($_POST['naam']);
    $form_email = strip_tags ($_POST['email']);
    $form_vraag = strip_tags ($_POST['vraag']);
    
    // Hier staat alles wat per mail verzonden moet worden.
    $mail_content = "Naam: $form_naam \nEmail: $form_email \n\nVraag: $form_vraag";
    
    // Checkt of alle velden juist zijn ingevuld.
    $error_msg='';
    if(!ctype_print($form_naam)){
        $error_msg='<li>U heeft geen geldige naam opgegeven.</li>';
    }

    if(!ereg('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$',$form_email)){
        $error_msg.='<li>U heeft geen geldig e-mailadres opgegeven.</li>';
    }

    if(!ctype_print($form_vraag)){
        $error_msg.='<li>U heeft geen vraag gesteld.</li>';
    }

    if(strlen($error_msg)>0){
        echo '<u>Om de volgende reden kan uw vraag helaas niet worden verwerkt:</u><br><br>';
        echo $error_msg;
        echo '<br><br>Klik op <a href="javascript:history.back(1)">terug</a> en vul alle velden in.';
    }

    else{
        mail($mail_naar,$mail_onderwerp,$mail_content,$mail_headers);
        echo 'Uw vraag is succesvol verzonden, wij zullen deze zo spoedig mogelijk beantwoorden.';
    }
    
}

else{
    ?>

<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF'] ?>
" method="post">
<fieldset>
<legend>Met dit formulier kunt u ons een aanvraag sturen.</legend><br>
<label class="left">Uw naam</label> <input id="naam" type="text" name="naam"><br>
<label class="left">Uw e-mailadres</label> <input id="email" type="text" name="email"><br>
<label class="left">Uw vraag</label> <textarea name="vraag"></textarea><br>
<input type="submit" name="submit" class="submit" value="Vraag verzenden "><br><br>
</fieldset>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>



Dit werkt overigens wel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$print
= "asdf\n\n";

if(!ctype_print($print)){
    echo $print.' is geen naam';
}

else{
    echo $print.' is een naam';
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Wouter OOP
 
PHP hulp

PHP hulp

24/05/2012 06:39:30
Gesponsorde koppelingen:
 
Emmanuel Delay

Emmanuel Delay

24/08/2009 13:31:00
Quote Anchor link
strip_tags() is een goed begin, maar niet voldoende.
Wat je vooral nodig hebt, is mysql_real_escape_string()

Wat de \n betreft, je kan bij het uitlezen nl2br() gebruiken, dat zet \n om in <br/>
 
Wouter OOP

Wouter OOP

24/08/2009 14:15:00
Quote Anchor link
Dat is toch alleen bij het gebruik van een mysql database?
En dan, kan ik dat met strip_tags gebruiken?

Maar nou vraag ik me nog steeds af waarom ctype_print niet werkt bij mij :), dat is toch ook een functie die ik hiervoor kan gebruiken?
 
Emmanuel Delay

Emmanuel Delay

24/08/2009 14:43:00
Quote Anchor link
Ah ja, je mailt alles rechtstreeks, zonder database; Iets te vlug gereageerd.
 
Wouter OOP

Wouter OOP

24/08/2009 15:14:00
Quote Anchor link
Oke ;), kan iemand mij alsnog te hulp schieten... Ik kom er maar niet uit waarom ctype_print niet werkt
 



Overzicht Reageren

Get Adobe Flash player