script verstuurd wel mail maar plaatst niet in mysql DB
Alvast bedankt voor de hulp;P
Toevoeging op 24/09/2010 23:06:03:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// VALUES FROM THE FORM
$voornaam = $_POST['voornaam'];
$naam = $_POST['naam'];
$team = $_POST['team'];
$email = $_POST['email'];
$adres = $_POST['adres'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$merk = $_POST['merk'];
$type = $_POST['type'];
$pks = $_POST['pks'];
$klasse = $_POST['klasse'];
$telefoonnmr = $_POST['telefoonnmr'];
$tstanmr = $_POST['tstanmr'];
$mobielnmr = $_POST['mobielnmr'];
?>
// VALUES FROM THE FORM
$voornaam = $_POST['voornaam'];
$naam = $_POST['naam'];
$team = $_POST['team'];
$email = $_POST['email'];
$adres = $_POST['adres'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$merk = $_POST['merk'];
$type = $_POST['type'];
$pks = $_POST['pks'];
$klasse = $_POST['klasse'];
$telefoonnmr = $_POST['telefoonnmr'];
$tstanmr = $_POST['tstanmr'];
$mobielnmr = $_POST['mobielnmr'];
?>
Code (php)
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
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
<?
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Error: Ongeldig E-Mail Adres";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Error: Ongeldig Email adres";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}
// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $voornaam $achternaam <$email>\n";
$headers .= "Bcc: [email protected]\r\n";
$recipient = "[email protected], [email protected]";
$subject = "Een inschrijving via de website ontvangen";
$message = "Inschrijving
Naam: $voornaam $achternaam
Team: $team
Email: $email
Adres: $adres
Postcode: $postcode
Woonplaats: $woonplaats
Merk: $merk
Type: $type
PK's: $pks
Klasse: $klasse
Telefoonnummer: $telefoonnmr
Mobielnummer: $mobielnmr
Nummer van TSTA: $tstanmr";
// SEND THE EMAIL TO YOU
mail($recipient, $subject, $message, $headers);
mysql_query("INSERT INTO `deelnemers` VALUES (NULL, NULL, '$naam', '$voornaam', '$team', '$email', '$adres ', '$postcode', '$woonplaats', '$klasse', '$merk', '$type', '$pks', '$telefoonnmr', '$tstanmr', '$mobielnmr', NULL, NULL)");
mysql_close();
// REDIRECT TO THE THANKS PAGE
header("location: ../index.php?p=tanxmail");?>
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Error: Ongeldig E-Mail Adres";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Error: Ongeldig Email adres";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}
// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $voornaam $achternaam <$email>\n";
$headers .= "Bcc: [email protected]\r\n";
$recipient = "[email protected], [email protected]";
$subject = "Een inschrijving via de website ontvangen";
$message = "Inschrijving
Naam: $voornaam $achternaam
Team: $team
Email: $email
Adres: $adres
Postcode: $postcode
Woonplaats: $woonplaats
Merk: $merk
Type: $type
PK's: $pks
Klasse: $klasse
Telefoonnummer: $telefoonnmr
Mobielnummer: $mobielnmr
Nummer van TSTA: $tstanmr";
// SEND THE EMAIL TO YOU
mail($recipient, $subject, $message, $headers);
mysql_query("INSERT INTO `deelnemers` VALUES (NULL, NULL, '$naam', '$voornaam', '$team', '$email', '$adres ', '$postcode', '$woonplaats', '$klasse', '$merk', '$type', '$pks', '$telefoonnmr', '$tstanmr', '$mobielnmr', NULL, NULL)");
mysql_close();
// REDIRECT TO THE THANKS PAGE
header("location: ../index.php?p=tanxmail");?>
Gewijzigd op 24/09/2010 23:07:27 door Robbert van Velsen
En WAT lukt er niet? Waar is je fout afhandeling? En je script is vatbaar voor SQL injection.
Aar anoniem op 24/09/2010 23:09:39:
En WAT lukt er niet? Waar is je fout afhandeling? En je script is vatbaar voor SQL injection.
Hij Verstuurd wel de data uit de $_Post naar de mail adressen, maar de zelfde post info, insert hij niet in de betreffende DB
Wat was je bedoeling daar?
Maak een goeie afhandeling.
2:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$message = "Inschrijving
Naam: $voornaam $achternaam
Team: $team
Email: $email
Adres: $adres
Postcode: $postcode
Woonplaats: $woonplaats
....
Naam: $voornaam $achternaam
Team: $team
Email: $email
Adres: $adres
Postcode: $postcode
Woonplaats: $woonplaats
....
Fout.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$message = "Inschrijving
Naam: ". $voornaam $achternaam ."
Team: ". $team ."
Email: ". $email ."
Adres: ". $adres ."
Postcode: ". $postcode ."
Woonplaats: ". $woonplaats ."
....
Naam: ". $voornaam $achternaam ."
Team: ". $team ."
Email: ". $email ."
Adres: ". $adres ."
Postcode: ". $postcode ."
Woonplaats: ". $woonplaats ."
....
Goed.
3:
Code (php)
1
mysql_query("INSERT INTO `deelnemers` VALUES (NULL, NULL, '$naam', '$voornaam', '$team', '$email', '$adres ', '$postcode', '$woonplaats', '$klasse', '$merk', '$type', '$pks', '$telefoonnmr', '$tstanmr', '$mobielnmr', NULL, NULL)");
En nu wat beter:
Code (php)
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
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
$query = "
INSERT INTO 'deelnemers'
(
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
)
VALUES
(
NULL,
NULL,
'$naam',
'$voornaam',
'$team',
'$email',
'$adres ',
'$postcode',
'$woonplaats',
'$klasse',
'$merk',
'$type',
'$pks',
'$telefoonnmr',
'$tstanmr',
'$mobielnmr',
NULL,
NULL
"
if(mysql_query($query)){
// Query ging goed
}
else
{
// Query ging fout.
}
INSERT INTO 'deelnemers'
(
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
kolomnaam,
)
VALUES
(
NULL,
NULL,
'$naam',
'$voornaam',
'$team',
'$email',
'$adres ',
'$postcode',
'$woonplaats',
'$klasse',
'$merk',
'$type',
'$pks',
'$telefoonnmr',
'$tstanmr',
'$mobielnmr',
NULL,
NULL
"
if(mysql_query($query)){
// Query ging goed
}
else
{
// Query ging fout.
}
4: mysql_real_escape_string
ander idee?
Toevoeging op 24/09/2010 23:47:56:
Robbert van Velsen op 24/09/2010 23:46:01:
Ik heb je aanpassingen door gevoerd, met 2 kleine wijzigingen, het probleem blijft het zelfde, ik heb ook de connections nagekeken en krijg van zowel php als sql geen foutmeldingen,
ander idee?
ander idee?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// VALUES FROM THE FORM
$voornaam = $_POST['voornaam'];
$naam = $_POST['naam'];
$team = $_POST['team'];
$email = $_POST['email'];
$adres = $_POST['adres'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$merk = $_POST['merk'];
$type = $_POST['type'];
$pks = $_POST['pks'];
$klasse = $_POST['klasse'];
$telefoonnmr = $_POST['telefoonnmr'];
$tstanmr = $_POST['tstanmr'];
$mobielnmr = $_POST['mobielnmr'];
?>
// VALUES FROM THE FORM
$voornaam = $_POST['voornaam'];
$naam = $_POST['naam'];
$team = $_POST['team'];
$email = $_POST['email'];
$adres = $_POST['adres'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$merk = $_POST['merk'];
$type = $_POST['type'];
$pks = $_POST['pks'];
$klasse = $_POST['klasse'];
$telefoonnmr = $_POST['telefoonnmr'];
$tstanmr = $_POST['tstanmr'];
$mobielnmr = $_POST['mobielnmr'];
?>
Code (php)
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
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
<?
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Error: Ongeldig E-Mail Adres";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Error: Ongeldig Email adres";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}
// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $voornaam $achternaam <$email>\n";
$headers .= "Bcc: [email protected]\r\n";
$recipient = "[email protected], [email protected]";
$subject = "Een inschrijving via de website ontvangen";
$message = "Inschrijving
Naam: ". $voornaam ." ".$naam ."
Team: ". $team ."
Email: ". $email ."
Adres: ". $adres ."
Postcode: ". $postcode ."
Woonplaats: ". $woonplaats ."
Merk: ".$merk ."
Type: ".$type ."
PK's: ".$pks ."
Klasse: ".$klasse ."
Telefoonnummer: ". $telefoonnmr ."
Mobielnummer: ". $mobielnmr ."
Nummer van TSTA: ". $tstanmr." ";
// SEND THE EMAIL TO YOU
mail($recipient, $subject, $message, $headers);
$query = "
INSERT INTO 'deelnemers'
(
id,
startnr,
naam,
voornaam,
team,
email,
adres,
postcode,
woonplaats,
klasse,
merk,
type,
pks,
telefoonnmr,
tstanmr,
mobielnmr,
betaald,
aanwezig,
)
VALUES
(
NULL,
NULL,
'$naam',
'$voornaam',
'$team',
'$email',
'$adres ',
'$postcode',
'$woonplaats',
'$klasse',
'$merk',
'$type',
'$pks',
'$telefoonnmr',
'$tstanmr',
'$mobielnmr',
NULL,
NULL
";
if(mysql_query($query)){
// Query ging goed
}
else
{
// Query ging fout.
}
mysql_close();
// REDIRECT TO THE THANKS PAGE
header("location: ../index2.php?p=tanxmail");?>
// ERROR & SECURITY CHECKS
if ( ( !$email ) ||
( strlen($_POST['email']) > 200 ) ||
( !preg_match("#^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$#", $email) )
)
{
print "Error: Ongeldig E-Mail Adres";
exit;
}
if ( preg_match("#cc:#i", $message, $matches) )
{
print "Error: Found Invalid Header Field";
exit;
}
if (eregi("\r",$email) || eregi("\n",$email)){
print "Error: Ongeldig Email adres";
exit;
}
if (FALSE) {
print "Error: You cannot send to an email address on the same domain.";
exit;
}
// CREATE THE EMAIL
$headers = "Content-Type: text/plain; charset=iso-8859-1\n";
$headers .= "From: $voornaam $achternaam <$email>\n";
$headers .= "Bcc: [email protected]\r\n";
$recipient = "[email protected], [email protected]";
$subject = "Een inschrijving via de website ontvangen";
$message = "Inschrijving
Naam: ". $voornaam ." ".$naam ."
Team: ". $team ."
Email: ". $email ."
Adres: ". $adres ."
Postcode: ". $postcode ."
Woonplaats: ". $woonplaats ."
Merk: ".$merk ."
Type: ".$type ."
PK's: ".$pks ."
Klasse: ".$klasse ."
Telefoonnummer: ". $telefoonnmr ."
Mobielnummer: ". $mobielnmr ."
Nummer van TSTA: ". $tstanmr." ";
// SEND THE EMAIL TO YOU
mail($recipient, $subject, $message, $headers);
$query = "
INSERT INTO 'deelnemers'
(
id,
startnr,
naam,
voornaam,
team,
email,
adres,
postcode,
woonplaats,
klasse,
merk,
type,
pks,
telefoonnmr,
tstanmr,
mobielnmr,
betaald,
aanwezig,
)
VALUES
(
NULL,
NULL,
'$naam',
'$voornaam',
'$team',
'$email',
'$adres ',
'$postcode',
'$woonplaats',
'$klasse',
'$merk',
'$type',
'$pks',
'$telefoonnmr',
'$tstanmr',
'$mobielnmr',
NULL,
NULL
";
if(mysql_query($query)){
// Query ging goed
}
else
{
// Query ging fout.
}
mysql_close();
// REDIRECT TO THE THANKS PAGE
header("location: ../index2.php?p=tanxmail");?>
Toevoeging op 25/09/2010 00:07:51:
Gefixt,
SQL Querie getest direct in mysql. en NULL op handmatig.
Tanx voor de INPUT.
SLOTJE
Je moet wel wat doen als de query goet gaat het (zie commentaar). En als de query fout gaat: mysql_error().
Script is lek => SQL-Injection
Vervang dat door:
Doe dat op elke regel zo, waarbij je een $variable gebruikt.
Beveiliging, tenzij je wilt dat zelfs de simpele hackers je website plat kunnen leggen.
Gewijzigd op 25/09/2010 08:30:37 door Dalando De Zuil