Het versturen van de e-card
Je kijkt dus eerst of het 'formulier' verzonden is. Zo niet, laat dan de 4 ecards zien (of meer). Ze kunnen via een radio keuze hun ecard kiezen. Daarnaast moeten ze de ontvangers naam en email + hun eigen email adres en naam invullen om een ecard te kunnen versturen. Als er eenmaal op de knop versturen is gedrukt zal er gekeken worden of alles is ingevuld en of het e-mail adres wel klopt. Ook zet hij alle speciale karakters om in entities met de functie htmlentities() om misbruik met bijv. javascript etc. te voorkomen.
VERGEET NIET DE URL ADRESSEN TE WIJZIGEN IN HET SCRIPT!
index.php
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
echo "<html>";
echo "<head><title>Verstuur een e-card!</title>";
echo "<style>";
echo "body { background-color: #ffffff; font-family: Verdana, Arial, Helvetica; font-size: 12px; color: #000000 }";
echo "a { color: #000000; text-decoration: underlined }";
echo "</style>";
echo "</head>";
echo "<body>";
// maak verbinding met de database
// HIER DUS JE EIGEN MYSQL GEGEVENS
if (!@mysql_select_db("database_naam", @mysql_connect("localhost", "database_user", "database_pass")))
{
echo "er kon geen database connectie gemaakt worden.";
exit();
}
// ZET HIER HET ONDERWERP VAN DE ECARD!
$email_onderwerp = "Je hebt een e-card ontvangen!";
// e-mail validator
function email_validator($email)
{
if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
$valid = "1";
return $valid;
}
// random pass generator
function random_pass($length, $caps)
{
if ($caps == 1)
$letters = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1234567890";
else
$letters = "abcdefghijklmnopqrstuvwxyz1234567890";
for ($i = 1; $i <= $length; $i++)
{
$randnum = rand(0, strlen($letters));
if ($i == 1)
$randchar = substr($letters, $randnum, 1);
else
$randchar .= substr($letters, $randnum, 1);
}
return $randchar;
}
// check of het formulier is verzonden
// zo ja, valideer de e-mail adressen
// en zet speciale karakters om
if ($_POST['submit'])
{
$afz_email = htmlentities($_POST['afz_email']);
$ontv_email = htmlentities($_POST['ontv_email']);
$ontv_naam = htmlentities($_POST['ontv_naam']);
$afz_naam = htmlentities($_POST['afz_naam']);
$bericht = htmlentities($_POST['bericht']);
$check_ontv_email = email_validator($_POST['ontv_email']);
$check_afz_email = email_validator($_POST['afz_email']);
}
// bekijk dus eerst of het formulier is verzonden is en of
// alle variabele goed zijn
if ($_POST['submit'] && $afz_email && $ontv_email && $afz_naam && $ontv_naam && $bericht && $check_ontv_email && $check_afz_email && $_POST['ecards'])
{
// maak een random key aan
$ophaal_key = random_pass(10, 1);
if (strlen($ophaal_key) == 9)
$ophaal_key = $ophaal_key . "G";
elseif (strlen($ophaal_key) == 8)
$ophaal_key = $ophaal_key . "Ez";
// zet datum verstuurd
$datum = date("d.m.Y H:i");
// zet de ecard informatie in de database
$sql = "INSERT INTO ecards (id, ontv_naam, ontv_email, bericht, afz_naam, afz_email, datum, afbeelding, ekey) VALUES (";
$sql .= "''";
$sql .= ", " . $ontv_naam;
$sql .= ", " . $ontv_email;
$sql .= ", " . $bericht;
$sql .= ", " . $afz_naam;
$sql .= ", " . $afz_email;
$sql .= ", " . $datum;
$sql .= ", " . $_POST['ecards'];
$sql .= ", " . $ophaal_key;
$sql .= ")";
$res = mysql_query($sql);
// kijk of de query succesvol was
if ($res)
{
// het bericht dat een e-card is ontvangen
$email_msg = "==================================================\n";
$email_msg .= "Je hebt een e-card ontvangen!!!\n";
$email_msg .= "==================================================\n\n";
$email_msg .= "Ben je benieuwd door wie deze e-card verstuurd is?\n";
$email_msg .= "Haal dan snel je e-card op!!\n\n";
$email_msg .= "http://www.phphulp.nl/ecards/ecard.php?key=$ophaal_key\n\n";
$email_msg .= "De e-card is verzonden via phphulp.nl/ecards\n";
// verstuur bericht dat er een e-card is ontvangen
if (mail($ontv_naam . "<" . $ontv_email . ">", $email_onderwerp, $email_msg, "From: PHPhulp ECARD <noreply@phphulp>"))
echo "<p>De e-card is verzonden!</p>";
else
echo "<p>Sorry, de e-card is niet verzonden. Probeer het opnieuw.</p>";
}
else
{
echo "De ecard is niet verstuurd. Probeer het opnieuw.";
}
}
// laat formulier zien!
else
{
// bekijk of het al eerder verzonden was
if ($_POST['submit'])
echo "<b>Je bent enkele velden vergeten in te vullen (of een ecard te kiezen) of je hebt de e-mail adressen niet correct ingevuld.</b><p>";
// zet de namen van de ecards in een array
$ecard[0] = "love.jpg";
$ecard[1] = "beterschap.jpg";
$ecard[2] = "gefeliciteerd.jpg";
$ecard[3] = "spijt.jpg";
// tel de ecards
$tot_ecards = count($ecard) - 1;
// zet de URL naar de ecards (niet eindigend op een slash)
$url = "http://www.phphulp.nl/ecards";
// begin form
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
// begin HTML table
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"10\">";
// laat de ecards zijn
$tr = 1;
for ($i = 0; $i <= $tot_ecards; $i++)
{
if ($tr == 1)
echo "<tr><td><img src=\"$url/thumb_$ecard[$i]\"><br><input type=\"radio\" name=\"ecards\" value=\"$ecard[$i]\"></td>";
elseif ($tr == 2)
{
echo "<td><img src=\"$url/thumb_$ecard[$i]\"><br><input type=\"radio\" name=\"ecards\" value=\"$ecard[$i]\"></td></tr>";
$tr = 0;
}
$tr++;
}
// sluit HTML table
echo "</table>";
echo "Wat is de naam van ontvanger?<br>";
echo "<input type=\"text\" name=\"ontv_naam\"><p>";
echo "Wat is het e-mail adres van de ontvanger?<br>";
echo "<input type=\"text\" name=\"ontv_email\"><p>";
echo "Wat is jou naam?<br>";
echo "<input type=\"text\" name=\"afz_naam\"><p>";
echo "Wat is jou e-mail adres?<br>";
echo "<input type=\"text\" name=\"afz_email\"><p>";
echo "Je bericht wat de ontvanger zal zien:<br>";
echo "<textarea name=\"bericht\" cols=\"55\" rows=\"12\"></textarea><p>";
echo "<input type=\"submit\" name=\"submit\" value=\"E-card versturen\">";
// sluit form
echo "</form>";
}
echo "</body></html>";
?>