Contact form veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 = '[email protected]';
    $mail_onderwerp = 'Test mail';
    $mail_headers = 'From: [email protected]';
    $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

26/04/2024 09:09:19
 
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

 
 

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.