pagina.php?id=1 hulp nodig.

  • Hallo allemaal.


    Ik kan er niet uitkomen hoe ik 10 paginas maak in 1 .php file.
    Ik bedoel het dus zo:


    ..?id=1 , ..?id=2 enzo. Met hun eigen indeling, en vanuit daar via een form een complete webpagina te maken met automatisch een id en natuurlijk de indeling.


    Iemand die kan helpen? :)


    Groeten.

    Bewerkt één keer, laatst door P493: Aangevraagde aanpassing ().

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Dit kan je met $_GET variabeles doen.
    Je kan een link aanmaken door een simpele <a> tag te gebruiken:


    Code
    <a href="index.php?id=1">Pagina</a>


    Met php kan je dan middels $_GET dat id ophalen.


    PHP
    <?php
    
    
    $id = $_GET['id'];
    
    
    ?>


    Let dan wel op dat deze $id variabele onveilig is! Een user zou deze input kunnen veranderen en zo binnen kunnen dringen in het script.
    Je kan dit oplossen door er htmlentities overheen te doen. (Dit is nog niet super veilig, maar het werkt wel)


    PHP
    <?php
    
    
    $id = htmlentities($_GET['id']);
    
    
    ?>


    Daarnaast kan je ook nog controleren of de id wel voorkomt.(Het veiligst)



    Hoop dat je hier wat mee kunt. ;)

  • PHP
    <?php
    if ( $_GET['id'] == intval($_GET['id']) )
    {
      // zo kan je ook kijken of er extra karakters aan $_GET['id'] zijn toegevoegd, (wel oplettend dat id dan niet met een 0 begint, want die wordt dan weggehaald)
    }
    ?>
  • Htmlentities is nergens voor nodig alleen als je $_GET['id'] in html wil weergeven. Dan is namelijk XSS mogelijk. Wat jij wil berijken is als je id = 1 hebt dat je dan naar pagina nummer 1 gaat. Dit is erg makkelijk te maken.


    PHP
    if ($_GET['id'] == '1') {
     //echo hier je html of sluit de php en open na de html weer
    } elseif ($_GET['id'] == '2') {
     //En ga zo maar door
    }


    Deze manier is het makkelijkst, verder doet het ook geen rare dingen als iemand de input veranderd en zo is de functie inarray ook onnodig.

  • @Bramieboy


    Zo beperk je de mogelijkheden van het script wel. In jouw geval zul je elke pagina apart moeten toevoegen. In mijn geval kan je eventueel de pagina's uit een database halen.
    Daarnaast is htmlentities wel nodig als je met het id resultaten wil gaan ophalen.


    De TS geeft weinig info en dat is de reden waarom ik ervoor gekozen heb om het het veiligst uit te leggen. ;)

  • Als je gebruik maakt van prepared statement hoef je je geen zorgen te maken over het beveiligen van de query's. Als je bijvoorbeeld wilt weten of $_GET['id'] wel een cijfer is kun je zoals gezegd intval gebruiken of ctype_digit. Het verschil tussen deze twee is dat ctype_digit alles als een string ziet("123" is dus gewoon een getal). intval die kijkt volgens mij alleen naar integers(weet het niet zeker).

  • Die manieren ken ik al inderdaad.
    Maar Victor, hoe kan ik er voor zorgen dat hij het uit de database haalt met een context erbij?


    Dus dat hij het id uit de database haalt en dat bij dat id een stuk text bij zit.


    Ik heb al op google gezocht en ik kon het niet vinden.
    Hopelijk kan iemand mij hierbij helpen
    :S

  • Die manieren ken ik al inderdaad.
    Maar Victor, hoe kan ik er voor zorgen dat hij het uit de database haalt met een context erbij?


    Dus dat hij het id uit de database haalt en dat bij dat id een stuk text bij zit.


    Ik heb al op google gezocht en ik kon het niet vinden.
    Hopelijk kan iemand mij hierbij helpen
    :S


    Je bedoeld dit:


  • PHP
    <html>
    <head>
     <title>WEBSITE NAME</title>
    </head>
    <body>



    PHP
    </body>
    </html>

  • Alleen de config onbreekt, dit heb ik er niet bij gedaan omdat ik een include gebruik.
    Verder ziet de code er niet strak of professioneel uit, ik ben ook geen pro he :D

Participate now!

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