Dubbele Form POST
Wil nu eens en voor altijd goed weten hoe je meerdere submits controleerd op 1 pagina.
Laten we zeggen we hebben 2 gedeeltes waar we iets kunnen submitten.
Als je alleen met REQUEST_METHOD controleerd dan worden allebei de forms gepost wat problemen kan veroorzaken.
Nu heb ik gehoord/gelezen dat je Hidden inputs moet gebruiken om het veilig te kunnen laten verlopen.
Hoe controleer je nu de juiste manier of een bepaalde button wordt gesubmit?
Als je controleerd met if(isset($_POST['button1'])) dan wil dat wel maar dat is niet echt netjes.
Graag hoor ik jullie reacties !
Mr.Ark
Mr.Ark schreef op 26.10.2009 14:53:
Als je alleen met REQUEST_METHOD controleerd dan worden allebei de forms gepost wat problemen kan veroorzaken.
Er worden nooit twee forms tegelijk gepost. De REQUEST_METHOD zal echter altijd, op welke gepost formulier dan ook, reageren. Ik zelf gebruik in zo'n geval beiden. Dus if($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_POST['de_knop_in_het_formulier']). Op deze manier weet je altijd met welk formulier je te maken hebt.
Ok, Er is mij een keer verteld dat als je op isset($_POST['de_knop_in_het_formulier']) controleerd of iets gepost wordt dat dat niet correct is. Heb ook geen flauw idee waarom???
Toen is verteld dat je het beste op hidden inputs kan controleren.
Maar als ik het goed begrijp dan kan ik gerust isset($_POST['de_knop_in_het_formulier']) verder gaan gebruiken?
Hidden is beter. Als namelijk 'de_knop_in_het_formulier' de submitknop is dan kan het zijn dat die niet is geklikt, maar dat er bv. een enter is gegeven en dan is ie ook niet geset. Dat wordt er mee bedoeld.
Bedankt voor je uitleg.
Dus ik kan gerust isset($_POST['de_knop_in_het_formulier']) blijven gebruiken zonder dat ik me ergens zorgen over hoef te maken?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Kom ik in de buurt?
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
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
<?PHP
# Errors
error_reporting(E_ALL);
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of er op knop 1 wordt geklikt
if(isset($_POST['knop1']))
{
echo 'Knop 1 aangeklikt';
}
# Kijken of er op knop 2 wordt geklikt
if(isset($_POST['knop2']))
{
echo 'Knop 2 aangeklikt';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Knop Test</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<input type="submit" name="knop1" value="Knop 1" />
<input type="hidden" name="knop1" id="knop1" />
<input type="submit" name="knop2" value="Knop 2" />
<input type="hidden" name="knop2" id="knop2" />
</form>
</body>
</html>
# Errors
error_reporting(E_ALL);
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of er op knop 1 wordt geklikt
if(isset($_POST['knop1']))
{
echo 'Knop 1 aangeklikt';
}
# Kijken of er op knop 2 wordt geklikt
if(isset($_POST['knop2']))
{
echo 'Knop 2 aangeklikt';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Knop Test</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<input type="submit" name="knop1" value="Knop 1" />
<input type="hidden" name="knop1" id="knop1" />
<input type="submit" name="knop2" value="Knop 2" />
<input type="hidden" name="knop2" id="knop2" />
</form>
</body>
</html>
Edit:
Och, hoe dom ben ik bezig.
Ik moet ze natuurlijk niet allebei in hetzelf form veld neerzetten.
Nu doet hij het wel goed.
Bedankt voor de hulp.
Och, hoe dom ben ik bezig.
Ik moet ze natuurlijk niet allebei in hetzelf form veld neerzetten.
Nu doet hij het wel goed.
Bedankt voor de hulp.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
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
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
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of er op knop 1 wordt geklikt
if(isset($_POST['knop1']))
{
echo 'Formulier 1 is gepost';
}
# Kijken of er op knop 2 wordt geklikt
if(isset($_POST['knop2']))
{
echo 'Formulier 2 is gepost';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Knop Test</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<input type="submit" name="blaat" value="Knop 1" />
<input type="hidden" name="knop1" id="knop1" />
</form>
<form id="form2" name="form2" method="post" action="">
<input type="submit" name="blaat" value="Knop 2" />
<input type="hidden" name="knop2" id="knop2" />
</form>
</body>
</html>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of er op knop 1 wordt geklikt
if(isset($_POST['knop1']))
{
echo 'Formulier 1 is gepost';
}
# Kijken of er op knop 2 wordt geklikt
if(isset($_POST['knop2']))
{
echo 'Formulier 2 is gepost';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Knop Test</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<input type="submit" name="blaat" value="Knop 1" />
<input type="hidden" name="knop1" id="knop1" />
</form>
<form id="form2" name="form2" method="post" action="">
<input type="submit" name="blaat" value="Knop 2" />
<input type="hidden" name="knop2" id="knop2" />
</form>
</body>
</html>