Verschillende"form action=" combineren
Ik ben bezig met een form waarop mensen bepaalde dingen moeten invullen. Als het form ingevuld is moet bij het klikken op de "submit" knop de ingevulde data verzonden worden naar een SQL database en ook naar mijn info@ mailadres en een kopie naar de invuller......
Nu ben ik al heel veel aan het zoeken geweest en de meeste dingen heb ik beide voor elkaar. Alleen heb ik 2 los van elkaar werkende varianten.....
Voor het mailen gebruik ik de form action code:
En voor het vullen van de database de form action code:
Afzonderlijk doen ze precies wat ze moeten doen.
Hoe kan ik ze nu combineren??
Heb me suf gezocht op Internet, maar kan niks vinden....
Alvast bedankt voor de hulp....
Greetz,
Jasper
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?PHP
if($_SERVER['REQUEST_METHOD']=="POST"){
//Controleren of alle velden goed zijn ingevuld, mysql_real_escape_string() etc.
//Verbinding met database maken
//Alles in de database zetten dmv SQL
//Het formulier mailen naar 2 personen (kijk bijvoorbeeld eens naar Swiftmailer voor een goed oop mailscript.
//Foutafhandeling etc.
}else{
echo 'Formulier niet goed verzonden!';
}
if($_SERVER['REQUEST_METHOD']=="POST"){
//Controleren of alle velden goed zijn ingevuld, mysql_real_escape_string() etc.
//Verbinding met database maken
//Alles in de database zetten dmv SQL
//Het formulier mailen naar 2 personen (kijk bijvoorbeeld eens naar Swiftmailer voor een goed oop mailscript.
//Foutafhandeling etc.
}else{
echo 'Formulier niet goed verzonden!';
}
Gewijzigd op 01/01/1970 01:00:00 door SilverWolf NL
1. je hebt een form waarin gegevens worden doorgegeven
2. die gegevens moeten de database in
3. en er moet een mailtje gestuurd worden
met logisch na denken moet je dus tot 1 script kunnen komen van hetgeen je nu hebt.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
$mail = "[email protected]";
$naam = "Je naam";
$mailbody = "
<html></html> mail.
";
mail($mail, $naam, $mailbody, $headers); # Dit neerzetten IN de $_server['REQUEST_METHOD'] enz.
?>
$mail = "[email protected]";
$naam = "Je naam";
$mailbody = "
<html></html> mail.
";
mail($mail, $naam, $mailbody, $headers); # Dit neerzetten IN de $_server['REQUEST_METHOD'] enz.
?>
het kan zijn dat ik ernaast zit maar dit is wat ik ervan begrijp.
Dit kan gewoon tegelijk met de FLEX form (o.i.d.)
Quote:
Zoiets ja. Waarom wil je eigenlijk 2 form actions op 1 pagina?
Het is niet iets wat ik wil.... Maar omdat beide varianten apart van elkaar goed werken hoopte ik eigenlijk dat er een hele simpele "action" variant was die beide combineert....
Maar ik zal er eens mee aan de slag gaan!
Alvast bedankt voor de input.
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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
<?PHP
if($_SERVER['REQUEST_METHOD']=="POST"){
//Config variabelen
$cfg['url'] = "http://www.vectoriousshirts.nl/optionalshirts_Werkwijze.html";// Site waarnaar gebruiker terug keert na Submitten
$cfg['naam'] = "Vectoriousshirts.nl"; // Bedrijfs naam
$cfg['email'] = "[email protected]"; // Bedrijfs E-mail
//Controleren of alle velden goed zijn ingevuld, mysql_real_escape_string() etc.
$naam = mysql_real_escape_string($_POST['naam']);
$email= mysql_real_escape_string($_POST['email']);
$shirtmodel = mysql_real_escape_string($_POST['shirtmodel']);
$design = mysql_real_escape_string($_POST['design']);
$shirtnr = mysql_real_escape_string($_POST['shirtnr']);
$kleur1 = mysql_real_escape_string($_POST['kleur1']);
$kleur2 = mysql_real_escape_string($_POST['kleur2']);
$kleur3 = mysql_real_escape_string($_POST['kleur3']);
$plaatskleur1 = mysql_real_escape_string($_POST['plaatskleur1']);
$plaatskleur2 = mysql_real_escape_string($_POST['plaatskleur2']);
$plaatskleur3 = mysql_real_escape_string($_POST['plaatskleur3']);
$designplaats = mysql_real_escape_string($_POST['designplaats']);
$bericht = mysql_real_escape_string($_POST['bericht']);
//Verbinding met database maken
$host = "XXXX";
$dbuser = "XXXX";
$dbpass = "XXXX";
$dbname = "XXXX";
$con = mysql_connect ($host,$dbuser,$dbpass);
mysql_select_db("$dbname", $con);
//Alles in de database zetten dmv SQL
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
opmerkingen
)
VALUES
(
'$_POST[naam]',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[bericht]'
)
";
//Het formulier mailen naar 2 personen
$mail = "[email protected]";
$naam = "Vectoriousshirts.nl";
$mailbody = "
<html>
<body>
<br />
<b>Naam:</b> '.$_POST[naam].'<br />
<b>Email:</b> <a href=\"mailto:'.$_POST[email].'\">'.$_POST[email].'</a><br />
<b>Shirtmodel:</b> '.$_POST[shirtmodel].'<br />
<b>Shirtnummer:</b> '.$_POST[shirtnr].'<br />
<b>Design:</b> '.$_POST[design].'<br />
<b>Kleur1:</b> '.$_POST[kleur1].'<br />
<b>Kleur2:</b> '.$_POST[kleur2].'<br />
<b>Kleur3:</b> '.$_POST[kleur3].'<br />
<b>Toepassingsgebied kleur1:</b> '.$_POST[plaatskleur1].'<br />
<b>Toepassingsgebied kleur2:</b> '.$_POST[plaatskleur2].'<br />
<b>Toepassingsgebied kleur3:</b> '.$_POST[plaatskleur3].'<br />
<b>Designplaats:</b> '.$_POST[designplaats].'<br />
<br />
<b>Bericht:</b><br />
'.$_POST[bericht].'
<br />
<br />
<br />
--------------------------------------------------------------------------<br />
</body>
</html>
";
$headers = "From: \"FLEX Contact Formulier\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$_POST[naam]."\" <".$_POST[email].">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
mail("[Contact]", $mail, $naam, $mailbody, $headers);
//Foutafhandeling etc.
if (!$con) // Foutafhandeling Database connectie
{
die('Could not connect to Database from page FLEXform_insert.php: ' . mysql_error());
}
}else{
echo 'Formulier niet goed verzonden!';
}
?>
if($_SERVER['REQUEST_METHOD']=="POST"){
//Config variabelen
$cfg['url'] = "http://www.vectoriousshirts.nl/optionalshirts_Werkwijze.html";// Site waarnaar gebruiker terug keert na Submitten
$cfg['naam'] = "Vectoriousshirts.nl"; // Bedrijfs naam
$cfg['email'] = "[email protected]"; // Bedrijfs E-mail
//Controleren of alle velden goed zijn ingevuld, mysql_real_escape_string() etc.
$naam = mysql_real_escape_string($_POST['naam']);
$email= mysql_real_escape_string($_POST['email']);
$shirtmodel = mysql_real_escape_string($_POST['shirtmodel']);
$design = mysql_real_escape_string($_POST['design']);
$shirtnr = mysql_real_escape_string($_POST['shirtnr']);
$kleur1 = mysql_real_escape_string($_POST['kleur1']);
$kleur2 = mysql_real_escape_string($_POST['kleur2']);
$kleur3 = mysql_real_escape_string($_POST['kleur3']);
$plaatskleur1 = mysql_real_escape_string($_POST['plaatskleur1']);
$plaatskleur2 = mysql_real_escape_string($_POST['plaatskleur2']);
$plaatskleur3 = mysql_real_escape_string($_POST['plaatskleur3']);
$designplaats = mysql_real_escape_string($_POST['designplaats']);
$bericht = mysql_real_escape_string($_POST['bericht']);
//Verbinding met database maken
$host = "XXXX";
$dbuser = "XXXX";
$dbpass = "XXXX";
$dbname = "XXXX";
$con = mysql_connect ($host,$dbuser,$dbpass);
mysql_select_db("$dbname", $con);
//Alles in de database zetten dmv SQL
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
opmerkingen
)
VALUES
(
'$_POST[naam]',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[bericht]'
)
";
//Het formulier mailen naar 2 personen
$mail = "[email protected]";
$naam = "Vectoriousshirts.nl";
$mailbody = "
<html>
<body>
<br />
<b>Naam:</b> '.$_POST[naam].'<br />
<b>Email:</b> <a href=\"mailto:'.$_POST[email].'\">'.$_POST[email].'</a><br />
<b>Shirtmodel:</b> '.$_POST[shirtmodel].'<br />
<b>Shirtnummer:</b> '.$_POST[shirtnr].'<br />
<b>Design:</b> '.$_POST[design].'<br />
<b>Kleur1:</b> '.$_POST[kleur1].'<br />
<b>Kleur2:</b> '.$_POST[kleur2].'<br />
<b>Kleur3:</b> '.$_POST[kleur3].'<br />
<b>Toepassingsgebied kleur1:</b> '.$_POST[plaatskleur1].'<br />
<b>Toepassingsgebied kleur2:</b> '.$_POST[plaatskleur2].'<br />
<b>Toepassingsgebied kleur3:</b> '.$_POST[plaatskleur3].'<br />
<b>Designplaats:</b> '.$_POST[designplaats].'<br />
<br />
<b>Bericht:</b><br />
'.$_POST[bericht].'
<br />
<br />
<br />
--------------------------------------------------------------------------<br />
</body>
</html>
";
$headers = "From: \"FLEX Contact Formulier\" <".$cfg['email'].">\r\n";
$headers .= "Reply-To: \"".$_POST[naam]."\" <".$_POST[email].">\n";
$headers .= "Return-Path: Mail-Error <".$cfg['email'].">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
mail("[Contact]", $mail, $naam, $mailbody, $headers);
//Foutafhandeling etc.
if (!$con) // Foutafhandeling Database connectie
{
die('Could not connect to Database from page FLEXform_insert.php: ' . mysql_error());
}
}else{
echo 'Formulier niet goed verzonden!';
}
?>
Heb al een hoop warnings en errors eruit gewerkt. Maar het lukt me nog steeds niet... De volgende fouten blijven staan:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'vectoriousshirts'@'srv151.one.com' (using password: NO) in /customers/vectoriousshirts.nl/vectoriousshirts.nl/httpd.www/_form/FLEXform_verzend.php on line 13 <b>(En ook voor line 14 t/m 25)</b>
Notice: Use of undefined constant naam - assumed 'naam' in /customers/vectoriousshirts.nl/vectoriousshirts.nl/httpd.www/_form/FLEXform_verzend.php on line 110
Notice: Use of undefined constant email - assumed 'email' in /customers/vectoriousshirts.nl/vectoriousshirts.nl/httpd.www/_form/FLEXform_verzend.php on line 110
en als laatste:
Warning: mail() [function.mail]: SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE in /customers/vectoriousshirts.nl/vectoriousshirts.nl/httpd.www/_form/FLEXform_verzend.php on line 116
Heb inmiddels al de gehele middag ge-googeld, maar tot op heden zonder resultaat.... Wie ziet de fout(en) ????
Alvast bedankt!!!!
Gewijzigd op 01/01/1970 01:00:00 door Jasper van Looijengoed
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 knop om je tekst aan te passen.
SanThe.
Edit: De database connectie moet je maken voordat je mysql_real_escape_string() gebruikt. Een array() verwacht (enkele) quotes om een string als key. $_POST[naam] moet dus $_POST['naam'] zijn. Je mail() heeft niet de parameters zoals het hoort te zijn. De vijfde parameter mag je niet gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Ik zal de uiteindelijke code hieronder posten voor naslagwerk voor anderen met dezelfde vraag. (Heb er zelf een hekel aan mensen hun problemen posten in een topic en vervolgens niet de moeite nemen om de oplossing te posten...) En wellicht hebben de heren experts nog enige op en/of aanmerking!
Anyway bedankt allemaal!!
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
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
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
<?PHP
if($_SERVER['REQUEST_METHOD']=="POST"){
//variabelen
$returnto = "http://www.vectoriousshirts.nl/custom_shirts.htm"; // Site waarnaar gebruiker terug keert na Submitten
$naamwebmaster = "Vectoriousshirts.nl"; // Bedrijfs naam
$mailwebmaster = "[email protected]"; // Bedrijfs E-mail
$mailklant = $_POST['email']; // Klant naam
//VERBINDING MET SQL DATABASE MAKEN
$host = "XXX MYHOST XXX";
$dbuser = "XXX MYUSER XXX";
$dbpass = "XXX MY PASSWORD XXX";
$dbname = "XXX MY DATABSE XXX";
$con = mysql_connect ($host,$dbuser,$dbpass);
mysql_select_db("$dbname", $con);
if (!$con)
{
die('Could not connect to Database from page FLEXform_insert.php: ' . mysql_error());
}
//SQL INJECTIE PREVENTIE
$naam = mysql_real_escape_string($_POST['naam']);
$email= mysql_real_escape_string($_POST['email']);
$shirtmodel = mysql_real_escape_string($_POST['shirtmodel']);
$design = mysql_real_escape_string($_POST['design']);
$shirtnr = mysql_real_escape_string($_POST['shirtnr']);
$kleur1 = mysql_real_escape_string($_POST['kleur1']);
$kleur2 = mysql_real_escape_string($_POST['kleur2']);
$kleur3 = mysql_real_escape_string($_POST['kleur3']);
$plaatskleur1 = mysql_real_escape_string($_POST['plaatskleur1']);
$plaatskleur2 = mysql_real_escape_string($_POST['plaatskleur2']);
$plaatskleur3 = mysql_real_escape_string($_POST['plaatskleur3']);
$designplaats = mysql_real_escape_string($_POST['designplaats']);
$bericht = mysql_real_escape_string($_POST['bericht']);
//SQL DATABASE GEDEELTE
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
opmerkingen
)
VALUES
(
'$_POST[naam]',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[bericht]'
)
"; // EINDE SQL INSERT
// DATABASE INVOER OK OF NOK MELDINGEN
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Uw aanvraag gegevens zijn succesvol in onze database ingevoerd <br/>";
// SLUITEN DATABSE CONNECTIE
mysql_close($con);
//BEGIN VAN HET "MAIL" SCRIPT NAAR 2 PERSONEN
// ONDERWERP DAT WORDT WEERGEGEVEN IN DE MAIL
$subject = 'VECTORIOUSSHIRTS.NL FLEX Custom request formulier';
// INHOUD VAN HET BERICHT DAT WORDT VERZONDEN
$mailbody = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body>
<br />
<b>Naam:</b> ".$_POST[naam]."<br />
<b>Email:</b> <a href=\"mailto:'.$mailklant.'\">'.$mailklant.'</a><br />
<b>Shirtmodel:</b> ".$_POST[shirtmodel]."<br />
<b>Shirtnummer:</b> ".$_POST[shirtnr]."<br />
<b>Design:</b> ".$_POST[design]."<br />
<b>Kleur1:</b> ".$_POST[kleur1]."<br />
<b>Kleur2:</b> ".$_POST[kleur2]."<br />
<b>Kleur3:</b> ".$_POST[kleur3]."<br />
<b>Toepassingsgebied kleur1:</b> ".$_POST[plaatskleur1]."<br />
<b>Toepassingsgebied kleur2:</b> ".$_POST[plaatskleur2]."<br />
<b>Toepassingsgebied kleur3:</b> ".$_POST[plaatskleur3]."<br />
<b>Designplaats:</b> ".$_POST[designplaats]."<br />
<br />
<b>Bericht:</b><br />
".$_POST[bericht]."
<br />
<br />
<br /> <br />
</body>
</html>
';
// HEDAERS Note OM HTML MAIL TE VERZENDEN MOET DE Content-type HEADER GEDEFINEERD ZIJN ZOALS HIERONDER
$headers = "From: \"FLEX Contact Formulier\" <".$mailwebmaster.">\r\n";
$headers .= "Reply-To: \"".$_POST['naam']."\" <".$mailklant.">\n";
$headers .= "Return-Path: Mail-Error <".$mailwebmaster.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
// VERZENDEN VAN DE MAIL
mail($mailklant, $subject, $mailbody, $headers); //MAIL NAAR KLANT MAIL ADRES
mail($mailwebmaster, $subject, $mailbody, $headers); //MAIL NAAR [email protected]
// VERZONDEN MELDING
echo "Je aanvraag is succesvol verzonden. Je ontvangt binnen enkele minuten een bevestigings mailtje in je inbox.<br/>";
echo "Ik zal het gevraagde ontwerp zo spoedig mogelijk on-line zetten.<br/>";
echo "Je ontvangt van mij een mailtje wanneer dit is gebeurt.<br/>";
echo "Met vriendelijke groet Team VECTORIOUSSHIRTS.nl";
} //SLUITEN VAN 1ste IF STATEMENT
else // VERVOLG VAN: if($_SERVER['REQUEST_METHOD']=="POST")BOVENSTE REGEL
{
echo 'Formulier niet goed verzonden!<br/>';
echo 'Probeer het later nog een keer of stuur je verzoek naar [email protected]. Mijn excuses voor het ongemak...';
}
?>
if($_SERVER['REQUEST_METHOD']=="POST"){
//variabelen
$returnto = "http://www.vectoriousshirts.nl/custom_shirts.htm"; // Site waarnaar gebruiker terug keert na Submitten
$naamwebmaster = "Vectoriousshirts.nl"; // Bedrijfs naam
$mailwebmaster = "[email protected]"; // Bedrijfs E-mail
$mailklant = $_POST['email']; // Klant naam
//VERBINDING MET SQL DATABASE MAKEN
$host = "XXX MYHOST XXX";
$dbuser = "XXX MYUSER XXX";
$dbpass = "XXX MY PASSWORD XXX";
$dbname = "XXX MY DATABSE XXX";
$con = mysql_connect ($host,$dbuser,$dbpass);
mysql_select_db("$dbname", $con);
if (!$con)
{
die('Could not connect to Database from page FLEXform_insert.php: ' . mysql_error());
}
//SQL INJECTIE PREVENTIE
$naam = mysql_real_escape_string($_POST['naam']);
$email= mysql_real_escape_string($_POST['email']);
$shirtmodel = mysql_real_escape_string($_POST['shirtmodel']);
$design = mysql_real_escape_string($_POST['design']);
$shirtnr = mysql_real_escape_string($_POST['shirtnr']);
$kleur1 = mysql_real_escape_string($_POST['kleur1']);
$kleur2 = mysql_real_escape_string($_POST['kleur2']);
$kleur3 = mysql_real_escape_string($_POST['kleur3']);
$plaatskleur1 = mysql_real_escape_string($_POST['plaatskleur1']);
$plaatskleur2 = mysql_real_escape_string($_POST['plaatskleur2']);
$plaatskleur3 = mysql_real_escape_string($_POST['plaatskleur3']);
$designplaats = mysql_real_escape_string($_POST['designplaats']);
$bericht = mysql_real_escape_string($_POST['bericht']);
//SQL DATABASE GEDEELTE
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
opmerkingen
)
VALUES
(
'$_POST[naam]',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[bericht]'
)
"; // EINDE SQL INSERT
// DATABASE INVOER OK OF NOK MELDINGEN
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Uw aanvraag gegevens zijn succesvol in onze database ingevoerd <br/>";
// SLUITEN DATABSE CONNECTIE
mysql_close($con);
//BEGIN VAN HET "MAIL" SCRIPT NAAR 2 PERSONEN
// ONDERWERP DAT WORDT WEERGEGEVEN IN DE MAIL
$subject = 'VECTORIOUSSHIRTS.NL FLEX Custom request formulier';
// INHOUD VAN HET BERICHT DAT WORDT VERZONDEN
$mailbody = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body>
<br />
<b>Naam:</b> ".$_POST[naam]."<br />
<b>Email:</b> <a href=\"mailto:'.$mailklant.'\">'.$mailklant.'</a><br />
<b>Shirtmodel:</b> ".$_POST[shirtmodel]."<br />
<b>Shirtnummer:</b> ".$_POST[shirtnr]."<br />
<b>Design:</b> ".$_POST[design]."<br />
<b>Kleur1:</b> ".$_POST[kleur1]."<br />
<b>Kleur2:</b> ".$_POST[kleur2]."<br />
<b>Kleur3:</b> ".$_POST[kleur3]."<br />
<b>Toepassingsgebied kleur1:</b> ".$_POST[plaatskleur1]."<br />
<b>Toepassingsgebied kleur2:</b> ".$_POST[plaatskleur2]."<br />
<b>Toepassingsgebied kleur3:</b> ".$_POST[plaatskleur3]."<br />
<b>Designplaats:</b> ".$_POST[designplaats]."<br />
<br />
<b>Bericht:</b><br />
".$_POST[bericht]."
<br />
<br />
<br /> <br />
</body>
</html>
';
// HEDAERS Note OM HTML MAIL TE VERZENDEN MOET DE Content-type HEADER GEDEFINEERD ZIJN ZOALS HIERONDER
$headers = "From: \"FLEX Contact Formulier\" <".$mailwebmaster.">\r\n";
$headers .= "Reply-To: \"".$_POST['naam']."\" <".$mailklant.">\n";
$headers .= "Return-Path: Mail-Error <".$mailwebmaster.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
// VERZENDEN VAN DE MAIL
mail($mailklant, $subject, $mailbody, $headers); //MAIL NAAR KLANT MAIL ADRES
mail($mailwebmaster, $subject, $mailbody, $headers); //MAIL NAAR [email protected]
// VERZONDEN MELDING
echo "Je aanvraag is succesvol verzonden. Je ontvangt binnen enkele minuten een bevestigings mailtje in je inbox.<br/>";
echo "Ik zal het gevraagde ontwerp zo spoedig mogelijk on-line zetten.<br/>";
echo "Je ontvangt van mij een mailtje wanneer dit is gebeurt.<br/>";
echo "Met vriendelijke groet Team VECTORIOUSSHIRTS.nl";
} //SLUITEN VAN 1ste IF STATEMENT
else // VERVOLG VAN: if($_SERVER['REQUEST_METHOD']=="POST")BOVENSTE REGEL
{
echo 'Formulier niet goed verzonden!<br/>';
echo 'Probeer het later nog een keer of stuur je verzoek naar [email protected]. Mijn excuses voor het ongemak...';
}
?>
SanThe schreef op 10.01.2010 15:56:
Een array() verwacht (enkele) quotes om een string als key. $_POST[naam] moet dus $_POST['naam'] zijn.
Je script is lek.
SQL-Injection: Dit komt doordat je eerst $naam = mysql_real_escape_string($_POST['naam']); doet en daar verder niks meer mee doet en de ongewijzigde $_POST['naam'] direct in de query zet.
Email-Injection: Doordat je $mailklant = $_POST['email']; doet en niet controleert of dit wel een geldig emailadres is en verder niks, maar dan $mailklant direct in mail() gebruikt.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
function checkmail($email)
{
if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$", $email))
{
return TRUE;
}
return FALSE;
{
if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$", $email))
{
return TRUE;
}
return FALSE;
Wat betreft de SQL-Injection:
Quote:
Dit komt doordat je eerst $naam = mysql_real_escape_string($_POST['naam']); doet en daar verder niks meer mee doet en de ongewijzigde $_POST['naam'] direct in de query zet.
Kan je me vertellen wat ik verder nog mee moet doen.... Ik snap niet helemaal wat de mysql_real_escape_string precies inhoud en hoe deze werkt. Graag een klein voorbeeld indien mogelijk...
Verder zit ik nog met een Notice:
Door de volgende regel in het Mail gedeelte:
krijg ik de Notice:
Notice: Use of undefined constant naam - assumed 'naam' in /customers/vectoriousshirts.nl/vectoriousshirts.nl/httpd.www/_form/FLEXform_verzend(tryoutdatabase).php on line 123
Bij gebruik van dubbele qoutes " krijg ik alleen de tekst .$_POST[naam]. in het mailtje te zien. Hetzelfde bij geen quotes. Wat mis ik hier om deze notice weg te krijgen??
Thanx!
Thanx
SanThe schreef op 13.01.2010 14:03:
SanThe schreef op 10.01.2010 15:56:
Een array() verwacht (enkele) quotes om een string als key. $_POST[naam] moet dus $_POST['naam'] zijn.
Waarom je de foutmelding krijgt heb ik je reeds 2 keer verteld.
Ik zou deze regel(s) verwijderen.
En het direct in de query zetten.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sql="
INSERT INTO FLEX_custom
(
naam,
.......
)
VALUES
(
'" . mysql_real_escape_string($_POST['naam']) . "',
.......
)";
?>
$sql="
INSERT INTO FLEX_custom
(
naam,
.......
)
VALUES
(
'" . mysql_real_escape_string($_POST['naam']) . "',
.......
)";
?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
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
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
<?php
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
opmerkingen
)
VALUES
(
'".mysql_real_escape_string($_POST['naam'])."',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[bericht]'
)
";
?>
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
opmerkingen
)
VALUES
(
'".mysql_real_escape_string($_POST['naam'])."',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[bericht]'
)
";
?>
Ik heb er 1 gedaan, de rest mag je zelf doen;)
Alleen dan komt de volgende error:
Parse error: syntax error, unexpected ';' in /customers/vectoriousshirts.nl/vectoriousshirts.nl/httpd.www/_form/FLEXform_verzend(TEST).php on line 88
Waar line 88 is: (Line 40 in het stuk van Niels hierboven)
Gewijzigd op 01/01/1970 01:00:00 door Jasper van Looijengoed
iets meer code graag
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
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
<?PHP
if($_SERVER['REQUEST_METHOD']=="POST"){
//variabelen
$returnto = "http://www.vectoriousshirts.nl/custom_shirts.htm"; // Site waarnaar gebruiker terug keert na Submitten
$naamwebmaster = "Vectoriousshirts.nl"; // Bedrijfs naam
$mailwebmaster = "[email protected]"; // Bedrijfs E-mail
$mailklant = $_POST['email']; // Klant naam
//VERBINDING MET SQL DATABASE MAKEN
$host = "XXXX";
$dbuser = "XXXX";
$dbpass = "XXXX";
$dbname = "XXXX";
$con = mysql_connect ($host,$dbuser,$dbpass);
mysql_select_db("$dbname", $con);
if (!$con)
{
die('Could not connect to Database from page FLEXform_insert.php: ' . mysql_error());
}
//SQL INJECTIE PREVENTIE
$email= mysql_real_escape_string($_POST['email']);
$shirtmodel = mysql_real_escape_string($_POST['shirtmodel']);
$design = mysql_real_escape_string($_POST['design']);
$shirtnr = mysql_real_escape_string($_POST['shirtnr']);
$kleur1 = mysql_real_escape_string($_POST['kleur1']);
$kleur2 = mysql_real_escape_string($_POST['kleur2']);
$kleur3 = mysql_real_escape_string($_POST['kleur3']);//Line30
$plaatskleur1 = mysql_real_escape_string($_POST['plaatskleur1']);
$plaatskleur2 = mysql_real_escape_string($_POST['plaatskleur2']);
$plaatskleur3 = mysql_real_escape_string($_POST['plaatskleur3']);
$designplaats = mysql_real_escape_string($_POST['designplaats']);
$kleurshirt = mysql_real_escape_string($_POST['kleurshirt']);
$bericht = mysql_real_escape_string($_POST['bericht']);
//SQL DATABASE GEDEELTE
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
kleur_shirt,
opmerkingen
)
VALUES
(
'".mysql_real_escape_string($_POST['naam']."',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[kleurshirt]',
'$_POST[bericht]'
)
"; // EINDE SQL INSERT
// DATABASE INVOER OK OF NOK MELDINGEN
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else // VERVOLG VAN: if($_SERVER['REQUEST_METHOD']=="POST")BOVENSTE REGEL
{
echo 'Formulier niet goed verzonden!<br/>';
echo 'Probeer het later nog een keer of stuur je verzoek naar [email protected]. Mijn excuses voor het ongemak...';
} [/code]
if($_SERVER['REQUEST_METHOD']=="POST"){
//variabelen
$returnto = "http://www.vectoriousshirts.nl/custom_shirts.htm"; // Site waarnaar gebruiker terug keert na Submitten
$naamwebmaster = "Vectoriousshirts.nl"; // Bedrijfs naam
$mailwebmaster = "[email protected]"; // Bedrijfs E-mail
$mailklant = $_POST['email']; // Klant naam
//VERBINDING MET SQL DATABASE MAKEN
$host = "XXXX";
$dbuser = "XXXX";
$dbpass = "XXXX";
$dbname = "XXXX";
$con = mysql_connect ($host,$dbuser,$dbpass);
mysql_select_db("$dbname", $con);
if (!$con)
{
die('Could not connect to Database from page FLEXform_insert.php: ' . mysql_error());
}
//SQL INJECTIE PREVENTIE
$email= mysql_real_escape_string($_POST['email']);
$shirtmodel = mysql_real_escape_string($_POST['shirtmodel']);
$design = mysql_real_escape_string($_POST['design']);
$shirtnr = mysql_real_escape_string($_POST['shirtnr']);
$kleur1 = mysql_real_escape_string($_POST['kleur1']);
$kleur2 = mysql_real_escape_string($_POST['kleur2']);
$kleur3 = mysql_real_escape_string($_POST['kleur3']);//Line30
$plaatskleur1 = mysql_real_escape_string($_POST['plaatskleur1']);
$plaatskleur2 = mysql_real_escape_string($_POST['plaatskleur2']);
$plaatskleur3 = mysql_real_escape_string($_POST['plaatskleur3']);
$designplaats = mysql_real_escape_string($_POST['designplaats']);
$kleurshirt = mysql_real_escape_string($_POST['kleurshirt']);
$bericht = mysql_real_escape_string($_POST['bericht']);
//SQL DATABASE GEDEELTE
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
kleur_shirt,
opmerkingen
)
VALUES
(
'".mysql_real_escape_string($_POST['naam']."',
'$_POST[email]',
'$_POST[shirtmodel]',
'$_POST[design]',
'$_POST[shirtnr]',
'$_POST[kleur1]',
'$_POST[kleur2]',
'$_POST[kleur3]',
'$_POST[plaatskleur1]',
'$_POST[plaatskleur2]',
'$_POST[plaatskleur3]',
'$_POST[designplaats]',
'$_POST[kleurshirt]',
'$_POST[bericht]'
)
"; // EINDE SQL INSERT
// DATABASE INVOER OK OF NOK MELDINGEN
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else // VERVOLG VAN: if($_SERVER['REQUEST_METHOD']=="POST")BOVENSTE REGEL
{
echo 'Formulier niet goed verzonden!<br/>';
echo 'Probeer het later nog een keer of stuur je verzoek naar [email protected]. Mijn excuses voor het ongemak...';
} [/code]
Gewijzigd op 01/01/1970 01:00:00 door Jasper van Looijengoed
Je hebt nog helemaal niks aangepast. Ga dat eerst maar eens doen.
Wel degelijk aangepast. I
k ga niet meteen de hele code overhoop gooien om vervolgens erachter te komen dat er een probleem is en niet meer weten waar het aan ligt......
Anyway, de code aangepast zoals beschreven door Niels:
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
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
<?php
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
kleur_shirt,
opmerkingen
)
VALUES
(
'".mysql_real_escape_string($_POST['naam']."',
'".mysql_real_escape_string($_POST['email']."',
'".mysql_real_escape_string($_POST['shirtmodel']."',
'".mysql_real_escape_string($_POST['design']."',
'".mysql_real_escape_string($_POST['shirtnr']."',
'".mysql_real_escape_string($_POST['kleur1']."',
'".mysql_real_escape_string($_POST['kleur2']."',
'".mysql_real_escape_string($_POST['kleur3']."',
'".mysql_real_escape_string($_POST['plaatskleur1']."',
'".mysql_real_escape_string($_POST['plaatskleur2']."',
'".mysql_real_escape_string($_POST['plaatskleur3']."',
'".mysql_real_escape_string($_POST['designplaats']."',
'".mysql_real_escape_string($_POST['kleurshirt']."',
'".mysql_real_escape_string($_POST['bericht']."'
)
"; // EINDE SQL INSERT
?>
$sql="
INSERT INTO FLEX_custom
(
naam,
e_mail,
shirt_model,
design,
shirt_nummer,
1ste_kleur,
2de_kleur,
3de_kleur,
beschr_kleur1,
beschr_kleur2,
beschr_kleur3,
plaats_design,
kleur_shirt,
opmerkingen
)
VALUES
(
'".mysql_real_escape_string($_POST['naam']."',
'".mysql_real_escape_string($_POST['email']."',
'".mysql_real_escape_string($_POST['shirtmodel']."',
'".mysql_real_escape_string($_POST['design']."',
'".mysql_real_escape_string($_POST['shirtnr']."',
'".mysql_real_escape_string($_POST['kleur1']."',
'".mysql_real_escape_string($_POST['kleur2']."',
'".mysql_real_escape_string($_POST['kleur3']."',
'".mysql_real_escape_string($_POST['plaatskleur1']."',
'".mysql_real_escape_string($_POST['plaatskleur2']."',
'".mysql_real_escape_string($_POST['plaatskleur3']."',
'".mysql_real_escape_string($_POST['designplaats']."',
'".mysql_real_escape_string($_POST['kleurshirt']."',
'".mysql_real_escape_string($_POST['bericht']."'
)
"; // EINDE SQL INSERT
?>
Ik krijg nog steeds de foutmelding:
Parse error: syntax error, unexpected ';' in /customers/vectoriousshirts.nl/vectoriousshirts.nl/httpd.www/_form/FLEXform_verzend(TEST).php on line 88
Waar lijn 88 is:
EDIT: OPGELOST.......
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
'".mysql_real_escape_string($_POST['naam']."',
// WAS EEN ( VERGETEN.... :(
// moest zijn
'".mysql_real_escape_string($_POST['naam'])."',
?>
Bedankt allemaal!!!
Gewijzigd op 01/01/1970 01:00:00 door Jasper van Looijengoed
mysql_real_escape_string(.... wordt nergens afgesloten met een ) en daarachter hoort dan ook nog een . (punt).
'".mysql_real_escape_string($_POST['bericht']."'
moet zijn
'".mysql_real_escape_string($_POST['bericht'])."'