Mailform toevoegingen als anti spam script en foutmeldingen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stef

stef

04/03/2008 14:47:00
Quote Anchor link
oke,

Hoi,

Ik heb een vraagje over mijn eigengemaakte mailform (Ben er trots op dus nie afkraken :P)
Ben nog niet zo bekend met PHP dus een paar waarschijnlijk simpele vraagjes:

1 Hoe kan ik per veld een foutmelding geven? (dus: Ongeldige e-mail adres, u bent uw naam vergeten, u moet wel een bericht invoeren, etc.

2 Hoe kan ik er voor zorgen dat deze foutmelding in de zelfde html style als de form komt?
(nu komt ie op een blanco pagina ergens links bovenin)

3 Hoe kan ik een antispam script plaatsen en welke?

4 Hoe kan ik mijn e-mail " hidden " krijgen.

En voor de mensen die nog niet denken... jeeeeeeetje wat een vragen....

5 Kan iemand nog andere foutjes vinden in dit script?
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
<?php

/* instellingen */

$jouw_adres = "[email protected]";
$onderwerp = "Contact form";

/* einde instellingen */

if($_REQUEST['verzend'])
{

    $naam = $_REQUEST['naam'];
    $email = $_REQUEST['email'];
    $opmerkingen = $_REQUEST['opmerkingen'];

    $browser = $HTTP_USER_AGENT;
    $ip = $REMOTE_ADDR;

    /* controleer emailadres */
    $error = false;
    if ((!ereg(".+\@.+\..+", $email)) || (!ereg("^[[email protected]]+$", $email))){
    $error .= "U heeft geen of een ongeldig E-mail adres Ingevoerd!<br>";}

    /* als er problemen zijn met het emailadres */
    if($error)
    {

        echo $error;
    }

    else
    {
        /* als er geen fouten zijn */
        /* maak de boodschap */

        $boodschap = "reactie met je mailform:\n";
        $boodschap .= "naam: $naam\n";
        $boodschap .= "email: $email\n";
        $boodschap .= "opmerkingen: $opmerkingen\n";
        $boodschap .= "-----------------------------\n";
        $boodschap .= "browser: $browser\n";
        $boodschap .= "IP adres: $ip\n";

        /* verstuur de mail met de PHP functie 'mail()' */
        mail($jouw_adres,"$onderwerp","$boodschap","From: $naam <$email>" . "Reply-To: $naam <$email>");

        echo "Bedankt voor uw bericht!";
    }
}

else {
    /* als er niks naar het script gepost wordt laat dan het formulier zijn */
    ?>

<html>
<head><title></title>

<style type="text/css">
<!--
.style2 {
    font-size: 16px
}
.style4 {
    font-size: 14px;
    font-family: Arial, Helvetica, sans-serif;
}
.style5 {
    font-size: 12px;
    color: #FFFFFF;
}
.style6 {
    font-size: 16px;
    font-family: Arial, Helvetica, sans-serif;
}
.style7 {font-family: "Times New Roman", Times, serif}
.style8 {
    font-size: 16px;
    font-family: "Times New Roman", Times, serif;
    color: #FFFFFF;
}
.style9 {
    color: #FFFFFF;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
}
.style13 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: none;
    color: #000000;
}
a:active {
    text-decoration: none;
}

h1 {
    font-size: 12px;
    color: #000000;
}
.style15 {font-size: 14px; }
-->
</style>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body>
<pre>
<form action="<?php echo $PHP_SELF; ?>" method="POST"><table width="312" border="0" align="center" bordercolor="#FFFFFF" bgcolor="#BF0000">
<tr><th height="104" colspan="2" bgcolor="#FFFFFF" scope="col"><div align="left"><img src="../Logo/logobanner.png" width="100" height="79"></div></th><th height="104" bgcolor="#FFFFFF" scope="col"><span class="style13">Voor vragen en opmerking vul dan dit formulier in en u krijgt dan zo spoedig mogelijk een reactie!</span></th></tr><tr>
        <th height="31" colspan="2" scope="col"><p align="left" class="style6 style5 style13">Naam: </p></th>
      <th width="178" scope="col"><p align="centre"><input type="text" name="naam"></p></th>
      </tr>
      <tr>
        <th height="31" colspan="2" scope="col"><p align="left" class="style9">Email: </th>
        <th width="178" scope="row"><p align="centre"> <input type="text" name="email"></p></th>
      </tr>
      <tr>
        <th height="78" colspan="2" scope="row"><div align="left" class="style7 style2"><p class="style9">Bericht:    </p></div></th>
        <th width="178" scope="row"><p align="centre"><textarea name="opmerkingen" rows="4" wrap="hard"></textarea></p></th>
      </tr>
      <tr>
        <th width="61" height="36" scope="row"><p><input type="submit" value="verzend" name="verzend"></th>
        <th width="51" scope="row"><input type="reset" value="reset"></p></th>
        <th height="36" scope="row"><span class="style2 style4"><span class="style15"><a href="index.htm" class="style8">T5P.nl</a></span></span></th>
    </tr>
    </table>
 
</form>
</pre>
</body>
    </html>
<? /* vergeet het else statement niet af te sluiten */ } ?>


