Optie beperken in php

  • Beste CP,


    Ik ben op dit moment bezig met een aantal wijzigingen doorvoeren echter willen een paar dingen niet lukken.


    Zoals het volgende:


    Ik wil automatische incasso beperken. Als mensen geen contract getekend hebben ook geen automatische incasso kunnen aanvinken.


    Ik heb al de tabellen aangemaakt Tabel is ook op een andere plek actief onder optie "niet getekend" en "getekend"


    Kan iemand mijn helpen om de optie alleen zichtbaar te laten maken als in de database de optie op 1 staat.


    Hier een stukje script:


    PHP
    <select name="methode">
                <option value="Automatische Incasso">Automatische incasso</option>
                <option value="Overboeking">Overboeking</option>
                <?php if(isset($config['mollie'])){ ?><option value="iDEAL">iDEAL (+ &euro; <?= number_format($config['XXXXXX'], 2, ',', '.'); ?>)</option><?php } ?>
    			<?php if(isset($config['paypal'])){ ?><option value="PayPal">PayPal (+ &euro; <?= number_format($config['XXXXXXXX'], 2, ',', '.'); ?>)</option><?php } ?>
    			<?php if(isset($config['mollie'])){ ?><option value="Wallie">Wallie (+ <?= number_format($config['XXXXXX'], 0); ?>%)</option><?php } ?>
            </select>


    Alvast mijn dank voor de persoon die me wilt helpen.

  • Zover ik dus begrijp staat er in de database of die het contract getekend heeft of niet.


    En dan moet er dus een optie alleen maar zichtbaar zijn als de optie 1 is.


    Dat kun je dan toch opvragen uit de database ? Ik weet niet of je gebruik maakt van een sessie of cookie ? Want het moet op een manier ingevuld zijn in de database met de gegevens van de klant.


    Als er bijvoorbeeld een ID gebruikt wordt in een sessie:


    PHP
    if(isset($_SESSION['id'])) {
    $getUserInfo = mysql_query("SELECT * FROM `tabel` WHERE id = '".$_SESSION['id']."'");
    $row = mysql_fetch_array($getUserInfo);
    $optie = $row['optielevel'];
    } else {
    $optie = 0;
    }


    Nu krijg je dus een optie mee heel basis natuurlijk. En zo kan je bepalen wat wel en niet getoond moet worden.

  • Vergeet niet de controlle ook in de verwerkings code te zetten. Als iemand nou geen contract heeft getekend maar wel de kennis heeft om het formulier aan te passen. Dan kan hij/zij toch de data versturen alsof die je code alleen verwacht als hij/zij wel een contract heeft getekend en dus mogelijk onterecht bepaalde code uitgevoerd wordt.


    TL;DR:
    Vertrouw nooit user input.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!