login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Even checken of het klopt

Offline Lazlo - 06/04/2006 17:48 (laatste wijziging 06/04/2006 17:48)
Avatar van LazloHTML beginner Heb nu dit voor een nieuwsscriptje om te checken wat er wordt aangevraag en wat er moet worden weergegeven, het wordt aangevraag als www.website.nl/nieuws?**, waar ** archief,een getal boven de 0 is of geen waarde heeft.

Is dit een veilige en handige manier?

  1. <?PHP
  2.  
  3. if ($_SERVER['QUERY_STRING'] >= 1)
  4. {
  5. echo "laat 1 bepaald bericht zien";
  6. }
  7. elseif ($_SERVER['QUERY_STRING'] == "archief")
  8. {
  9. echo "archief";
  10. }
  11. else
  12. {
  13. echo "Show 5 laatste nieuwsberichten";
  14. }
  15.  
  16. ?>

5 antwoorden

Gesponsorde links
Offline timo - 06/04/2006 17:48
Avatar van timo PHP ver gevorderde is opzich wel veilig...
Offline Rens - 06/04/2006 17:54
Avatar van Rens Gouden medaille

Crew algemeen
Over de handigheid, tsjah, het is maar net wat je "handig" noemt hè...
Ik vind het bijvoorbeeld zo "handig":
  1. <?PHP
  2. if(IsSet($_GET['archief']))
  3. {
  4. // laat archief zien
  5. } else if(IsSet($_GET['id']))
  6. {
  7. if(Is_Numeric($_GET['id']))
  8. {
  9. $iId = intval($_GET['id']);
  10. }
  11. } else
  12. {
  13. // 5 laatste
  14. }
  15. ?>

Zo aanroepen:
nieuws?archief - archief
nieuws?id=<int> - nieuwsbericht
nieuws - 5 laatste

Je moet maar eens kijken wat je zelf het duidelijkst vind 
Offline ikkedikke - 06/04/2006 17:55
Avatar van ikkedikke PHP expert alleen als je je nieuwsbericht uit een database gaat halen dan zou ik ff checken of het ook echt een getal is wat er ingegeven is.
Een string wordt in de bovenste vergelijking namelijk ook omgezet naar een 1.
Offline Lazlo - 06/04/2006 18:07 (laatste wijziging 06/04/2006 18:08)
Avatar van Lazlo HTML beginner Ok, ga voor de manier van Rens, alleen hoe geef ik dan aan welk id er opgehaald moet worden, gewoon: WHERE id='" .$_GET["id"] ."'?

EDIT: Laat maar, al uitgevonden 
Offline Rens - 06/04/2006 19:34
Avatar van Rens Gouden medaille

Crew algemeen
Nee, nooit zomaar iets uit je URL in je query gebruiken!
Dat is ongelooflijk onveilig.
  1. $iId = intval($_GET['id']);

Dat staat er niet voor niks he...
Gebruik dan:
  1. WHERE id=".$iId;

Om een getal hoeven trouwens ook geen quotes.
  1. WHERE id='".$iId."'";

Is dus niet goed.
Zo hoort het:
  1. WHERE id=".$iId;
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s