variablen controleren

  • Onderwerp starter Onderwerp starter rxr
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

rxr

Gebruiker
Lid geworden
24 okt 2008
Berichten
105
Hallo,

Ik ben vrij nieuw met php maar hou controleren jullie de user input.

Ik vind hoe ik nu bezig ben een beetje omslachtig aangezien ik vrij veel varriablen heb wordt de code dus gigantisch

if(isset($_POST["test"]) && is_numeric($test))
{
$test= $_POST["test"];
}
else
{
$test= null;
}

in dit geval gaat het dan om een getal dat ik verwacht. Ben nieuwsgierig hoe jullie dit doen.
 
Dat werkt op die manier inderdaad. Als je heel veel variabelen hebt kun je overwegen om een shortcut te programmeren, in de vorm van een functie.

Heel veel korter zul je het niet krijgen; je moet altijd de isset doen, en daarna de checks om te zien of aan de voorwaarden voldaan wordt. Als je heel veel elementen hebt kun je het eventueel in een loop zetten; mits ze allemaal aan dezelfde voowaarden moeten voldoen.

Overigens heb je in je voorbeeld eerst in je isset een verwijzing naar $_POST en daarna een verwijzing naar $test, ik vermoed dat die tweede ook naar $_POST moet verwijzen.
 
dat is inderdaad een typ fout. Even te snel gepost. Een functie is een goed alternatief.
Ik wist niet dat dat mogelijk was voor php dus ik zou me er even in verdiepen.
 
PHP is een volledige programmeertaal, ondersteunt gewoon functies, classes, reflection, en vrijwel alle andere dingen die andere programmeertalen ook hebben :)
 
Ik zou niet alleen fuctie schrijven, maar ook alle velden die je verwacht in een array stoppen. Dan kun je met een foreach en een functie je code mooi inkorten, maar of dat nuttig is hangt er ook een beetje vanaf hóe lang je code is.

PHP:
$bFormValid = true;

$aFields = array ( 
              "naamveld1",
              "naamveld2",
              "naamveld3", 
              "naamveld4"
           );

function checkInput ( $sInput ) {

  return ( isset ( $_POST[ $sInput ] ) && is_numeric (  $_POST[ $sInput ] ) );

}

foreach ( $aFields as $sField ) {

  if ( !checkInput ( $sField ) ) {

    $bFormValid = false;

  }

}

Gewoon in de bovenste array alle velden toevoegen die je wilt controleren. Dan kun je vervolgens iets met $bFormValid doen.

Als je wilt kunt je de checkInput functie ook nog uitbreiden, om bijvoorbeeld op tekst te controleren of op lengte of wat dan ook.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan