NickKoole / educom-webshop-database-1697464368

0 stars 0 forks source link

Je kan de getPostVar en getUrlVar functies iets generieker maken #11

Open JeroenHeemskerk opened 1 year ago

JeroenHeemskerk commented 1 year ago

De twee functies hieronder kunnen nu alleen de 'page' ophalen, https://github.com/NickKoole/educom-webshop-database-1697464368/blob/364dbd0cd5de5a60fd25da34a02a3b3d2bbb332e/index.php#L29-L35 Als we ze iets generieker maken dan kunnen we ze ook in de validaties gebruiken

function getPostVar($key, $default=''){ 
     return isset($_POST[$key]) ? $_POST[$key] : $default; 
 } 

 function getUrlVar($key, $default='') { 
     return isset($_GET[$key]) ? $_GET[$key] : $default; 
 } 

in de validaties kunnen we dan doen:

            $salutation = testInput(getPostVar("salutation"));
            $name = testInput(getPostVar("name"));
            $email = testInput(getPostVar("email"));
            $phonenumber = testInput(getPostVar("phonenumber"));
            $message = testInput(getPostVar("message"));

            if (!empty($salutation)) { // <--- Gebruik hier ook de variabelen !!

                //Als name niet leeg is wordt gekeken of er enkel letters en whitespaces ingevuld zijn
                if (!($salutation == "mr." || $salutation == "mrs." || $salutation == "neither")) {

                    $errSalutation = "Enkel 'Dhr.', 'Mvr.' of 'Geen van beide' zijn valide input";
                }
            } else {
                $errSalutation = "Aanhef moet ingevuld zijn";
            }

            if (!empty($name)) { // <--- Gebruik hier ook de variabelen !!

                //Als name niet leeg is wordt gekeken of er enkel letters en whitespaces ingevuld zijn
                if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
                    $errName = "Enkel letters en whitespaces zijn toegestaan";
                }
            } else {
                $errName = "Naam moet ingevuld zijn";
            }
JeroenHeemskerk commented 1 year ago

Ik zou overigens de if's omdraaien, omdat je eerst checken wil of het wel is gevuld. Bovendien kan je dan gebruik maken van de else if constructie die een extra nesting voorkomt

            if (empty($salutation)) { 

                $errSalutation = "Aanhef moet ingevuld zijn"
            }
            else if (!($salutation == "mr." || $salutation == "mrs." || $salutation == "neither")) {

                $errSalutation = "Enkel 'Dhr.', 'Mvr.' of 'Geen van beide' zijn valide input";               
            }

            if (empty($name)) { 

                $errName = "Naam moet ingevuld zijn";
            } 
            else if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) { // Als name niet leeg is wordt gekeken of er enkel letters en whitespaces ingevuld zijn

                $errName = "Enkel letters en whitespaces zijn toegestaan";
            }