PHP Function maken

  • Hallo,


    Ik wou een PHP Function maken.


    Iets wat over de Requests word gehaald die verzonden worden.
    Dus over $_POST, en $_GET.


    Hoe kan ik dat doen.
    Voorbeeld:


    Je verstuurd 0.4
    Je haald het zo op:


    $variable = controle($_POST['cijfer']);


    In dit geval word het dus afgerond naar 0.


    Heeft iemand een idee hoe ik dit kan maken?
    Denk dat het niet moeilijk te maken is maar kom er maar niet uit.

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Dat klopt maar het afronden is ook maar een voorbeeld.


    Maar stel ik wil iets afronden en wil het ook beveiligen met mysql_real_escape_string.


    Dan word het dus:

    PHP
    $var = mysql_real_escape_string(round($_POST['cijfer']));


    Maar als ik een functie ervoor maak met dit erin word het bijvoorbeeld:

    PHP
    $var = veilig($_POST['cijfer']);


    Het is dus handig als je veel dingen hebt en verwerkt naar eigen functies die gelijk alles in 1 dus doen.


    Maar weet iemand hoe ik dat kan doen?

  • PHP
    function checkGetal($cijfer)
    {
       $cijfer = (int) $cijfer;
       $cijfer = round($cijfer);
       return $cijfer;
    }


    PHP
    $getal = 5.5;
    echo checkGetal($getal);


    Zoiets?
    Zover ik weet maakt de (int) integer alles al gelijk zonder .4 ofso.
    Maar als jij in de database insteld dat de veld double is dan word dit gedaan via de round function.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework


  • Simpel:

    PHP
    $var = round($_POST['cijfer'])


    round() zal getallen returnen, en die bevatten geen gevaarlijke tekens die een query onveilig kunnen maken.


    Leg eens beter uit wat je precies wilt en dan zullen we vertellen of het wel echt een goed idee is of niet, en wat mogelijk is.
    Wil je bijvoorbeeld dat een functie op basis van de key bepaald wat er moet gebeuren met die waarde?
    Of wilde je een magische functie die alles voor je doet (pas op met wat je wenst, grote kans dat het verkeerd uitpakt)

  • Je zou het zoals mijn function kunnen doen!
    Maar je zou ook gebruik kunnen maken van een if en else binnen in een function waarin je parameters mee geeft.
    Zodat je opgeeft wat voor beveiliging hij moet mee geven?


    Verder zou ik het eerder via aparte functies doen dan heb ik namelijk meer overzicht.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Wat ik gebruik is het volgende:



    Voor andere dingen ben ik er nog niet echt, als ik zover ben kan ik eventueel wel iets plaatsen ;)

    PostCounter: 0 - 100 - 200 - 300 - 400 - 500 - 600 - 700 - 800 - 900 - 1000


    Project vendettagame.com:
    10% klaar

  • Nee de cijfer mocht hij alleen numeric zijn zou ik hem door een ctype_digit halen.


    Misschien is het handig om op de ctype book te zoeken op php.net, er zijn namelijk nog meer soorten niet alleen voor cijfers :)

    PostCounter: 0 - 100 - 200 - 300 - 400 - 500 - 600 - 700 - 800 - 900 - 1000


    Project vendettagame.com:
    10% klaar


  • Tuurlijk kan dit korter en anders en veiliger etc.
    Maar ik denk dat voor de meeste wel handig te gebruiken is!

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Ik zie de link tussen mysql_real_escape_string() niet echt...
    nl2br() hoor je pas te gebruiken als je iets op het scherm wilt weergeven, en in de database hoor je dingen zo ruw mogelijk op te slaan (geen nl2br(), htmlspecialchars() etc)


    ctype_digit() geeft TRUE of FALSE terug...
    intval() is een functie die ergens een integer van maakt, floatval() maakt ergens floats van...


    Niels
    Dat iets input is wilt niet zeggen dat het de database in gaat.
    Ik zou waarschijnlijk eerder een statische Escape class maken met methods zoals Escape::html(), Escape::(my/pg/ms)sql().
    Maar waarschijnlijk nog liever escape() methods in classes zoals Database, HTML, JSON (als dit een class waardig is dan)...


    Controleer liever alle input goed en zorg voor goede foutafhandeling.
    Als je echt merkt dat je steeds maar bepaalde stukken code blijft herhalen, dan stop je ze in een functie.

  • Citaat

    Owja mijn fout nl2br inderdaad pas zodra het in de database gaat.


    Het naar het scherm wordt geschreven ja.;)


    Ik kan mij eigenlijk geen situatie bedenken wanneer je meerdere functies nodig hebt om data te valideren voordat je het in de database zet. Misschien een regex i.c.m. addslashes of iets dergelijks (rare regex dan overigens). Maar anders...

Participate now!

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