Drop down lijst geselecteerd item weergeven (opgelost)
Van alles wat ik op het net al kon vinden lijkt niets te werken, javascript, enz...
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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<div class="water">
<form name="victor" action="mail_handler.php" method="post">
<div class="mailtop">
<div class="mailvan"><h1 class="hmailvan">Van:</h1></div>
<div class="mailvanform">
<select name="owner" id="owner">
<?php
$sql = mysql_query( "SELECT email FROM namen");
while ($row = mysql_fetch_array($sql)){
echo "<option value=\"owner1\">" . $row['email'] . "</option>";
}
?>
</select>
<input type="hidden" name="country" id="country_hidden">
<script>
$(document).ready(function() {
$("#owner").change(function(){
$("#country_hidden").val(("#itemType_id").find(":selected").text());
});
});
</script>
</div>
</div>
<div class="mailvoor"><div class="mailvoortitel"><h1 class="hmailvan">Aan:</h1></div>
<div class="mailvoorform">
<?php
if(isset($_POST['lombi'])){
$mailvoor = $_POST['lombi'];
}
if(isset($_POST['variable'])){
$mailonderwerp = $_POST['variable'];
$eind1= mysql_query("SELECT e1 FROM items WHERE item='$mailonderwerp'");
while ($row = mysql_fetch_object($eind1)){
$titel1=$row->e1;
};
$mails1= mysql_query("SELECT email FROM namen WHERE titel='$titel1'");
while ($row = mysql_fetch_object($mails1)){
echo $row->email.' ; ';
};
$eind2= mysql_query("SELECT e2 FROM items WHERE item='$mailonderwerp'");
while ($row = mysql_fetch_object($eind2)){
$titel2=$row->e2;
};
$mails2= mysql_query("SELECT email FROM namen WHERE titel='$titel2'");
while ($row = mysql_fetch_object($mails2)){
echo $row->email.' ; ';
};
}
$vtest = mysql_query("SELECT d1, d2, d3 FROM items WHERE item='$mailonderwerp'");
while ($row = mysql_fetch_array($vtest)){
$doen1 = $row['d1'];
$doen2 = $row['d2'];
$doen3 = $row['d3'];
}
if ($doen1 !=NULL){
$xtest = mysql_query("SELECT email FROM namen Where titel ='$doen1''");
while ($row = mysql_fetch_object($xtest)){
echo '<p><a href=""><div class="namen">'.$row->email.'</div></a></p>';
}
}
if ($doen2 !=NULL){
$ytest = mysql_query("SELECT * FROM $doen2");
while ($row = mysql_fetch_object($ytest)){
echo '<p><a href=""><div class="namen">'.$row->naam.'</div></a></p>';
}
}
if ($doen3 !=NULL){
$ztest = mysql_query("SELECT * FROM $doen3");
while ($row = mysql_fetch_object($ztest)){
echo '<p><a href=""><div class="namen">'.$row->naam.'</div></a></p>';
}
}
?>
</div>
</div>
<div class="mailtitel">
<div class="mailtiteltitel"><h1 class="hmailvan">Onderwerp:</h1></div>
<div class="mailtitelform">
<?php
if(isset($_POST['variable'])){
echo 'DERI '.$_POST['variable'];
}
?>
</div>
</div>
<div class="mailbericht">
<div class="mailberichttitel"><h1 class="hmailvan">Bericht:</h1></div>
<div class="mailberichttitelform">
<textarea class="comment" name="comments">
</textarea>
</div>
</div>
<?php
$myboxes = $_POST['comments'];
$poort = $_POST['selectedText'];
?>
<div class="mailsend">
<div class="poper"><input type="submit" name="submit" value="Submit"></div>
</div>
</form>
</div>
<form name="victor" action="mail_handler.php" method="post">
<div class="mailtop">
<div class="mailvan"><h1 class="hmailvan">Van:</h1></div>
<div class="mailvanform">
<select name="owner" id="owner">
<?php
$sql = mysql_query( "SELECT email FROM namen");
while ($row = mysql_fetch_array($sql)){
echo "<option value=\"owner1\">" . $row['email'] . "</option>";
}
?>
</select>
<input type="hidden" name="country" id="country_hidden">
<script>
$(document).ready(function() {
$("#owner").change(function(){
$("#country_hidden").val(("#itemType_id").find(":selected").text());
});
});
</script>
</div>
</div>
<div class="mailvoor"><div class="mailvoortitel"><h1 class="hmailvan">Aan:</h1></div>
<div class="mailvoorform">
<?php
if(isset($_POST['lombi'])){
$mailvoor = $_POST['lombi'];
}
if(isset($_POST['variable'])){
$mailonderwerp = $_POST['variable'];
$eind1= mysql_query("SELECT e1 FROM items WHERE item='$mailonderwerp'");
while ($row = mysql_fetch_object($eind1)){
$titel1=$row->e1;
};
$mails1= mysql_query("SELECT email FROM namen WHERE titel='$titel1'");
while ($row = mysql_fetch_object($mails1)){
echo $row->email.' ; ';
};
$eind2= mysql_query("SELECT e2 FROM items WHERE item='$mailonderwerp'");
while ($row = mysql_fetch_object($eind2)){
$titel2=$row->e2;
};
$mails2= mysql_query("SELECT email FROM namen WHERE titel='$titel2'");
while ($row = mysql_fetch_object($mails2)){
echo $row->email.' ; ';
};
}
$vtest = mysql_query("SELECT d1, d2, d3 FROM items WHERE item='$mailonderwerp'");
while ($row = mysql_fetch_array($vtest)){
$doen1 = $row['d1'];
$doen2 = $row['d2'];
$doen3 = $row['d3'];
}
if ($doen1 !=NULL){
$xtest = mysql_query("SELECT email FROM namen Where titel ='$doen1''");
while ($row = mysql_fetch_object($xtest)){
echo '<p><a href=""><div class="namen">'.$row->email.'</div></a></p>';
}
}
if ($doen2 !=NULL){
$ytest = mysql_query("SELECT * FROM $doen2");
while ($row = mysql_fetch_object($ytest)){
echo '<p><a href=""><div class="namen">'.$row->naam.'</div></a></p>';
}
}
if ($doen3 !=NULL){
$ztest = mysql_query("SELECT * FROM $doen3");
while ($row = mysql_fetch_object($ztest)){
echo '<p><a href=""><div class="namen">'.$row->naam.'</div></a></p>';
}
}
?>
</div>
</div>
<div class="mailtitel">
<div class="mailtiteltitel"><h1 class="hmailvan">Onderwerp:</h1></div>
<div class="mailtitelform">
<?php
if(isset($_POST['variable'])){
echo 'DERI '.$_POST['variable'];
}
?>
</div>
</div>
<div class="mailbericht">
<div class="mailberichttitel"><h1 class="hmailvan">Bericht:</h1></div>
<div class="mailberichttitelform">
<textarea class="comment" name="comments">
</textarea>
</div>
</div>
<?php
$myboxes = $_POST['comments'];
$poort = $_POST['selectedText'];
?>
<div class="mailsend">
<div class="poper"><input type="submit" name="submit" value="Submit"></div>
</div>
</form>
</div>
mail_handler:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if(isset($_POST['submit'])){
$to = "[email protected]"; // hier komt normaal het email adres
$from = $_POST["country"];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "DERI";
$message = $from . " schreef volgend bericht:" . "\n\n" . $_POST['comments'];
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail werd met succes verstuurd.";
echo $abc;
}
?>
if(isset($_POST['submit'])){
$to = "[email protected]"; // hier komt normaal het email adres
$from = $_POST["country"];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "DERI";
$message = $from . " schreef volgend bericht:" . "\n\n" . $_POST['comments'];
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail werd met succes verstuurd.";
echo $abc;
}
?>
Gewijzigd op 26/06/2017 20:52:19 door Danny Heytens
Als je een formulier verstuurd via POST, dan staat alle data daarvan in een $_POST-array. Dus een veld met als name 'telefoonnummer' kan je ophalen met $_POST['telefoonnummer'].
Uiteraard kan dit alleen als je het formulier verstuurd hebt via $_POST.
Dit kan je op twee manieren controleren:
Of met:
Verder zie ik een hoop onvolomenhedne in je code:
- Gebruik van de oude mysql_* functies. Ik raad je aan om op MySQLi of PDO over te stappen. De oude functies van de mysql-driver zijn in PHP 7 verwijderd, en de meeste hostingbedrijven stappen al over op deze nieuwe versie. Dit houdt in dat je script mogelijk op korte termijn niet meer zal werken.
- Je kopieert variabelen: $mailvoor = $_POST['lombi'];
Wat is de reden hiervan? Je kan nu toch al prima $_POST['lombi'] gebruiken?
- Naamgeving van je variabelen en databasevelden: Wat is $doen1 en wat doet $doen2? Dit is verre van duidelijk. Nu weet je het misschien nog, maar later misschien niet meer, en creëer je alleen maar meer bugs in je script door verwarring. Dit geldt ook voor je databasetabel.
- SQL-injection. Je moet NOOIT $_POST, $_GET, $_SESSION, $_COOKIE en $_ENV variabelen onbeschermd in je mysql(i)_query invoeren. Iedereen kan deze manipuleren waarbij ze volledig toegang hebben tot je database. Een groot gevaar dus! Gebruik dus mysqli_real_escape_string() over je variabelen heen.
- Foutafhandeling: Als je query niet werkt, is het raadzaam om hier een foutmelding bij te tonen. Dit kan uitstekend met een if-else afhandeling.
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
<select name="owner" id="owner">
<?php
$sql = mysql_query( "SELECT email FROM namen");
while ($row = mysql_fetch_array($sql)){
echo "<option value=\"owner1\">" . $row['email'] . "</option>";
}
?>
</select>
<?php
$sql = mysql_query( "SELECT email FROM namen");
while ($row = mysql_fetch_array($sql)){
echo "<option value=\"owner1\">" . $row['email'] . "</option>";
}
?>
</select>
Hoe haal ik hier het geselecteerde item uit wanneer het formulier wordt verstuurd.
Ik krijg enkel owner1 als resultaat.
Gewijzigd op 26/06/2017 18:53:18 door - Ariën -
De value is altijd "owner1", dat lijkt mij niet kloppen. Hoe kun je dan onderscheid maken?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<div class="mailvanform">
<select name="owner" onchange="setTextField(this)">
<?php
$sql = mysql_query( "SELECT email FROM namen");
while ($row = mysql_fetch_array($sql)){
echo "<option value=\"owner1\">" . $row['email'] . "</option>";
}
?>
</select>
<input id="make_text" type = "hidden" name = "make_text" value = "" />
<script type="text/javascript">
function setTextField(ddl) {
document.getElementById('make_text').value = ddl.options[ddl.selectedIndex].text;
}
</script>
</div>
<select name="owner" onchange="setTextField(this)">
<?php
$sql = mysql_query( "SELECT email FROM namen");
while ($row = mysql_fetch_array($sql)){
echo "<option value=\"owner1\">" . $row['email'] . "</option>";
}
?>
</select>
<input id="make_text" type = "hidden" name = "make_text" value = "" />
<script type="text/javascript">
function setTextField(ddl) {
document.getElementById('make_text').value = ddl.options[ddl.selectedIndex].text;
}
</script>
</div>
en verder
Wat MySQLi betreft, dit werkt niet bij het hostingbedrijf waar ik mee werk,PDO heb ik nog niet getest maar dat komt nog.
mysqli_real_escape_string() had ik reeds ergens gezien en daar zal ik mij nu even op storten.
Nogmaals dank
Quote:
Wat MySQLi betreft, dit werkt niet bij het hostingbedrijf waar ik mee werk
Dit kan ik mij niet indenken. Voor de duidelijkheid: Dit is een een functie-bibliotheek, en niet een speciale database. Hoe merk jij dan dat MySQLi niet werkt?
Verder snap ik niet waarom je die JavaScript gebruikt? Je kan toch prima zoals ik en Thomas aangeven je option aanpassen met een uniek ID, in plaats van een hardcoded string 'owner1'. Je draait nu heel erg om de juiste oplossing heen i.p.v. de correcte oplossing te benutten.
Gewijzigd op 26/06/2017 20:57:35 door - Ariën -
Bedoel je een ID in de database, een array of nog iets anders?
En anders kan je toch ook je mailadres gebruiken in je name-attribuut? Persoonlijk zelf ben ik er keihard op tegen om mailadressen publiekelijk te tonen in select-boxes. Privacy en veiligheid tegen mailadres-harvesters voor spamming.
Gewijzigd op 26/06/2017 21:11:22 door - Ariën -
In de tabel namen staat geen ID, wel functie, voor en achternaam.
Dan zou ik maar snel een uniek ID-veld aanmaken (met auto-increment), dan kan je die mensen nog eens koppelen aan een andere tabel.
Daar maak ik morgen dan werk van, dank je.