Dankje wel!

De lay out is te vinden op http://www.t5p.nl/contact.php

zo..
Gewijzigd op 01/01/1970 01:00:00 door Stef
 
PHP hulp

PHP hulp

28/11/2024 22:37:37
 
Terry

Terry

04/03/2008 14:50:00
Quote Anchor link
zet de code ff tussen [.code.] en [./code.]
maar dan zonder de punten
dat maakt het een stuk overzichtelijker en is het makkelijker om je te helpen
Gewijzigd op 01/01/1970 01:00:00 door Terry
 
Stef

stef

04/03/2008 14:54:00
Quote Anchor link
oke, gedaan!
Gewijzigd op 01/01/1970 01:00:00 door stef
 
Stef

stef

04/03/2008 15:12:00
Quote Anchor link
Is dit goed geplaatst?
 
- SanThe -

- SanThe -

04/03/2008 15:37:00
Quote Anchor link
Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
 
PHP Newbie

PHP Newbie

04/03/2008 15:38:00
Quote Anchor link
1. Lees wat tutorials door over form handling, dan kom je het vast wel tegen

2. zie 1

3. Eerst moet je even bedenken hoe je spam tegen wilt gaan. Een plaatje
(captcha), een gewone vraag, een kleurtje?

4. <input type="hidden" />, maar waarom wil je het e-mail adres in een hidden field hebben? Dan kan iemand toch nooit het formulier invullen

5.1 $_REQUEST is achterhaald. Tegenwoordig gebruiken we gewoon $_POST, $_GET of $_COOKIE
5.2 $browser = $HTTP_USER_AGENT; . Gebruik Superglobals, dus $_SERVER['HTTP_USER_AGENT'].
5.3 Voor het IP geldt hetzelfde.

6. Het is zo goed geplaatst, maar je moet niet bumpen. Dat is het 2x achter elkaar plaatsen van een post in je eigen topic binnen 24 uur.
 
Jesper Diovo

Jesper Diovo

04/03/2008 15:38:00
Quote Anchor link
Ja hoor, maar bump a.u.b. niet.

if($_REQUEST['verzend']) kun je vervangen voor if($_SERVER['REQUEST_METHOD'] == "POST").

Je moet je formulier ín de HTML controleren, dus niet er boven. Zo komen de errors ook in de HTML te staan en dus in dezelfde stijl.

Floodcontrole kan d.m.v. cookies. Zie: setcookie().

$_REQUEST kun je vervangen voor $_POST.

Variabelen buiten de quotes, a.u.b.

Zet een if constructie om je mail() functie, zo kun je controleren of de mail verstuurd is of niet.

I.p.v. $HTTP_USER_AGENT gebruik je: $_SERVER['HTTP_USER_AGENT']. Datzelfde geldt voor $REMOTE_ADDR, wordt: $_SERVER['REMOTE_ADDR'].
 
PHP Newbie

PHP Newbie

04/03/2008 16:20:00
Quote Anchor link
@Djemo

Lees even de reacties van hiervoor.. Een aantal dingen zijn namelijk al genoemd.


@hieronder

You're absolutly right!
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
Jesper Diovo

Jesper Diovo

04/03/2008 17:08:00
Quote Anchor link
@PHP Newbie: bekijk even de postdata : ).
 



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.