[php] POST of GET vangen in een functie

Pagina: 1
Acties:
  • 356 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi een vraagje,

Als ik een variabel wil ophalen in mijn script doe ik dat standaard als volgt:

PHP:
1
2
3
4
5
6
if(isset($_POST['fietsbel'])){
    $fietsbel = secuinput($_POST['fietsbel']);
}
else{
    $fietsbel = '';
}


In de functie secuinput verwerk ik weer een filter om te checken of er geen rotzooi in zit.

Nu zou het eigenlijk wel mooi zijn om het als volgt te schrijven:
PHP:
1
$fietsbel = eenfunctie('fietsbel');


Maar nu heb ik verscheidene pogingen gewaagd maar een variabele POST lijkt me nog niet echt te lukken.
Vroeger was er wel een functie die ALLE posts ophaalde. Maar of dat is wat ik wil ;)

Na veel Googlen wil ik het nog niet opgeven omdat ik vermoed verkeerd gezocht te hebben.
(*Gezocht op PHP variable POST variable name *)

Weet iemand of dit misschien mogelijk is?

Ben niet helemaal duidelijk geweest

Ik wil dus juist het geheel in een functie zetten om notices te voorkomen en de code te verminderen.

Als ik doe :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

function getdata($var){
    if($_GET[$var]){
        $data = $_GET[$var];
    }
    else{
        $data = '';
    }

    return $data;  
}

echo getdata('fiets');

?>


krijg je nog steeds een warning:
Notice: Undefined index: fiets in D:\wamp\www\test\postget.php on line 4

[ Voor 23% gewijzigd door Verwijderd op 27-04-2010 15:30 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:26

Creepy

Tactical Espionage Splatterer

Wat voor pogingen heb je dan precies gedaan? Wat lukte daar niet mee? Kreeg je foutmeldingen? Zo ja, welke? Je kan toch prima $_POST[$parameter] gebruiken?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • fridiot
  • Registratie: Maart 2010
  • Laatst online: 25-07 16:03
Misschien dat ik je vraag niet helemaal goed begrepen heb, maar is dit niet wat je zoekt?

PHP:
1
2
3
4
5
6
7
8
9
10
function eenfunctie($var, $default = '') {
  if(isset($_POST[$var])) {
    return secuinput($_POST[$var]);
  }
  else{
    return $default;
  }
}

echo eenfunctie('fietsbel');

[ Voor 8% gewijzigd door fridiot op 27-04-2010 15:18 ]


Acties:
  • 0 Henk 'm!

  • Kaasplank
  • Registratie: Februari 2001
  • Niet online
je kunt toch gewoon in je eenfunctie();

PHP:
1
2
3
4
function eenfunctie($postvar)
{
    return $_POST[$postvar];
}

doen?

$fietsbal = eenfunctie('fietsbel');
geeft dan de variable terug die in $_POST['fietsbel'] zit. In je eenfunctie kun je dan nog kijken of de variable wel bestaat en je sucuritycheck doen

[ Voor 16% gewijzigd door Kaasplank op 27-04-2010 15:19 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kaasplank schreef op dinsdag 27 april 2010 @ 15:18:
je kunt toch gewoon in je eenfunctie();

PHP:
1
2
3
4
function eenfunctie($postvar)
{
    return $_POST[$postvar];
}

doen?

$fietsbal = eenfunctie('fietsbel');
geeft dan de variable terug die in $_POST['fietsbel'] zit. In je eenfunctie kun je dan nog kijken of de variable wel bestaat en je sucuritycheck doen
Klopt misschien ben ik idd niet helemaal duidelijk.

Sorry voor mijn gestress.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

function getdata($var){
    if($_GET[$var]){
        $data = $_GET[$var];
    }
    else{
        $data = '';
    }

    return $data;  
}

echo getdata('fiets');

?>


Dat alsnog levert de foutmelding op :
Notice: Undefined index: fiets in D:\wamp\www\test\postget.php on line 4
En dat is net waarom ik graag die functie erop loslaat om notices te voorkomen.

Acties:
  • 0 Henk 'm!

  • Delusion
  • Registratie: Mei 2009
  • Laatst online: 21:43
Gokje hoor, controleren met isset() op je $_GET? :)

Acties:
  • 0 Henk 'm!

  • dumpie
  • Registratie: Februari 2003
  • Niet online
isset? }:O

Acties:
  • 0 Henk 'm!

  • pderaaij
  • Registratie: Oktober 2005
  • Laatst online: 18-08 20:16
In een van je eerste posts gebruikte je nog isset om te controleren of de variabele bestond. Als je dat nu weer doet dan werkt het perfect.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:26

Creepy

Tactical Espionage Splatterer

En als je met isset controleert of de variabele geset is?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • X_lawl_X
  • Registratie: September 2009
  • Laatst online: 18-09 15:04
Dat komt omdat de array key 'fiets' niet in de $_GET array staat.

PHP:
1
2
3
4
5
6
7
8
9
10
function getdata($var){
    if ( array_key_exists ( $var, $_GET ) )
        $data = $_GET[$var];
    }
    else{
        $data = '';
    }

    return $data;  
}


werkt beter denk ik.

edit: isset() zal ook werken, alleen persoonlijk vind ik array_key_exists netter staan in deze.

[ Voor 14% gewijzigd door X_lawl_X op 27-04-2010 15:29 ]


Acties:
  • 0 Henk 'm!

  • !null
  • Registratie: Maart 2008
  • Laatst online: 22:07
En het wordt niet stiekem ge-POST ipv ge-GET?

Ampera-e (60kWh) -> (66kWh)


Acties:
  • 0 Henk 'm!

  • pderaaij
  • Registratie: Oktober 2005
  • Laatst online: 18-08 20:16
@X_lawl_X

In dat geval wil je misschien eens naar deze comment kijken op php.net: http://www.php.net/manual...rray-key-exists.php#82867

Ook al is het te verwaarlozen qua performance, alle kleine beetjes zijn meegenomen.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:26

Creepy

Tactical Espionage Splatterer

Anyway, het is wel duidelijk nu. Ook als je gaat zoeken op PHP Undefined Index dan kom je echt een hele hoop oplossingen tegen die nagenoeg allemaal isset aanraden ;) Volgende keer toch iets beter zoeken?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.