Hoi,

Ik heb in een MySQL database sensorwaarden staan. Deze waarden lees ik uit en bewerk ik met PHP en toon ik in een grafiek. In de grafiek wordt data van die dag getoond.

Nu wil ik boven de grafiek twee knoppen maken met, "Volgende dag" en "Vorige dag" zodat je van andere dagen de sensorwaarden kunt zien. Ik moet dus op een of andere manier onthouden welke dag in de grafiek is ingeladen. Hoe kan ik dit doen?
Zou met GET kunnen:

Waardes.php?dag=04-03-2015
Andere optie is om het in de sessie te proppen (indien die beschikbaar is).
Voordeel is dat je gebruiker een schone URL heeft en dat je minder kans hebt op SQL-injectie via je URLs.
Nadelen zijn o.a. dat je de sessie gebruikt (kost ruimte, is trager dan GET) en dat het niet te bookmarken is door de gebruiker.
Nadeel van sessions:
Open op tab 1 de data van 1 febr.
Open op tab 2 de data van 1 maart

Ga naar tab 1 en druk op de link Volgende en krijg de data van 2 maart....

Oke bedankt. Dan kan ik het dus het beste met GET doen en dan uitzoeken hoe ik SQL injectie kan voorkomen.
Oke, als ik het goed begrijp haalt de functie bepaalde karakters uit een string?

Als dit mijn url van de GET is: Waardes.php?dag=04-03-2015 dan zou ik toch de string 04-03-2015 kunnen controleren of deze aan een datum formaat voldoet? Dan zou SQL injectie toch niet mogelijk moeten zijn, of zie ik dat verkeerd?
Zie checkdate().
Die controle komt pas nadat je de query uitvoert, dus je kan nog altijd een SQL-injection uitvoeren, ondanks iemand de melding krijgt dat de datum niet correct is.
Waarom zou die controle pas na het uitvoegen van de query komen? Als de datum via GET word doorgegeven kun je op elk gewenst moment de datum valideren/escapen.
Of je dat nou met real_escape_string, checkdate of op een andere manier doet maakt niets uit.
Je hebt gelijk, het zou ook ervoor kunnen.

Reageren