Dubbele Form POST

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mr.Ark

Mr.Ark

26/10/2009 14:53:00
Quote Anchor link
Beste mensen,

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
 
PHP hulp

PHP hulp

16/04/2024 07:22:55
 
- SanThe -

- SanThe -

26/10/2009 15:07:00
Quote Anchor link
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.
 
Mr.Ark

Mr.Ark

26/10/2009 15:09:00
Quote Anchor link
@ SanThe

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?
 
- SanThe -

- SanThe -

26/10/2009 15:16:00
Quote Anchor link
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.
 
Mr.Ark

Mr.Ark

26/10/2009 15:21:00
Quote Anchor link
@ SanThe

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?
 
- SanThe -

- SanThe -

26/10/2009 15:23:00
Quote Anchor link
Als dat dan een hidden input is met een value gaat het goed.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Mr.Ark

Mr.Ark

26/10/2009 15:32:00
Quote Anchor link
Hmm ik denk dat ik hem niet goed snap.

Kom ik in de buurt?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>


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.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
- SanThe -

- SanThe -

26/10/2009 15:41:00
Quote Anchor link
Meer zo, met twee formulieren.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.