Likes Likes:  0
Resultaten 1 tot 15 van de 28
Pagina 1 van de 2 1 2 LaatsteLaatste
Geen
  1. #1
    M@rcel
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    WHERE = '$ID2' veranderd? door registerglobals?

    Hallo,

    Ik ben een PHP-scripje aan het overzetten naar een server waar
    registerglobals off staan.

    Nu heb ik de simpele query:

    $sql = "SELECT * FROM NIEUWS WHERE ID = 'ID2'";

    Link naar deze pagina is dan bijvoorbeeld: pagina.php?ID2=120

    Maar dat werkt volgens mij niet meer, hoe moet ik WHERE aanpassen om het wel
    te laten werken? of ligt het daar niet aan?

    Marcel



  2. #2
    John Bokma
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    M@rcel wrote:

    > Hallo,
    >
    > Ik ben een PHP-scripje aan het overzetten naar een server waar
    > registerglobals off staan.
    >
    > Nu heb ik de simpele query:
    >
    > $sql = "SELECT * FROM NIEUWS WHERE ID = 'ID2'";
    >
    > Link naar deze pagina is dan bijvoorbeeld: pagina.php?ID2=120
    >
    > Maar dat werkt volgens mij niet meer,


    Ik zou zo zeggen: heeft het ooit wel gewerkt? Dit geeft nl alle regels
    waarvoor het ID gelijk is aan ID2.

    > hoe moet ik WHERE aanpassen om
    > het wel te laten werken? of ligt het daar niet aan?


    Maak je edits eens ongedaan, en geef de oorspronkelijke code?

    --
    John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
    Website design: http://johnbokma.com/websitedesign/
    Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
    Tevreden opdrachtgevers: http://castleamber.com/testimonials.html



  3. #3
    Rene Pijlman
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    M@rcel:
    >Link naar deze pagina is dan bijvoorbeeld: pagina.php?ID2=120
    >
    >Maar dat werkt volgens mij niet meer, hoe moet ik WHERE aanpassen om het wel
    >te laten werken?


    Gewoon, de URL-parameters opvragen zoals dat volgens de documentatie van
    PHP moet. Wat is het probleem?

    Je kunt natuurlijk ook kijken op
    http://www.google.com/search?q=php+u...gister_globals
    Daar staat het vast wel bij.

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

  4. #4
    M@rcel
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?


    "John Bokma" <postmaster@castleamber.com> schreef in bericht

    >>
    >> $sql = "SELECT * FROM NIEUWS WHERE ID = 'ID2'";
    >>


    Moet zijn $sql = "SELECT * FROM NIEUWS WHERE ID = '$ID2'";

    ^^^^^^^^

    > Ik zou zo zeggen: heeft het ooit wel gewerkt? Dit geeft nl alle regels
    > waarvoor het ID gelijk is aan ID2.


    Ja het heeft ooit gewerkt en het werkt nog steeds op een server met globals
    on

    Marcel



  5. #5
    M@rcel
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    "Rene Pijlman" schreef in bericht

    > M@rcel:
    >>
    >>Maar dat werkt volgens mij niet meer, hoe moet ik WHERE aanpassen om het
    >>wel
    >>te laten werken?

    >
    > Gewoon, de URL-parameters opvragen zoals dat volgens de documentatie van
    > PHP moet. Wat is het probleem?


    Dat is dus eigenlijk mijn vraag, hoe moet dat eigenlijk? Ik deed het altijd
    op de beschreven manier...

    Ik zat nu met iets als WHERE ID = $_GET['ID2'] maar dat werkt ook niet echt.

    > Je kunt natuurlijk ook kijken op
    > http://www.google.com/search?q=php+u...gister_globals
    > Daar staat het vast wel bij.


    Heb zelf voordat ik iets postte ook al gezocht op Google maar kon niet echt
    iets vinden.

    Marcel



  6. #6
    Rene Pijlman
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    M@rcel:
    >Rene Pijlman:
    >> Gewoon, de URL-parameters opvragen zoals dat volgens de documentatie van
    >> PHP moet. Wat is het probleem?

    >
    >Dat is dus eigenlijk mijn vraag, hoe moet dat eigenlijk?


    Ja maar, ja maar... dat staat er toch!? Lees die documentatie dan!

    Als wij dat stukje documentatie hier posten lees je het zeker ook niet?

    >> Je kunt natuurlijk ook kijken op
    >> http://www.google.com/search?q=php+u...gister_globals
    >> Daar staat het vast wel bij.

    >
    >Heb zelf voordat ik iets postte ook al gezocht op Google maar kon niet echt
    >iets vinden.


    Ja maar, ja maar... nu heb je het toch gevonden? Zie bovenstaande link.

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

  7. #7
    John Bokma
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    M@rcel wrote:

    >
    > "John Bokma" <postmaster@castleamber.com> schreef in bericht
    >
    >>>
    >>> $sql = "SELECT * FROM NIEUWS WHERE ID = 'ID2'";
    >>>

    >
    > Moet zijn $sql = "SELECT * FROM NIEUWS WHERE ID = '$ID2'";
    >
    >
    > ^^^^^^^^


    Yup, belangrijke tip: tik *nooit* dingen over als je ze kan knippen /
    plakken.


    > Ja het heeft ooit gewerkt en het werkt nog steeds op een server met
    > globals on


    En nu is dus de truuk om $ID2 uit $_GET[ ... ] te halen *inclusief*
    zorgvuldige controle.

    --
    John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
    Website design: http://johnbokma.com/websitedesign/
    Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
    Tevreden opdrachtgevers: http://castleamber.com/testimonials.html



  8. #8
    John Bokma
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    M@rcel wrote:

    > Ik zat nu met iets als WHERE ID = $_GET['ID2'] maar dat werkt ook niet
    > echt.


    Stop nooit dingen uit een URL zomaar in een query. Check, check, and
    reject.

    --
    John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
    Website design: http://johnbokma.com/websitedesign/
    Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
    Tevreden opdrachtgevers: http://castleamber.com/testimonials.html



  9. #9
    M@rcel
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    > "John Bokma" schreef

    >> M@rcel wrote:

    >
    >> Ik zat nu met iets als WHERE ID = $_GET['ID2'] maar dat werkt ook niet
    >> echt.


    Heb nu

    $marcel = $_GET['ID2'];

    $sql = "SELECT * FROM NIEUWS WHERE ID = $marcel";

    Dat werkt op zich.

    > Stop nooit dingen uit een URL zomaar in een query. Check, check, and
    > reject.


    Maar blijkbaar moet ik nog wat checken?
    Ik ben zoals jullie al gemerkt hebben erg basic met PHP & MySQL

    Marcel



  10. #10
    Rene Pijlman
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    M@rcel:
    >Heb nu
    >
    >$marcel = $_GET['ID2'];
    >
    >$sql = "SELECT * FROM NIEUWS WHERE ID = $marcel";
    >
    >Dat werkt op zich.


    Yep. En wat als iemand dit aanroept met in ID2:

    "12 or id in (select ... from ...)"

    en dergelijke?

    Dit type probleem staat bekend als "SQL Injection". Google is je vriend.

    >> Stop nooit dingen uit een URL zomaar in een query. Check, check, and
    >> reject.

    >
    >Maar blijkbaar moet ik nog wat checken?


    Input van buiten. Je kunt de client niet vertrouwen. Ongeacht of die
    vanuit Nederland of Mexico post.

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

  11. #11
    John Bokma
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    Rene Pijlman wrote:

    > Input van buiten. Je kunt de client niet vertrouwen. Ongeacht of die
    > vanuit Nederland of Mexico post.


    ROTFLMAO :-D

    --
    John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
    Website design: http://johnbokma.com/websitedesign/
    Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
    Tevreden opdrachtgevers: http://castleamber.com/testimonials.html



  12. #12
    John Bokma
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    M@rcel wrote:

    > Maar blijkbaar moet ik nog wat checken?


    Yup, wat is een ID? Als het een getal is tussen 1 en 1000 zou ik zelf
    kijken of:

    is het gedefinieerd
    is het 1 tot maximaal 4 getallen
    valt het getal in het bereik 1-1000

    Als het antwoord nee is, geef ik een fout (Undefined ID, Invalid ID, ID
    out of range b.v.)

    Een echte purist zou nog kunnen schieten als het getal voorloopnullen
    heeft, b.v.

    01 -> fout
    1 -> goed

    Het klinkt allemaal drastisch, maar: als je site goed gemaakt is, zitten
    er geen fouten in, dus alles gaat door de controle

    Als er een fout in zit, vind je die (als je alles slikt, en/of repareerd
    zie je die over het hoofd)

    Als iemand stoute dingen doet, dan krijgt hij/zij een fout (en zie je
    dat ook in je log terug).

    --
    John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
    Website design: http://johnbokma.com/websitedesign/
    Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
    Tevreden opdrachtgevers: http://castleamber.com/testimonials.html



  13. #13
    M@rcel
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    "John Bokma" <postmaster@castleamber.com> schreef in bericht

    > M@rcel wrote:
    >
    >> Maar blijkbaar moet ik nog wat checken?

    >
    > Yup, wat is een ID? Als het een getal is tussen 1 en 1000 zou ik zelf
    > kijken of:
    >
    > is het gedefinieerd
    > is het 1 tot maximaal 4 getallen
    > valt het getal in het bereik 1-1000


    ja ID is inderdaad een getal met een onbeperkt bereik.

    > Als het antwoord nee is, geef ik een fout (Undefined ID, Invalid ID, ID
    > out of range b.v.)


    Ok, maar hoe controleer ik zoiets: oftewel: helder leesvoer / voorbeelden /
    tips ?

    Is dit wat, onderstaand controleert toch of een bestand een getal is en zo
    niet dan geeft het voor ID2 de waarde 1? of heb ik het niet goed begrepen?

    $marcel = 1; // (default)
    if (is_numeric($_GET['ID2']))
    $marcel = $_GET['ID2'];
    $sql = "SELECT * FROM NIEUWS WHERE ID=$marcel";

    Marcel




  14. #14
    Dr.Ruud
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    Wat M@rcel schreef, bleek het
    begin van iets moois; kijk zelf maar:


    > $marcel = 1; // (default)
    > if (is_numeric($_GET['ID2']))
    > $marcel = $_GET['ID2'];
    > $sql = "SELECT * FROM NIEUWS WHERE ID=$marcel";



    Ik zit meer aan zoiets te denken:

    ${_GET_ID2} = (int) trim(${_GET['ID2']});

    if ((${_GET_ID2} < 1) || (1e5 < ${_GET_ID2})) ${_GET_ID2} = 1;

    $sql = "SELECT * FROM nieuws WHERE id=${_GET_ID2}";



    O.a. omdat dit False is: is_numeric('321 ')

    (en die '1e5' is natuurlijk maar een voorbeeld)

    --
    Affijn, Ruud ` - ?
    + ` ? *
    ? ` Jvr qvg yrrfg,
    ? = ` fgresg wbatre.



  15. #15
    John Bokma
    WHERE = '$ID2' veranderd? door registerglobals?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: WHERE = '$ID2' veranderd? door registerglobals?

    Dr.Ruud wrote:

    > Ik zit meer aan zoiets te denken:
    >
    > ${_GET_ID2} = (int) trim(${_GET['ID2']});
    >
    > if ((${_GET_ID2} < 1) || (1e5 < ${_GET_ID2})) ${_GET_ID2} = 1;


    IMNSHO dus de meest foute methode (ok, op niks doen na dan)

    --
    John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
    Website design: http://johnbokma.com/websitedesign/
    Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
    Tevreden opdrachtgevers: http://castleamber.com/testimonials.html



Pagina 1 van de 2 1 2 LaatsteLaatste

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics