$_SERVER['REQUEST_METHOD'] == 'POST' of isset($_POST['submit'])

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Albert de Wit

Albert de Wit

19/09/2012 12:58:00
Quote Anchor link
Wat is nou beter om te gebruiken? Ik heb vaker gelezen dat

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    // dit uitvoeren
}


beter is te gebruiken dan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if (isset($_POST['submit'])){
    // dit uitvoeren
}


Waarom?
 
PHP hulp

PHP hulp

01/10/2020 13:40:05
 
- Ariën -
Beheerder

- Ariën -

19/09/2012 13:10:07
 
Albert de Wit

Albert de Wit

19/09/2012 13:37:49
Quote Anchor link
ok dus even een samenvatting? $_REQUEST_METHOD kijkt of de request wel van dezelfde server komt? dat verhindert dus dat ik thuis een gmail registratieformulier namaak die het spul verzend?
 
- Ariën -
Beheerder

- Ariën -

19/09/2012 13:41:01
Quote Anchor link
Nee, dat is niet zo. Het kijkt of het formulier verzonden is via POST.
 
Albert de Wit

Albert de Wit

19/09/2012 13:42:31
Quote Anchor link
uh... dat doet $_POST['submit'] toch ook?
 
- Ariën -
Beheerder

- Ariën -

19/09/2012 13:46:11
Quote Anchor link
Nee, die kijkt of er op die knop geklikt is.

Anyway, heb je uberhaupt al die link gelezen? Het staat er allemaal uitgelegd.
Gewijzigd op 19/09/2012 13:46:27 door - Ariën -
 
Albert de Wit

Albert de Wit

19/09/2012 13:49:45
Quote Anchor link
dus $_SERVER['REQUEST_METHOD'] kijkt of er ergens een POST data is gepost?
 
- Ariën -
Beheerder

- Ariën -

19/09/2012 13:52:07
Quote Anchor link
Jep....
 
Albert de Wit

Albert de Wit

19/09/2012 13:52:46
Quote Anchor link
ah okay, bedankt

Toevoeging op 19/09/2012 13:53:39:

zoiets doe je bijvoorbeeld niet met $_SERVER['REQUEST_METHOD'] == 'GET'?
 
Stefan WM

Stefan WM

19/09/2012 13:55:46
Quote Anchor link
Ik zou er personlijk zoiets van maken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
if ( $_SERVER['REQUEST_METHOD'] == 'POST'
      && !empty( $_POST[ 'value' ] )
{
   doe iets
}


of

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
if ( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
   if( !empty( $_POST[ 'value' ] )
   {
      doe iets
   }
}
Gewijzigd op 19/09/2012 13:58:21 door Stefan WM
 
Chris -

Chris -

19/09/2012 13:57:03
Quote Anchor link
Als je 1 formulier hebt kan dat best, maar als je een fatsoenlijke afhandeling doet kijk je in eerste instantie wat voor REQUEST het is (POST/GET) en ga je daarna pas valideren.
 
Albert de Wit

Albert de Wit

19/09/2012 14:00:15
Quote Anchor link
wat als je zo'n formulier hebt?

<form action='index.php?plaats=amsterdam' method='POST'>
<input type='text' name='plaats' value='amsterdam'><br>
<input type='submit'>
</form>
 
- Ariën -
Beheerder

- Ariën -

19/09/2012 14:01:58
Quote Anchor link
Dan heb je een formulier die via POST verstuurt, waarmee je if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) kan gebruiken.

En nee, dit doe je liever niet via GET (via de URL), en al helemaal niet met inloggevens...
Gewijzigd op 19/09/2012 14:02:44 door - Ariën -
 
Albert de Wit

Albert de Wit

19/09/2012 14:03:00
Quote Anchor link
ok bedankt allemaal voor deze nuttige informatie ;)
 
Mebus  Hackintosh

Mebus Hackintosh

19/09/2012 14:05:23
Quote Anchor link
Je hebt met websites verschillende soorten requests waarvan GET en POST het meest gebruikt zijn. Je kan je formulier ook als GET versturen maar in het algemeen word POST gebruikt (: Simpel: GET is voor het ophalen en POST is versturen. Jou browser zal een POST request maken als er in jou form method='POST' staat, staat er GET, dan word er een GET request gemaakt.

Download anders eens FireFox met Firebug en dan kan je precies zien of er een GET of POST request wordt gemaakt. Ook ajax requests kan je daarmee zien.
 



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.