Door
Johan West
op 17-05-2015 22:21
gewijzigd op 17-05-2015 22:44
3.027 views
In het vlg script wordt een menu dmv select option gemaakt, de waarden in de reeks moeten via echo op het scherm komen. Dit script werkt wel, maar er staat een hinderlijke foutmelding op het scherm te wijten aan deze opdrachtregel: if (in_array($_POST['category'], $map))
Je kijkt of je formulier verstuurd is via de POST-method, en daarna kijk je of de $_POST-waarde uit je formulier ook voorkomt in je array ($map).
Je kan natuurlijk de controle ook in twee statements opschrijven, waarbij je eerst kijkt of je formulier verstuurd is via de POST-method, en daarna een aparte if-statement of je $_POST-waarde in de array voorkomt.
Hiermee kan je de foutafhandelng wel nauwkeuriger maken, of de array iets bevat, en of er ge-POST is of niet. In dit geval kan je eventueel eerst je formulier laten tonen.
echo $_POST['naam'];
/*
van alle $_POST, $_GET en $_COOKIE elementen (want het zijn array's) weet je NOOIT zeker of ze wel bestaan.
Daarom moet je ze voor gebruik altijd testen met isset(). Bij $_POST wordt ook veel
$_SERVER['REQUEST_METHOD'] gebruikt om te testen of de pagina in de POST methode is opgevraagd.
Daarna gaan we er vaak vanuit (bij formulieren) dat alle POST variabelen ook meegestuurd zijn.
Echter is dat nog steeds geen zekerheid.
*/
$naam = '';
if(isset($_POST['naam']))
$naam = $_POST['naam'];
/*
Nu heb je een $naam (en niet $_POST['naam']) die ALTIJD bestaat :-)
*/